From 21319d744a5caf9b3e6f2f69c49731033bed20ee Mon Sep 17 00:00:00 2001 From: Maxime Gimeno Date: Tue, 20 Apr 2021 16:08:25 +0200 Subject: [PATCH 01/49] Remove target all_scene_items as it fails the building inside ctest on windows --- Installation/demo/CMakeLists.txt | 1 - Polyhedron/demo/Polyhedron/CMakeLists.txt | 12 ------------ .../demo/Polyhedron/polyhedron_demo_macros.cmake | 4 ---- 3 files changed, 17 deletions(-) diff --git a/Installation/demo/CMakeLists.txt b/Installation/demo/CMakeLists.txt index 4318d8156f4..1342ea496df 100644 --- a/Installation/demo/CMakeLists.txt +++ b/Installation/demo/CMakeLists.txt @@ -1,6 +1,5 @@ cmake_minimum_required(VERSION 3.12...3.20) project(CGAL_DEMOS) - if(CGAL_BRANCH_BUILD) foreach(package ${CGAL_CONFIGURED_PACKAGES}) diff --git a/Polyhedron/demo/Polyhedron/CMakeLists.txt b/Polyhedron/demo/Polyhedron/CMakeLists.txt index e0951e34e38..b8b72aa7939 100644 --- a/Polyhedron/demo/Polyhedron/CMakeLists.txt +++ b/Polyhedron/demo/Polyhedron/CMakeLists.txt @@ -241,23 +241,11 @@ if(CGAL_Qt5_FOUND AND Qt5_FOUND) target_link_libraries(point_dialog PUBLIC Qt5::OpenGL Qt5::Gui Qt5::Script Qt5::Widgets) - add_custom_target(all_scene_items) - if(BUILD_TESTING) - cgal_add_compilation_test(all_scene_items) - set_property( - TEST compilation_of__all_scene_items - APPEND - PROPERTY DEPENDS compilation_of__demo_framework) - set_property(TEST compilation_of__all_scene_items APPEND PROPERTY TIMEOUT - 1700) - endif(BUILD_TESTING) - macro(add_item item_name) add_library(${item_name} SHARED ${ARGN}) target_link_libraries( ${item_name} PUBLIC demo_framework ${CGAL_LIBRARIES} Qt5::OpenGL Qt5::Gui Qt5::Script Qt5::Widgets) - add_dependencies(all_scene_items ${item_name}) add_to_cached_list(CGAL_EXECUTABLE_TARGETS ${item_name}) endmacro(add_item) diff --git a/Polyhedron/demo/Polyhedron/polyhedron_demo_macros.cmake b/Polyhedron/demo/Polyhedron/polyhedron_demo_macros.cmake index 1c0073384d6..d7927b1754f 100644 --- a/Polyhedron/demo/Polyhedron/polyhedron_demo_macros.cmake +++ b/Polyhedron/demo/Polyhedron/polyhedron_demo_macros.cmake @@ -28,10 +28,6 @@ include(${CGAL_MODULES_DIR}/CGAL_add_test.cmake) PROPERTY LIBRARY_OUTPUT_DIRECTORY "${CGAL_POLYHEDRON_DEMO_PLUGINS_DIR}") cgal_add_compilation_test(${plugin_name}) - if(BUILD_TESTING) - set_property(TEST compilation_of__${plugin_name} - APPEND PROPERTY DEPENDS compilation_of__all_scene_items) - endif() add_to_cached_list( CGAL_EXECUTABLE_TARGETS ${plugin_name} ) # Link with Qt target_link_libraries( ${plugin_name} PUBLIC ${QT_LIBRARIES} ) From ff41fb7f779b5d52d228aadb67df9a8d6b8eaa50 Mon Sep 17 00:00:00 2001 From: Maxime Gimeno Date: Tue, 20 Apr 2021 16:11:36 +0200 Subject: [PATCH 02/49] Post process CGAL_DIR and CGAL_HOME to replace /cygdrive/LETTER by LETTER:/ in autotest_cgal_with_ctest --- Scripts/developer_scripts/autotest_cgal_with_ctest | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Scripts/developer_scripts/autotest_cgal_with_ctest b/Scripts/developer_scripts/autotest_cgal_with_ctest index 0b250aa618e..19144bfb69d 100755 --- a/Scripts/developer_scripts/autotest_cgal_with_ctest +++ b/Scripts/developer_scripts/autotest_cgal_with_ctest @@ -1,5 +1,3 @@ -#!/bin/bash - #!/bin/bash #usage : script [-c -l -n -s -k] testsuite_dir @@ -23,7 +21,7 @@ export TAR="tar" export GUNZIP="gunzip" export COMPRESSOR="gzip" export CONSOLE_OUTPUT="y" -export CGAL_HOME=`pwd` +export CGAL_HOME=$(pwd | sed -E 's/\/cygdrive\/([a-z])\//\U\1:\//') export USE_TARGZ="y" export USE_TARBZ="n" export CGAL_RELEASE="" @@ -284,6 +282,8 @@ else CGAL_DIR=`readlink "${CGAL_HOME}/CGAL-I"` fi +CGAL_DIR=$(echo "$CGAL_DIR" | sed -E 's/\/cygdrive\/([a-z])\//\U\1:\//') + CGAL_RELEASE_ID=$(cat last_release_id) for HOST in ${BUILD_HOSTS}; do if [ "$HOST" != "localhost" ]; then From 14b1b3b8cc5aa9b6f59837b6a8659c28dbd3468e Mon Sep 17 00:00:00 2001 From: Maxime Gimeno Date: Tue, 4 May 2021 11:38:07 +0200 Subject: [PATCH 03/49] WIP --- Polyhedron/demo/Polyhedron/CMakeLists.txt | 2 +- .../Plugins/Camera_position/CMakeLists.txt | 2 ++ .../Plugins/Classification/CMakeLists.txt | 6 ++++ .../Plugins/Convex_hull/CMakeLists.txt | 7 +++++ .../Polyhedron/Plugins/PCA/CMakeLists.txt | 6 ++++ .../Polyhedron/Plugins/PMP/CMakeLists.txt | 25 +++++++++++++++++ .../Plugins/Surface_mesh/CMakeLists.txt | 12 +++++++- .../Surface_mesh_deformation/CMakeLists.txt | 7 +++++ .../Polyhedron/polyhedron_demo_macros.cmake | 19 +++++++++++++ .../run_testsuite_with_ctest | 28 ++++++++++++++----- 10 files changed, 105 insertions(+), 9 deletions(-) diff --git a/Polyhedron/demo/Polyhedron/CMakeLists.txt b/Polyhedron/demo/Polyhedron/CMakeLists.txt index b8b72aa7939..100d0948c14 100644 --- a/Polyhedron/demo/Polyhedron/CMakeLists.txt +++ b/Polyhedron/demo/Polyhedron/CMakeLists.txt @@ -217,7 +217,7 @@ if(CGAL_Qt5_FOUND AND Qt5_FOUND) STATUS "Qt5WebSockets was found. Using WebSockets is therefore possible.") endif() - cgal_add_compilation_test(demo_framework) + #compilation_of__demo_framework is defined in polyhedron_demo_macros.cmake # Let's define `three_EXPORT` during the compilation of `demo_framework`, # in addition of `demo_framework_EXPORT` (defined automatically by # CMake). That is to deal with the visibility of symbols of diff --git a/Polyhedron/demo/Polyhedron/Plugins/Camera_position/CMakeLists.txt b/Polyhedron/demo/Polyhedron/Plugins/Camera_position/CMakeLists.txt index d3d02304559..c4ac0436112 100644 --- a/Polyhedron/demo/Polyhedron/Plugins/Camera_position/CMakeLists.txt +++ b/Polyhedron/demo/Polyhedron/Plugins/Camera_position/CMakeLists.txt @@ -7,5 +7,7 @@ polyhedron_demo_plugin(camera_positions_plugin ${cameraUI_FILES} KEYWORDS Viewer) +add_dependencies(camera_positions_plugin demo_framework) target_link_libraries( camera_positions_plugin PUBLIC demo_framework) target_link_libraries(camera_positions_plugin PUBLIC demo_framework) + diff --git a/Polyhedron/demo/Polyhedron/Plugins/Classification/CMakeLists.txt b/Polyhedron/demo/Polyhedron/Plugins/Classification/CMakeLists.txt index 7310bbee3b6..5ad7e8b16ef 100644 --- a/Polyhedron/demo/Polyhedron/Plugins/Classification/CMakeLists.txt +++ b/Polyhedron/demo/Polyhedron/Plugins/Classification/CMakeLists.txt @@ -47,6 +47,12 @@ if(TARGET CGAL::Eigen3_support) scene_color_ramp CGAL::Eigen3_support) + if(BUILD_TESTING) + set_tests_properties( + compilation_of__classification_plugin + PROPERTIES RESOURCE_LOCK Selection_test_resources) + endif() + if(TARGET CGAL::Boost_serialization_support AND TARGET CGAL::Boost_iostreams_support) target_link_libraries(classification_plugin PUBLIC CGAL::Boost_serialization_support diff --git a/Polyhedron/demo/Polyhedron/Plugins/Convex_hull/CMakeLists.txt b/Polyhedron/demo/Polyhedron/Plugins/Convex_hull/CMakeLists.txt index fa13f46ff54..c28045e0aa9 100644 --- a/Polyhedron/demo/Polyhedron/Plugins/Convex_hull/CMakeLists.txt +++ b/Polyhedron/demo/Polyhedron/Plugins/Convex_hull/CMakeLists.txt @@ -8,3 +8,10 @@ target_link_libraries( polyhedron_demo_plugin(kernel_plugin Kernel_plugin) target_link_libraries(kernel_plugin PUBLIC scene_surface_mesh_item) + + +if(BUILD_TESTING) + set_tests_properties( + compilation_of__convex_hull_plugin + PROPERTIES RESOURCE_LOCK Selection_test_resources) +endif() diff --git a/Polyhedron/demo/Polyhedron/Plugins/PCA/CMakeLists.txt b/Polyhedron/demo/Polyhedron/Plugins/PCA/CMakeLists.txt index 58f1350a3dc..a27e53f67c9 100644 --- a/Polyhedron/demo/Polyhedron/Plugins/PCA/CMakeLists.txt +++ b/Polyhedron/demo/Polyhedron/Plugins/PCA/CMakeLists.txt @@ -37,3 +37,9 @@ target_link_libraries( basic_generator_plugin PUBLIC scene_surface_mesh_item scene_points_with_normal_item scene_polylines_item) + + if(BUILD_TESTING) + set_tests_properties( + compilation_of__create_obb_mesh_plugin + PROPERTIES RESOURCE_LOCK Selection_test_resources) + endif() diff --git a/Polyhedron/demo/Polyhedron/Plugins/PMP/CMakeLists.txt b/Polyhedron/demo/Polyhedron/Plugins/PMP/CMakeLists.txt index 577c980c628..4a285de7181 100644 --- a/Polyhedron/demo/Polyhedron/Plugins/PMP/CMakeLists.txt +++ b/Polyhedron/demo/Polyhedron/Plugins/PMP/CMakeLists.txt @@ -52,6 +52,18 @@ if(TARGET CGAL::Eigen3_support) DESCRIPTION "A large scale non-linear optimization library." PURPOSE "Can be used as a solver in the smoothing plugin.") target_link_libraries(extrude_plugin PUBLIC CGAL::Eigen3_support) + if(BUILD_TESTING) + set_tests_properties( + compilation_of__extrude_plugin + compilation_of__fairing_plugin + PROPERTIES RESOURCE_LOCK Selection_test_resources) + endif() + if(BUILD_TESTING) + set_tests_properties( + compilation_of__hole_filling_plugin + compilation_of__smoothing_plugin + PROPERTIES RESOURCE_LOCK Selection_test_resources) + endif() else() message( STATUS @@ -153,3 +165,16 @@ polyhedron_demo_plugin(engrave_text_plugin Engrave_text_plugin target_link_libraries( engrave_text_plugin PUBLIC scene_surface_mesh_item scene_selection_item scene_polylines_item) + + +if(BUILD_TESTING) + set_tests_properties( + compilation_of__join_and_split_plugin + compilation_of__selection_plugin + compilation_of__triangulate_facets_plugin + compilation_of__isotropic_remeshing_plugin + compilation_of__random_perturbation_plugin + compilation_of__engrave_text_plugin + compilation_of__degenerated_faces_plugin + PROPERTIES RESOURCE_LOCK Selection_test_resources) +endif() diff --git a/Polyhedron/demo/Polyhedron/Plugins/Surface_mesh/CMakeLists.txt b/Polyhedron/demo/Polyhedron/Plugins/Surface_mesh/CMakeLists.txt index 04002c3e067..baa99e5eeb2 100644 --- a/Polyhedron/demo/Polyhedron/Plugins/Surface_mesh/CMakeLists.txt +++ b/Polyhedron/demo/Polyhedron/Plugins/Surface_mesh/CMakeLists.txt @@ -15,6 +15,12 @@ if(NOT CGAL_DISABLE_GMP) target_link_libraries( parameterization_plugin PUBLIC scene_surface_mesh_item scene_textured_item scene_selection_item CGAL::Eigen3_support) + if(BUILD_TESTING) + set_tests_properties( + compilation_of__parameterization_plugin + PROPERTIES RESOURCE_LOCK Selection_test_resources) + endif() + else() message( STATUS @@ -26,7 +32,11 @@ if(NOT CGAL_DISABLE_GMP) polyhedron_demo_plugin(mesh_segmentation_plugin Mesh_segmentation_plugin ${segmentationUI_FILES}) target_link_libraries(mesh_segmentation_plugin PUBLIC scene_surface_mesh_item) - + if(BUILD_TESTING) + set_tests_properties( + compilation_of__mesh_segmentation_plugin + PROPERTIES RESOURCE_LOCK Selection_test_resources) + endif() qt5_wrap_ui( mesh_simplificationUI_FILES Mesh_simplification_dialog.ui) polyhedron_demo_plugin(mesh_simplification_plugin Mesh_simplification_plugin ${mesh_simplificationUI_FILES}) diff --git a/Polyhedron/demo/Polyhedron/Plugins/Surface_mesh_deformation/CMakeLists.txt b/Polyhedron/demo/Polyhedron/Plugins/Surface_mesh_deformation/CMakeLists.txt index b32cf6f7d7a..7cac6a10dd6 100644 --- a/Polyhedron/demo/Polyhedron/Plugins/Surface_mesh_deformation/CMakeLists.txt +++ b/Polyhedron/demo/Polyhedron/Plugins/Surface_mesh_deformation/CMakeLists.txt @@ -9,4 +9,11 @@ else() STATUS "NOTICE: The polyhedron edit plugin require Eigen 3.2 (or higher) and will not be available." ) + +if(BUILD_TESTING) + set_tests_properties( + compilation_of__edit_plugin + PROPERTIES RESOURCE_LOCK Selection_test_resources) +endif() + endif() diff --git a/Polyhedron/demo/Polyhedron/polyhedron_demo_macros.cmake b/Polyhedron/demo/Polyhedron/polyhedron_demo_macros.cmake index d7927b1754f..49c97ab3f67 100644 --- a/Polyhedron/demo/Polyhedron/polyhedron_demo_macros.cmake +++ b/Polyhedron/demo/Polyhedron/polyhedron_demo_macros.cmake @@ -34,8 +34,27 @@ include(${CGAL_MODULES_DIR}/CGAL_add_test.cmake) # Link with the demo_framework if(TARGET demo_framework) target_link_libraries( ${plugin_name} PUBLIC demo_framework) + add_dependencies(${plugin_name} demo_framework) + if(BUILD_TESTING) + + if(NOT TARGET compilation_of__demo_framework) + # This custom target is useless. It is used only as a flag to + # detect that the test has already been created. + add_custom_target(compilation_of__demo_framework) + add_dependencies( compilation_of__demo_framework demo_framework ) + add_test(NAME "compilation_of__demo_framework" + COMMAND "${CMAKE_COMMAND}" --build "${CMAKE_BINARY_DIR}" --target "demo_framework" --config "$") + set_property(TEST "compilation_of__demo_framework" + APPEND PROPERTY LABELS "CGAL_build_system") + set_property(TEST "compilation_of__demo_framework" + PROPERTY FIXTURES_SETUP "check_build_system_SetupFixture") + set_property(TEST "compilation_of__demo_framework" + APPEND PROPERTY DEPENDS "compilation_of__CGAL_Qt5_moc_and_resources") + endif() + endif() else() target_link_libraries( ${plugin_name} PUBLIC Polyhedron_demo_framework) + add_dependencies(${plugin_name} Polyhedron_demo_framework) endif() # Link with CGAL target_link_libraries( ${plugin_name} PUBLIC ${CGAL_LIBRARIES} ${CGAL_3RD_PARTY_LIBRARIES} ) diff --git a/Scripts/developer_scripts/run_testsuite_with_ctest b/Scripts/developer_scripts/run_testsuite_with_ctest index 09046304318..bfca26d788b 100644 --- a/Scripts/developer_scripts/run_testsuite_with_ctest +++ b/Scripts/developer_scripts/run_testsuite_with_ctest @@ -258,7 +258,7 @@ run_test_on_platform() CGAL_BINARY_DIR=${CGAL_BINARY_DIR_BASE}/${PLATFORM} cd "${CGAL_BINARY_DIR}" log "${ACTUAL_LOGFILE}.test.${PLATFORM}" "Testing on host ${HOST} and platform ${PLATFORM}" - + if [ -f "${REFERENCE_PLATFORMS_DIR}/${PLATFORM}/setup" ]; then source "${REFERENCE_PLATFORMS_DIR}/${PLATFORM}/setup" else @@ -274,7 +274,7 @@ run_test_on_platform() CMAKE_OPTS="${CMAKE_OPTS} -DWITH_examples=ON -DWITH_demos=ON" fi if [ -z "${SHOW_PROGRESS}" ]; then - cmake ${INIT_FILE:+"-C${INIT_FILE}"} -DBUILD_TESTING=ON ${CMAKE_OPTS} $CGAL_DIR >package_installation.log 2>&1 + cmake ${INIT_FILE:+"-C${INIT_FILE}"} -DBUILD_TESTING=ON ${CMAKE_OPTS} $CGAL_DIR >package_installation.log 2>&1 else cmake ${INIT_FILE:+"-C${INIT_FILE}"} -DBUILD_TESTING=ON ${CMAKE_OPTS} $CGAL_DIR 2>&1 |tee package_installation.log fi @@ -294,14 +294,28 @@ run_test_on_platform() #unsets the limit of 1024 bits for the logs through ssh echo "SET(CTEST_CUSTOM_MAXIMUM_PASSED_TEST_OUTPUT_SIZE 1000000000)" > CTestCustom.cmake echo "SET(CTEST_CUSTOM_MAXIMUM_FAILED_TEST_OUTPUT_SIZE 1000000000)" >> CTestCustom.cmake - CTEST_OPTS="-T Start -T Test --timeout 1200 -j${NUMBER_OF_PROCESSORS} ${DO_NOT_TEST:+-E execution___of__} " + + CTEST_OPTS="-T Start -T Test --timeout 1200 ${DO_NOT_TEST:+-E execution___of__}" + FULL_OPTS=${CTEST_OPTS} + echo "NUMBER_OF_PROCESSORS = ${NUMBER_OF_PROCESSORS}" if uname | grep -q "CYGWIN"; then - CTEST_OPTS="-C ${CONFIG_TYPE} ${CTEST_OPTS} -V" + CTEST_OPTS="-C ${CONFIG_TYPE} ${CTEST_OPTS}" + FULL_OPTS="${CTEST_OPTS} -LE Polyhedron_Demo -V" fi if [ -z "${SHOW_PROGRESS}" ]; then - ctest ${TO_TEST:+-L ${TO_TEST} } ${CTEST_OPTS} ${KEEP_TESTS:+-FC .}> tmp.txt + ctest ${TO_TEST:+-L ${TO_TEST} } ${FULL_OPTS} -j${NUMBER_OF_PROCESSORS} ${KEEP_TESTS:+-FC .}> tmp.txt + if uname | grep -q "CYGWIN"; then + if [[ $TO_TEST == *"Polyhedron_Demo"* ]]; then + ctest ${CTEST_OPTS} -L Polyhedron_Demo ${KEEP_TESTS:+-FC .}>> tmp.txt + fi + fi else - ctest ${TO_TEST:+-L ${TO_TEST} } ${CTEST_OPTS} ${KEEP_TESTS:+-FC .} |tee tmp.txt + ctest ${TO_TEST:+-L ${TO_TEST} } -j${NUMBER_OF_PROCESSORS} ${FULL_OPTS} ${KEEP_TESTS:+-FC .} |tee tmp.txt + if uname | grep -q "CYGWIN"; then + if [[ $TO_TEST == *"Polyhedron_Demo"* ]]; then + ctest ${CTEST_OPTS} -L Polyhedron_Demo ${KEEP_TESTS:+-FC .} |tee -a tmp.txt + fi + fi fi ##################### ## GET RESULTS ## @@ -373,7 +387,7 @@ run_test_on_host() setup_dirs -# Setup cmake +# Setup cmake log "${ACTUAL_LOGFILE}" "running the testsuites" if [ -n "${CONSOLE_OUTPUT}" ]; then printf "\n-------------------------------------------------------\n" From 889119e800d34571110962308e202f76598290aa Mon Sep 17 00:00:00 2001 From: Maxime Gimeno Date: Tue, 11 May 2021 12:48:44 +0200 Subject: [PATCH 04/49] Update add_test to directly use msbuild when running on cygwin --- .../cmake/modules/CGAL_add_test.cmake | 50 ++++++++++++++----- Polyhedron/demo/Polyhedron/CMakeLists.txt | 4 +- .../Plugins/Classification/CMakeLists.txt | 2 +- .../Plugins/Convex_hull/CMakeLists.txt | 2 +- .../Polyhedron/Plugins/PCA/CMakeLists.txt | 2 +- .../Polyhedron/Plugins/PMP/CMakeLists.txt | 12 ++--- .../Plugins/Surface_mesh/CMakeLists.txt | 4 +- .../Surface_mesh_deformation/CMakeLists.txt | 2 +- .../Polyhedron/polyhedron_demo_macros.cmake | 6 +-- 9 files changed, 53 insertions(+), 31 deletions(-) diff --git a/Installation/cmake/modules/CGAL_add_test.cmake b/Installation/cmake/modules/CGAL_add_test.cmake index bafb755b39a..f0fc8dce178 100644 --- a/Installation/cmake/modules/CGAL_add_test.cmake +++ b/Installation/cmake/modules/CGAL_add_test.cmake @@ -32,6 +32,9 @@ if(CGAL_RUN_TESTS_THROUGH_SSH) find_program(scp_executable scp) endif() +if(CGAL_WIN32_CMAKE_ON_CYGWIN) + find_program(MSBUILD_CMD NAMES msbuild.exe) +endif() # Process a list, and replace items contains a file pattern (like # `*.off`) by the sublist that corresponds to the globbing of the # pattern in the directory `${CMAKE_CURRENT_SOURCE_DIR}`. @@ -74,13 +77,26 @@ function(expand_list_with_globbing list_name) endfunction() function(cgal_add_compilation_test exe_name) - if(TEST compilation_of__${exe_name}) - return() - endif() - add_test(NAME "compilation_of__${exe_name}" - COMMAND ${TIME_COMMAND} "${CMAKE_COMMAND}" --build "${CMAKE_BINARY_DIR}" --target "${exe_name}" --config "$") - set_property(TEST "compilation_of__${exe_name}" - APPEND PROPERTY LABELS "${PROJECT_NAME}") + if(NOT CGAL_WIN32_CMAKE_ON_CYGWIN) + if(TEST compilation_of__${exe_name}) + return() + endif() + add_test(NAME "compilation_of__${exe_name}" + COMMAND ${TIME_COMMAND} "${CMAKE_COMMAND}" --build "${CMAKE_BINARY_DIR}" --target "${exe_name}" --config "$") + set_property(TEST "compilation_of__${exe_name}" + APPEND PROPERTY LABELS "${PROJECT_NAME}") + set_property(TEST "compilation_of__${exe_name}" + APPEND PROPERTY FIXTURES_REQUIRED "check_build_system_SetupFixture") + elseif(NOT TEST compilation_of__${PROJECT_NAME})#CGAL_WIN32_CMAKE_ON_CYGWIN + add_test(NAME "compilation_of__${PROJECT_NAME}" + COMMAND ${TIME_COMMAND} "${MSBUILD_CMD}" "${PROJECT_BINARY_DIR}/${PROJECT_NAME}.sln" "-m:$ENV{NUMBER_OF_PROCESSORS}" "/t:Build" "/p:Configuration=$") + set_property(TEST "compilation_of__${PROJECT_NAME}" + APPEND PROPERTY LABELS "${PROJECT_NAME}") + set_property(TEST "compilation_of__${PROJECT_NAME}" + APPEND PROPERTY FIXTURES_REQUIRED "check_build_system_SetupFixture") + set_tests_properties("compilation_of__${PROJECT_NAME}" + PROPERTIES RUN_SERIAL TRUE) + endif()#CGAL_WIN32_CMAKE_ON_CYGWIN if(NOT TARGET ALL_CGAL_TARGETS) add_custom_target( ALL_CGAL_TARGETS ) endif() @@ -94,8 +110,6 @@ function(cgal_add_compilation_test exe_name) set_property(TEST "check_build_system" PROPERTY FIXTURES_SETUP "check_build_system_SetupFixture") endif() - set_property(TEST "compilation_of__${exe_name}" - APPEND PROPERTY FIXTURES_REQUIRED "check_build_system_SetupFixture") if(TARGET CGAL_Qt5_moc_and_resources) # if CGAL_Qt5 was searched, and is header-only get_property(linked_libraries TARGET "${exe_name}" PROPERTY LINK_LIBRARIES) # message(STATUS "${exe_name} depends on ${linked_libraries}") @@ -135,8 +149,13 @@ function(cgal_setup_test_properties test_name) endif() if(exe_name) - set_property(TEST "${test_name}" - APPEND PROPERTY DEPENDS "compilation_of__${exe_name}") + if(NOT CGAL_WIN32_CMAKE_ON_CYGWIN) + set_property(TEST "${test_name}" + APPEND PROPERTY DEPENDS "compilation_of__${exe_name}") + else()#CGAL_WIN32_CMAKE_ON_CYGWIN + set_property(TEST "${test_name}" + APPEND PROPERTY DEPENDS "compilation_of__${PROJECT_NAME}") + endif()#CGAL_WIN32_CMAKE_ON_CYGWIN endif() get_filename_component(_source_dir_abs ${CMAKE_CURRENT_SOURCE_DIR} ABSOLUTE) @@ -217,8 +236,13 @@ function(cgal_setup_test_properties test_name) if(exe_name) set_property(TEST ${test_name} APPEND PROPERTY FIXTURES_REQUIRED "${exe_name}") - set_property(TEST "compilation_of__${exe_name}" - PROPERTY FIXTURES_SETUP "${exe_name}") + if(NOT CGAL_WIN32_CMAKE_ON_CYGWIN) + set_property(TEST "compilation_of__${exe_name}" + PROPERTY FIXTURES_SETUP "${exe_name}") + else()#CGAL_WIN32_CMAKE_ON_CYGWIN + set_property(TEST "compilation_of__${PROJECT_NAME}" + PROPERTY FIXTURES_SETUP "${exe_name}") + endif()#CGAL_WIN32_CMAKE_ON_CYGWIN if((ANDROID OR CGAL_RUN_TESTS_THROUGH_SSH) AND NOT TEST push_of__${exe_name}) if(ANDROID) add_test(NAME "push_of__${exe_name}" diff --git a/Polyhedron/demo/Polyhedron/CMakeLists.txt b/Polyhedron/demo/Polyhedron/CMakeLists.txt index 100d0948c14..945add4d121 100644 --- a/Polyhedron/demo/Polyhedron/CMakeLists.txt +++ b/Polyhedron/demo/Polyhedron/CMakeLists.txt @@ -48,7 +48,7 @@ include(${CGAL_USE_FILE}) find_package( Qt5 QUIET - COMPONENTS OpenGL Script + COMPONENTS OpenGL Script Widgets OPTIONAL_COMPONENTS ScriptTools WebSockets) set_package_properties( @@ -424,7 +424,7 @@ if(CGAL_Qt5_FOUND AND Qt5_FOUND) #WS Server if(TARGET Qt5::WebSockets) add_executable(WS_server Server_ws.cpp) - target_link_libraries(WS_server PUBLIC Qt5::WebSockets) + target_link_libraries(WS_server PUBLIC Qt5::WebSockets Qt5::Widgets Qt5::Network) message( STATUS "Qt5WebSockets was found. Using WebSockets is therefore possible.") endif() diff --git a/Polyhedron/demo/Polyhedron/Plugins/Classification/CMakeLists.txt b/Polyhedron/demo/Polyhedron/Plugins/Classification/CMakeLists.txt index 5ad7e8b16ef..1474ad22206 100644 --- a/Polyhedron/demo/Polyhedron/Plugins/Classification/CMakeLists.txt +++ b/Polyhedron/demo/Polyhedron/Plugins/Classification/CMakeLists.txt @@ -47,7 +47,7 @@ if(TARGET CGAL::Eigen3_support) scene_color_ramp CGAL::Eigen3_support) - if(BUILD_TESTING) + if(BUILD_TESTING AND NOT CGAL_WIN32_CMAKE_ON_CYGWIN) set_tests_properties( compilation_of__classification_plugin PROPERTIES RESOURCE_LOCK Selection_test_resources) diff --git a/Polyhedron/demo/Polyhedron/Plugins/Convex_hull/CMakeLists.txt b/Polyhedron/demo/Polyhedron/Plugins/Convex_hull/CMakeLists.txt index c28045e0aa9..e947dacf79b 100644 --- a/Polyhedron/demo/Polyhedron/Plugins/Convex_hull/CMakeLists.txt +++ b/Polyhedron/demo/Polyhedron/Plugins/Convex_hull/CMakeLists.txt @@ -10,7 +10,7 @@ polyhedron_demo_plugin(kernel_plugin Kernel_plugin) target_link_libraries(kernel_plugin PUBLIC scene_surface_mesh_item) -if(BUILD_TESTING) +if(BUILD_TESTING AND NOT CGAL_WIN32_CMAKE_ON_CYGWIN) set_tests_properties( compilation_of__convex_hull_plugin PROPERTIES RESOURCE_LOCK Selection_test_resources) diff --git a/Polyhedron/demo/Polyhedron/Plugins/PCA/CMakeLists.txt b/Polyhedron/demo/Polyhedron/Plugins/PCA/CMakeLists.txt index a27e53f67c9..79b40fae7fb 100644 --- a/Polyhedron/demo/Polyhedron/Plugins/PCA/CMakeLists.txt +++ b/Polyhedron/demo/Polyhedron/Plugins/PCA/CMakeLists.txt @@ -38,7 +38,7 @@ target_link_libraries( PUBLIC scene_surface_mesh_item scene_points_with_normal_item scene_polylines_item) - if(BUILD_TESTING) + if(BUILD_TESTING AND NOT CGAL_WIN32_CMAKE_ON_CYGWIN) set_tests_properties( compilation_of__create_obb_mesh_plugin PROPERTIES RESOURCE_LOCK Selection_test_resources) diff --git a/Polyhedron/demo/Polyhedron/Plugins/PMP/CMakeLists.txt b/Polyhedron/demo/Polyhedron/Plugins/PMP/CMakeLists.txt index 4a285de7181..de398cc6d42 100644 --- a/Polyhedron/demo/Polyhedron/Plugins/PMP/CMakeLists.txt +++ b/Polyhedron/demo/Polyhedron/Plugins/PMP/CMakeLists.txt @@ -52,17 +52,15 @@ if(TARGET CGAL::Eigen3_support) DESCRIPTION "A large scale non-linear optimization library." PURPOSE "Can be used as a solver in the smoothing plugin.") target_link_libraries(extrude_plugin PUBLIC CGAL::Eigen3_support) - if(BUILD_TESTING) + if(BUILD_TESTING AND NOT CGAL_WIN32_CMAKE_ON_CYGWIN) set_tests_properties( compilation_of__extrude_plugin compilation_of__fairing_plugin PROPERTIES RESOURCE_LOCK Selection_test_resources) - endif() - if(BUILD_TESTING) set_tests_properties( - compilation_of__hole_filling_plugin - compilation_of__smoothing_plugin - PROPERTIES RESOURCE_LOCK Selection_test_resources) + compilation_of__hole_filling_plugin + compilation_of__smoothing_plugin + PROPERTIES RESOURCE_LOCK Selection_test_resources) endif() else() message( @@ -167,7 +165,7 @@ target_link_libraries( scene_polylines_item) -if(BUILD_TESTING) +if(BUILD_TESTING AND NOT CGAL_WIN32_CMAKE_ON_CYGWIN) set_tests_properties( compilation_of__join_and_split_plugin compilation_of__selection_plugin diff --git a/Polyhedron/demo/Polyhedron/Plugins/Surface_mesh/CMakeLists.txt b/Polyhedron/demo/Polyhedron/Plugins/Surface_mesh/CMakeLists.txt index baa99e5eeb2..32425f6fde1 100644 --- a/Polyhedron/demo/Polyhedron/Plugins/Surface_mesh/CMakeLists.txt +++ b/Polyhedron/demo/Polyhedron/Plugins/Surface_mesh/CMakeLists.txt @@ -15,7 +15,7 @@ if(NOT CGAL_DISABLE_GMP) target_link_libraries( parameterization_plugin PUBLIC scene_surface_mesh_item scene_textured_item scene_selection_item CGAL::Eigen3_support) - if(BUILD_TESTING) + if(BUILD_TESTING AND NOT CGAL_WIN32_CMAKE_ON_CYGWIN) set_tests_properties( compilation_of__parameterization_plugin PROPERTIES RESOURCE_LOCK Selection_test_resources) @@ -32,7 +32,7 @@ if(NOT CGAL_DISABLE_GMP) polyhedron_demo_plugin(mesh_segmentation_plugin Mesh_segmentation_plugin ${segmentationUI_FILES}) target_link_libraries(mesh_segmentation_plugin PUBLIC scene_surface_mesh_item) - if(BUILD_TESTING) + if(BUILD_TESTING AND NOT CGAL_WIN32_CMAKE_ON_CYGWIN) set_tests_properties( compilation_of__mesh_segmentation_plugin PROPERTIES RESOURCE_LOCK Selection_test_resources) diff --git a/Polyhedron/demo/Polyhedron/Plugins/Surface_mesh_deformation/CMakeLists.txt b/Polyhedron/demo/Polyhedron/Plugins/Surface_mesh_deformation/CMakeLists.txt index 7cac6a10dd6..a2cc8933b6e 100644 --- a/Polyhedron/demo/Polyhedron/Plugins/Surface_mesh_deformation/CMakeLists.txt +++ b/Polyhedron/demo/Polyhedron/Plugins/Surface_mesh_deformation/CMakeLists.txt @@ -10,7 +10,7 @@ else() "NOTICE: The polyhedron edit plugin require Eigen 3.2 (or higher) and will not be available." ) -if(BUILD_TESTING) +if(BUILD_TESTING AND NOT CGAL_WIN32_CMAKE_ON_CYGWIN) set_tests_properties( compilation_of__edit_plugin PROPERTIES RESOURCE_LOCK Selection_test_resources) diff --git a/Polyhedron/demo/Polyhedron/polyhedron_demo_macros.cmake b/Polyhedron/demo/Polyhedron/polyhedron_demo_macros.cmake index 49c97ab3f67..cad5906dea9 100644 --- a/Polyhedron/demo/Polyhedron/polyhedron_demo_macros.cmake +++ b/Polyhedron/demo/Polyhedron/polyhedron_demo_macros.cmake @@ -35,8 +35,7 @@ include(${CGAL_MODULES_DIR}/CGAL_add_test.cmake) if(TARGET demo_framework) target_link_libraries( ${plugin_name} PUBLIC demo_framework) add_dependencies(${plugin_name} demo_framework) - if(BUILD_TESTING) - + if(BUILD_TESTING AND NOT CGAL_WIN32_CMAKE_ON_CYGWIN) if(NOT TARGET compilation_of__demo_framework) # This custom target is useless. It is used only as a flag to # detect that the test has already been created. @@ -44,13 +43,14 @@ include(${CGAL_MODULES_DIR}/CGAL_add_test.cmake) add_dependencies( compilation_of__demo_framework demo_framework ) add_test(NAME "compilation_of__demo_framework" COMMAND "${CMAKE_COMMAND}" --build "${CMAKE_BINARY_DIR}" --target "demo_framework" --config "$") + set_property(TEST "compilation_of__demo_framework" APPEND PROPERTY LABELS "CGAL_build_system") set_property(TEST "compilation_of__demo_framework" PROPERTY FIXTURES_SETUP "check_build_system_SetupFixture") set_property(TEST "compilation_of__demo_framework" APPEND PROPERTY DEPENDS "compilation_of__CGAL_Qt5_moc_and_resources") - endif() + endif() endif() else() target_link_libraries( ${plugin_name} PUBLIC Polyhedron_demo_framework) From dfab2a3d3c668905084e97a723357a3e3c09cba9 Mon Sep 17 00:00:00 2001 From: Maxime Gimeno Date: Tue, 11 May 2021 13:25:25 +0200 Subject: [PATCH 05/49] clean-up --- Installation/demo/CMakeLists.txt | 1 + Polyhedron/demo/Polyhedron/CMakeLists.txt | 4 ++-- .../Plugins/Camera_position/CMakeLists.txt | 1 - .../demo/Polyhedron/Plugins/PMP/CMakeLists.txt | 2 +- .../Polyhedron/Plugins/Surface_mesh/CMakeLists.txt | 2 ++ .../Surface_mesh_deformation/CMakeLists.txt | 14 +++++++------- 6 files changed, 13 insertions(+), 11 deletions(-) diff --git a/Installation/demo/CMakeLists.txt b/Installation/demo/CMakeLists.txt index 1342ea496df..4318d8156f4 100644 --- a/Installation/demo/CMakeLists.txt +++ b/Installation/demo/CMakeLists.txt @@ -1,5 +1,6 @@ cmake_minimum_required(VERSION 3.12...3.20) project(CGAL_DEMOS) + if(CGAL_BRANCH_BUILD) foreach(package ${CGAL_CONFIGURED_PACKAGES}) diff --git a/Polyhedron/demo/Polyhedron/CMakeLists.txt b/Polyhedron/demo/Polyhedron/CMakeLists.txt index 945add4d121..d3e8ff9837b 100644 --- a/Polyhedron/demo/Polyhedron/CMakeLists.txt +++ b/Polyhedron/demo/Polyhedron/CMakeLists.txt @@ -49,7 +49,7 @@ include(${CGAL_USE_FILE}) find_package( Qt5 QUIET COMPONENTS OpenGL Script Widgets - OPTIONAL_COMPONENTS ScriptTools WebSockets) + OPTIONAL_COMPONENTS ScriptTools WebSockets Network) set_package_properties( Qt5 PROPERTIES @@ -422,7 +422,7 @@ if(CGAL_Qt5_FOUND AND Qt5_FOUND) add_to_cached_list(CGAL_EXECUTABLE_TARGETS CGAL_PMP) #WS Server - if(TARGET Qt5::WebSockets) + if(TARGET Qt5::WebSockets AND TARGET Qt5::Network) add_executable(WS_server Server_ws.cpp) target_link_libraries(WS_server PUBLIC Qt5::WebSockets Qt5::Widgets Qt5::Network) message( diff --git a/Polyhedron/demo/Polyhedron/Plugins/Camera_position/CMakeLists.txt b/Polyhedron/demo/Polyhedron/Plugins/Camera_position/CMakeLists.txt index c4ac0436112..1e8696318b2 100644 --- a/Polyhedron/demo/Polyhedron/Plugins/Camera_position/CMakeLists.txt +++ b/Polyhedron/demo/Polyhedron/Plugins/Camera_position/CMakeLists.txt @@ -10,4 +10,3 @@ polyhedron_demo_plugin(camera_positions_plugin add_dependencies(camera_positions_plugin demo_framework) target_link_libraries( camera_positions_plugin PUBLIC demo_framework) target_link_libraries(camera_positions_plugin PUBLIC demo_framework) - diff --git a/Polyhedron/demo/Polyhedron/Plugins/PMP/CMakeLists.txt b/Polyhedron/demo/Polyhedron/Plugins/PMP/CMakeLists.txt index de398cc6d42..3bf3a53eff3 100644 --- a/Polyhedron/demo/Polyhedron/Plugins/PMP/CMakeLists.txt +++ b/Polyhedron/demo/Polyhedron/Plugins/PMP/CMakeLists.txt @@ -52,6 +52,7 @@ if(TARGET CGAL::Eigen3_support) DESCRIPTION "A large scale non-linear optimization library." PURPOSE "Can be used as a solver in the smoothing plugin.") target_link_libraries(extrude_plugin PUBLIC CGAL::Eigen3_support) + if(BUILD_TESTING AND NOT CGAL_WIN32_CMAKE_ON_CYGWIN) set_tests_properties( compilation_of__extrude_plugin @@ -164,7 +165,6 @@ target_link_libraries( engrave_text_plugin PUBLIC scene_surface_mesh_item scene_selection_item scene_polylines_item) - if(BUILD_TESTING AND NOT CGAL_WIN32_CMAKE_ON_CYGWIN) set_tests_properties( compilation_of__join_and_split_plugin diff --git a/Polyhedron/demo/Polyhedron/Plugins/Surface_mesh/CMakeLists.txt b/Polyhedron/demo/Polyhedron/Plugins/Surface_mesh/CMakeLists.txt index 32425f6fde1..a4c06b62599 100644 --- a/Polyhedron/demo/Polyhedron/Plugins/Surface_mesh/CMakeLists.txt +++ b/Polyhedron/demo/Polyhedron/Plugins/Surface_mesh/CMakeLists.txt @@ -15,6 +15,7 @@ if(NOT CGAL_DISABLE_GMP) target_link_libraries( parameterization_plugin PUBLIC scene_surface_mesh_item scene_textured_item scene_selection_item CGAL::Eigen3_support) + if(BUILD_TESTING AND NOT CGAL_WIN32_CMAKE_ON_CYGWIN) set_tests_properties( compilation_of__parameterization_plugin @@ -32,6 +33,7 @@ if(NOT CGAL_DISABLE_GMP) polyhedron_demo_plugin(mesh_segmentation_plugin Mesh_segmentation_plugin ${segmentationUI_FILES}) target_link_libraries(mesh_segmentation_plugin PUBLIC scene_surface_mesh_item) + if(BUILD_TESTING AND NOT CGAL_WIN32_CMAKE_ON_CYGWIN) set_tests_properties( compilation_of__mesh_segmentation_plugin diff --git a/Polyhedron/demo/Polyhedron/Plugins/Surface_mesh_deformation/CMakeLists.txt b/Polyhedron/demo/Polyhedron/Plugins/Surface_mesh_deformation/CMakeLists.txt index a2cc8933b6e..b2b76e77564 100644 --- a/Polyhedron/demo/Polyhedron/Plugins/Surface_mesh_deformation/CMakeLists.txt +++ b/Polyhedron/demo/Polyhedron/Plugins/Surface_mesh_deformation/CMakeLists.txt @@ -4,16 +4,16 @@ if(EIGEN3_FOUND AND "${EIGEN3_VERSION}" VERSION_GREATER "3.1.90") polyhedron_demo_plugin(edit_plugin Edit_polyhedron_plugin Deform_mesh.ui) target_link_libraries(edit_plugin PUBLIC scene_surface_mesh_item scene_edit_item scene_selection_item) + + if(BUILD_TESTING AND NOT CGAL_WIN32_CMAKE_ON_CYGWIN) + set_tests_properties( + compilation_of__edit_plugin + PROPERTIES RESOURCE_LOCK Selection_test_resources) + endif() + else() message( STATUS "NOTICE: The polyhedron edit plugin require Eigen 3.2 (or higher) and will not be available." ) - -if(BUILD_TESTING AND NOT CGAL_WIN32_CMAKE_ON_CYGWIN) - set_tests_properties( - compilation_of__edit_plugin - PROPERTIES RESOURCE_LOCK Selection_test_resources) -endif() - endif() From 827a5ae8aa58f781663a5c72322c7097239dfd13 Mon Sep 17 00:00:00 2001 From: Maxime Gimeno Date: Tue, 11 May 2021 14:40:40 +0200 Subject: [PATCH 06/49] review --- .../cmake/modules/CGAL_add_test.cmake | 20 +++++++++---------- .../Plugins/Camera_position/CMakeLists.txt | 1 - .../Plugins/Classification/CMakeLists.txt | 2 +- .../Plugins/Convex_hull/CMakeLists.txt | 2 +- .../Polyhedron/Plugins/PCA/CMakeLists.txt | 2 +- .../Polyhedron/Plugins/PMP/CMakeLists.txt | 4 ++-- .../Plugins/Surface_mesh/CMakeLists.txt | 4 ++-- .../Surface_mesh_deformation/CMakeLists.txt | 2 +- .../Polyhedron/polyhedron_demo_macros.cmake | 2 +- 9 files changed, 19 insertions(+), 20 deletions(-) diff --git a/Installation/cmake/modules/CGAL_add_test.cmake b/Installation/cmake/modules/CGAL_add_test.cmake index f0fc8dce178..e54c62f68f2 100644 --- a/Installation/cmake/modules/CGAL_add_test.cmake +++ b/Installation/cmake/modules/CGAL_add_test.cmake @@ -32,7 +32,7 @@ if(CGAL_RUN_TESTS_THROUGH_SSH) find_program(scp_executable scp) endif() -if(CGAL_WIN32_CMAKE_ON_CYGWIN) +if(CMAKE_VS_MSBUILD_COMMAND) find_program(MSBUILD_CMD NAMES msbuild.exe) endif() # Process a list, and replace items contains a file pattern (like @@ -77,7 +77,7 @@ function(expand_list_with_globbing list_name) endfunction() function(cgal_add_compilation_test exe_name) - if(NOT CGAL_WIN32_CMAKE_ON_CYGWIN) + if(NOT CMAKE_VS_MSBUILD_COMMAND) if(TEST compilation_of__${exe_name}) return() endif() @@ -87,7 +87,7 @@ function(cgal_add_compilation_test exe_name) APPEND PROPERTY LABELS "${PROJECT_NAME}") set_property(TEST "compilation_of__${exe_name}" APPEND PROPERTY FIXTURES_REQUIRED "check_build_system_SetupFixture") - elseif(NOT TEST compilation_of__${PROJECT_NAME})#CGAL_WIN32_CMAKE_ON_CYGWIN + elseif(NOT TEST compilation_of__${PROJECT_NAME})#CMAKE_VS_MSBUILD_COMMAND add_test(NAME "compilation_of__${PROJECT_NAME}" COMMAND ${TIME_COMMAND} "${MSBUILD_CMD}" "${PROJECT_BINARY_DIR}/${PROJECT_NAME}.sln" "-m:$ENV{NUMBER_OF_PROCESSORS}" "/t:Build" "/p:Configuration=$") set_property(TEST "compilation_of__${PROJECT_NAME}" @@ -96,7 +96,7 @@ function(cgal_add_compilation_test exe_name) APPEND PROPERTY FIXTURES_REQUIRED "check_build_system_SetupFixture") set_tests_properties("compilation_of__${PROJECT_NAME}" PROPERTIES RUN_SERIAL TRUE) - endif()#CGAL_WIN32_CMAKE_ON_CYGWIN + endif()#CMAKE_VS_MSBUILD_COMMAND if(NOT TARGET ALL_CGAL_TARGETS) add_custom_target( ALL_CGAL_TARGETS ) endif() @@ -149,13 +149,13 @@ function(cgal_setup_test_properties test_name) endif() if(exe_name) - if(NOT CGAL_WIN32_CMAKE_ON_CYGWIN) + if(NOT CMAKE_VS_MSBUILD_COMMAND) set_property(TEST "${test_name}" APPEND PROPERTY DEPENDS "compilation_of__${exe_name}") - else()#CGAL_WIN32_CMAKE_ON_CYGWIN + else()#CMAKE_VS_MSBUILD_COMMAND set_property(TEST "${test_name}" APPEND PROPERTY DEPENDS "compilation_of__${PROJECT_NAME}") - endif()#CGAL_WIN32_CMAKE_ON_CYGWIN + endif()#CMAKE_VS_MSBUILD_COMMAND endif() get_filename_component(_source_dir_abs ${CMAKE_CURRENT_SOURCE_DIR} ABSOLUTE) @@ -236,13 +236,13 @@ function(cgal_setup_test_properties test_name) if(exe_name) set_property(TEST ${test_name} APPEND PROPERTY FIXTURES_REQUIRED "${exe_name}") - if(NOT CGAL_WIN32_CMAKE_ON_CYGWIN) + if(NOT CMAKE_VS_MSBUILD_COMMAND) set_property(TEST "compilation_of__${exe_name}" PROPERTY FIXTURES_SETUP "${exe_name}") - else()#CGAL_WIN32_CMAKE_ON_CYGWIN + else()#CMAKE_VS_MSBUILD_COMMAND set_property(TEST "compilation_of__${PROJECT_NAME}" PROPERTY FIXTURES_SETUP "${exe_name}") - endif()#CGAL_WIN32_CMAKE_ON_CYGWIN + endif()#CMAKE_VS_MSBUILD_COMMAND if((ANDROID OR CGAL_RUN_TESTS_THROUGH_SSH) AND NOT TEST push_of__${exe_name}) if(ANDROID) add_test(NAME "push_of__${exe_name}" diff --git a/Polyhedron/demo/Polyhedron/Plugins/Camera_position/CMakeLists.txt b/Polyhedron/demo/Polyhedron/Plugins/Camera_position/CMakeLists.txt index 1e8696318b2..35c19f5a82a 100644 --- a/Polyhedron/demo/Polyhedron/Plugins/Camera_position/CMakeLists.txt +++ b/Polyhedron/demo/Polyhedron/Plugins/Camera_position/CMakeLists.txt @@ -8,5 +8,4 @@ polyhedron_demo_plugin(camera_positions_plugin KEYWORDS Viewer) add_dependencies(camera_positions_plugin demo_framework) -target_link_libraries( camera_positions_plugin PUBLIC demo_framework) target_link_libraries(camera_positions_plugin PUBLIC demo_framework) diff --git a/Polyhedron/demo/Polyhedron/Plugins/Classification/CMakeLists.txt b/Polyhedron/demo/Polyhedron/Plugins/Classification/CMakeLists.txt index 1474ad22206..a44ae7fd8b4 100644 --- a/Polyhedron/demo/Polyhedron/Plugins/Classification/CMakeLists.txt +++ b/Polyhedron/demo/Polyhedron/Plugins/Classification/CMakeLists.txt @@ -47,7 +47,7 @@ if(TARGET CGAL::Eigen3_support) scene_color_ramp CGAL::Eigen3_support) - if(BUILD_TESTING AND NOT CGAL_WIN32_CMAKE_ON_CYGWIN) + if(BUILD_TESTING AND NOT CMAKE_VS_MSBUILD_COMMAND) set_tests_properties( compilation_of__classification_plugin PROPERTIES RESOURCE_LOCK Selection_test_resources) diff --git a/Polyhedron/demo/Polyhedron/Plugins/Convex_hull/CMakeLists.txt b/Polyhedron/demo/Polyhedron/Plugins/Convex_hull/CMakeLists.txt index e947dacf79b..3c923aab368 100644 --- a/Polyhedron/demo/Polyhedron/Plugins/Convex_hull/CMakeLists.txt +++ b/Polyhedron/demo/Polyhedron/Plugins/Convex_hull/CMakeLists.txt @@ -10,7 +10,7 @@ polyhedron_demo_plugin(kernel_plugin Kernel_plugin) target_link_libraries(kernel_plugin PUBLIC scene_surface_mesh_item) -if(BUILD_TESTING AND NOT CGAL_WIN32_CMAKE_ON_CYGWIN) +if(BUILD_TESTING AND NOT CMAKE_VS_MSBUILD_COMMAND) set_tests_properties( compilation_of__convex_hull_plugin PROPERTIES RESOURCE_LOCK Selection_test_resources) diff --git a/Polyhedron/demo/Polyhedron/Plugins/PCA/CMakeLists.txt b/Polyhedron/demo/Polyhedron/Plugins/PCA/CMakeLists.txt index 79b40fae7fb..4171347a6dc 100644 --- a/Polyhedron/demo/Polyhedron/Plugins/PCA/CMakeLists.txt +++ b/Polyhedron/demo/Polyhedron/Plugins/PCA/CMakeLists.txt @@ -38,7 +38,7 @@ target_link_libraries( PUBLIC scene_surface_mesh_item scene_points_with_normal_item scene_polylines_item) - if(BUILD_TESTING AND NOT CGAL_WIN32_CMAKE_ON_CYGWIN) + if(BUILD_TESTING AND NOT CMAKE_VS_MSBUILD_COMMAND) set_tests_properties( compilation_of__create_obb_mesh_plugin PROPERTIES RESOURCE_LOCK Selection_test_resources) diff --git a/Polyhedron/demo/Polyhedron/Plugins/PMP/CMakeLists.txt b/Polyhedron/demo/Polyhedron/Plugins/PMP/CMakeLists.txt index 3bf3a53eff3..26c24ce0875 100644 --- a/Polyhedron/demo/Polyhedron/Plugins/PMP/CMakeLists.txt +++ b/Polyhedron/demo/Polyhedron/Plugins/PMP/CMakeLists.txt @@ -53,7 +53,7 @@ if(TARGET CGAL::Eigen3_support) PURPOSE "Can be used as a solver in the smoothing plugin.") target_link_libraries(extrude_plugin PUBLIC CGAL::Eigen3_support) - if(BUILD_TESTING AND NOT CGAL_WIN32_CMAKE_ON_CYGWIN) + if(BUILD_TESTING AND NOT CMAKE_VS_MSBUILD_COMMAND) set_tests_properties( compilation_of__extrude_plugin compilation_of__fairing_plugin @@ -165,7 +165,7 @@ target_link_libraries( engrave_text_plugin PUBLIC scene_surface_mesh_item scene_selection_item scene_polylines_item) -if(BUILD_TESTING AND NOT CGAL_WIN32_CMAKE_ON_CYGWIN) +if(BUILD_TESTING AND NOT CMAKE_VS_MSBUILD_COMMAND) set_tests_properties( compilation_of__join_and_split_plugin compilation_of__selection_plugin diff --git a/Polyhedron/demo/Polyhedron/Plugins/Surface_mesh/CMakeLists.txt b/Polyhedron/demo/Polyhedron/Plugins/Surface_mesh/CMakeLists.txt index a4c06b62599..682998322e0 100644 --- a/Polyhedron/demo/Polyhedron/Plugins/Surface_mesh/CMakeLists.txt +++ b/Polyhedron/demo/Polyhedron/Plugins/Surface_mesh/CMakeLists.txt @@ -16,7 +16,7 @@ if(NOT CGAL_DISABLE_GMP) parameterization_plugin PUBLIC scene_surface_mesh_item scene_textured_item scene_selection_item CGAL::Eigen3_support) - if(BUILD_TESTING AND NOT CGAL_WIN32_CMAKE_ON_CYGWIN) + if(BUILD_TESTING AND NOT CMAKE_VS_MSBUILD_COMMAND) set_tests_properties( compilation_of__parameterization_plugin PROPERTIES RESOURCE_LOCK Selection_test_resources) @@ -34,7 +34,7 @@ if(NOT CGAL_DISABLE_GMP) ${segmentationUI_FILES}) target_link_libraries(mesh_segmentation_plugin PUBLIC scene_surface_mesh_item) - if(BUILD_TESTING AND NOT CGAL_WIN32_CMAKE_ON_CYGWIN) + if(BUILD_TESTING AND NOT CMAKE_VS_MSBUILD_COMMAND) set_tests_properties( compilation_of__mesh_segmentation_plugin PROPERTIES RESOURCE_LOCK Selection_test_resources) diff --git a/Polyhedron/demo/Polyhedron/Plugins/Surface_mesh_deformation/CMakeLists.txt b/Polyhedron/demo/Polyhedron/Plugins/Surface_mesh_deformation/CMakeLists.txt index b2b76e77564..0954a8c13c3 100644 --- a/Polyhedron/demo/Polyhedron/Plugins/Surface_mesh_deformation/CMakeLists.txt +++ b/Polyhedron/demo/Polyhedron/Plugins/Surface_mesh_deformation/CMakeLists.txt @@ -5,7 +5,7 @@ if(EIGEN3_FOUND AND "${EIGEN3_VERSION}" VERSION_GREATER "3.1.90") target_link_libraries(edit_plugin PUBLIC scene_surface_mesh_item scene_edit_item scene_selection_item) - if(BUILD_TESTING AND NOT CGAL_WIN32_CMAKE_ON_CYGWIN) + if(BUILD_TESTING AND NOT CMAKE_VS_MSBUILD_COMMAND) set_tests_properties( compilation_of__edit_plugin PROPERTIES RESOURCE_LOCK Selection_test_resources) diff --git a/Polyhedron/demo/Polyhedron/polyhedron_demo_macros.cmake b/Polyhedron/demo/Polyhedron/polyhedron_demo_macros.cmake index cad5906dea9..4a027c1c750 100644 --- a/Polyhedron/demo/Polyhedron/polyhedron_demo_macros.cmake +++ b/Polyhedron/demo/Polyhedron/polyhedron_demo_macros.cmake @@ -35,7 +35,7 @@ include(${CGAL_MODULES_DIR}/CGAL_add_test.cmake) if(TARGET demo_framework) target_link_libraries( ${plugin_name} PUBLIC demo_framework) add_dependencies(${plugin_name} demo_framework) - if(BUILD_TESTING AND NOT CGAL_WIN32_CMAKE_ON_CYGWIN) + if(BUILD_TESTING AND NOT CMAKE_VS_MSBUILD_COMMAND) if(NOT TARGET compilation_of__demo_framework) # This custom target is useless. It is used only as a flag to # detect that the test has already been created. From b61f458cff4c6acded30f3029cc6de2bb4300dce Mon Sep 17 00:00:00 2001 From: Maxime Gimeno Date: Tue, 11 May 2021 14:56:16 +0200 Subject: [PATCH 07/49] USe the command --- Installation/cmake/modules/CGAL_add_test.cmake | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/Installation/cmake/modules/CGAL_add_test.cmake b/Installation/cmake/modules/CGAL_add_test.cmake index e54c62f68f2..61cf34357ec 100644 --- a/Installation/cmake/modules/CGAL_add_test.cmake +++ b/Installation/cmake/modules/CGAL_add_test.cmake @@ -32,9 +32,6 @@ if(CGAL_RUN_TESTS_THROUGH_SSH) find_program(scp_executable scp) endif() -if(CMAKE_VS_MSBUILD_COMMAND) - find_program(MSBUILD_CMD NAMES msbuild.exe) -endif() # Process a list, and replace items contains a file pattern (like # `*.off`) by the sublist that corresponds to the globbing of the # pattern in the directory `${CMAKE_CURRENT_SOURCE_DIR}`. @@ -89,7 +86,7 @@ function(cgal_add_compilation_test exe_name) APPEND PROPERTY FIXTURES_REQUIRED "check_build_system_SetupFixture") elseif(NOT TEST compilation_of__${PROJECT_NAME})#CMAKE_VS_MSBUILD_COMMAND add_test(NAME "compilation_of__${PROJECT_NAME}" - COMMAND ${TIME_COMMAND} "${MSBUILD_CMD}" "${PROJECT_BINARY_DIR}/${PROJECT_NAME}.sln" "-m:$ENV{NUMBER_OF_PROCESSORS}" "/t:Build" "/p:Configuration=$") + COMMAND ${TIME_COMMAND} "${CMAKE_VS_MSBUILD_COMMAND}" "${PROJECT_BINARY_DIR}/${PROJECT_NAME}.sln" "-m:$ENV{NUMBER_OF_PROCESSORS}" "/t:Build" "/p:Configuration=$") set_property(TEST "compilation_of__${PROJECT_NAME}" APPEND PROPERTY LABELS "${PROJECT_NAME}") set_property(TEST "compilation_of__${PROJECT_NAME}" From 0e9d4bf9560f0aa8a3202ce0effcf693e05c36e6 Mon Sep 17 00:00:00 2001 From: Maxime Gimeno Date: Thu, 20 May 2021 12:17:48 +0200 Subject: [PATCH 08/49] Fixes in CMake --- .../cmake/modules/CGAL_add_test.cmake | 11 ++++++++- .../run_testsuite_with_ctest | 23 ++++--------------- 2 files changed, 15 insertions(+), 19 deletions(-) diff --git a/Installation/cmake/modules/CGAL_add_test.cmake b/Installation/cmake/modules/CGAL_add_test.cmake index 61cf34357ec..7090304dc26 100644 --- a/Installation/cmake/modules/CGAL_add_test.cmake +++ b/Installation/cmake/modules/CGAL_add_test.cmake @@ -84,7 +84,9 @@ function(cgal_add_compilation_test exe_name) APPEND PROPERTY LABELS "${PROJECT_NAME}") set_property(TEST "compilation_of__${exe_name}" APPEND PROPERTY FIXTURES_REQUIRED "check_build_system_SetupFixture") - elseif(NOT TEST compilation_of__${PROJECT_NAME})#CMAKE_VS_MSBUILD_COMMAND + elseif(NOT TARGET compilation_of__${PROJECT_NAME})#CMAKE_VS_MSBUILD_COMMAND + #this target is just a flag, to deal with the scope problem with the tests + add_custom_target(compilation_of__${PROJECT_NAME}) add_test(NAME "compilation_of__${PROJECT_NAME}" COMMAND ${TIME_COMMAND} "${CMAKE_VS_MSBUILD_COMMAND}" "${PROJECT_BINARY_DIR}/${PROJECT_NAME}.sln" "-m:$ENV{NUMBER_OF_PROCESSORS}" "/t:Build" "/p:Configuration=$") set_property(TEST "compilation_of__${PROJECT_NAME}" @@ -93,6 +95,13 @@ function(cgal_add_compilation_test exe_name) APPEND PROPERTY FIXTURES_REQUIRED "check_build_system_SetupFixture") set_tests_properties("compilation_of__${PROJECT_NAME}" PROPERTIES RUN_SERIAL TRUE) + #because of the scope of the tests, this part cannot go in the relevant CMakeLists + if("${PROJECT_NAME}" STREQUAL "Polyhedron_Demo") + set_tests_properties(compilation_of__Polyhedron_Demo PROPERTIES TIMEOUT 2400) + elseif("${PROJECT_NAME}" STREQUAL "Mesh_3_Tests" OR "${PROJECT_NAME}" STREQUAL "Mesh_3_Examples") + set_tests_properties(compilation_of__${PROJECT_NAME} PROPERTIES TIMEOUT 1600) + endif() + endif()#CMAKE_VS_MSBUILD_COMMAND if(NOT TARGET ALL_CGAL_TARGETS) add_custom_target( ALL_CGAL_TARGETS ) diff --git a/Scripts/developer_scripts/run_testsuite_with_ctest b/Scripts/developer_scripts/run_testsuite_with_ctest index bfca26d788b..6c022542520 100644 --- a/Scripts/developer_scripts/run_testsuite_with_ctest +++ b/Scripts/developer_scripts/run_testsuite_with_ctest @@ -259,8 +259,8 @@ run_test_on_platform() cd "${CGAL_BINARY_DIR}" log "${ACTUAL_LOGFILE}.test.${PLATFORM}" "Testing on host ${HOST} and platform ${PLATFORM}" - if [ -f "${REFERENCE_PLATFORMS_DIR}/${PLATFORM}/setup" ]; then - source "${REFERENCE_PLATFORMS_DIR}/${PLATFORM}/setup" + if [ -f "${CGAL_HOME}/${REFERENCE_PLATFORMS_DIR}/${PLATFORM}/setup" ]; then + source "${CGAL_HOME}/${REFERENCE_PLATFORMS_DIR}/${PLATFORM}/setup" else INIT_FILE="${CGAL_HOME}/${REFERENCE_PLATFORMS_DIR}/${PLATFORM}.cmake" fi @@ -295,27 +295,14 @@ run_test_on_platform() echo "SET(CTEST_CUSTOM_MAXIMUM_PASSED_TEST_OUTPUT_SIZE 1000000000)" > CTestCustom.cmake echo "SET(CTEST_CUSTOM_MAXIMUM_FAILED_TEST_OUTPUT_SIZE 1000000000)" >> CTestCustom.cmake - CTEST_OPTS="-T Start -T Test --timeout 1200 ${DO_NOT_TEST:+-E execution___of__}" - FULL_OPTS=${CTEST_OPTS} - echo "NUMBER_OF_PROCESSORS = ${NUMBER_OF_PROCESSORS}" + CTEST_OPTS="-T Start -T Test --timeout 1200 ${DO_NOT_TEST:+-E execution___of__}" if uname | grep -q "CYGWIN"; then CTEST_OPTS="-C ${CONFIG_TYPE} ${CTEST_OPTS}" - FULL_OPTS="${CTEST_OPTS} -LE Polyhedron_Demo -V" fi if [ -z "${SHOW_PROGRESS}" ]; then - ctest ${TO_TEST:+-L ${TO_TEST} } ${FULL_OPTS} -j${NUMBER_OF_PROCESSORS} ${KEEP_TESTS:+-FC .}> tmp.txt - if uname | grep -q "CYGWIN"; then - if [[ $TO_TEST == *"Polyhedron_Demo"* ]]; then - ctest ${CTEST_OPTS} -L Polyhedron_Demo ${KEEP_TESTS:+-FC .}>> tmp.txt - fi - fi + ctest ${TO_TEST:+-L ${TO_TEST} } ${CTEST_OPTS} -j${NUMBER_OF_PROCESSORS} ${KEEP_TESTS:+-FC .}>tmp.txt else - ctest ${TO_TEST:+-L ${TO_TEST} } -j${NUMBER_OF_PROCESSORS} ${FULL_OPTS} ${KEEP_TESTS:+-FC .} |tee tmp.txt - if uname | grep -q "CYGWIN"; then - if [[ $TO_TEST == *"Polyhedron_Demo"* ]]; then - ctest ${CTEST_OPTS} -L Polyhedron_Demo ${KEEP_TESTS:+-FC .} |tee -a tmp.txt - fi - fi + ctest ${TO_TEST:+-L ${TO_TEST} } ${CTEST_OPTS} -j${NUMBER_OF_PROCESSORS} ${KEEP_TESTS:+-FC .}|tee tmp.txt fi ##################### ## GET RESULTS ## From b68dbb8f20f8caf3b1aef3d82ad432a0168c4c5a Mon Sep 17 00:00:00 2001 From: Maxime Gimeno Date: Thu, 20 May 2021 14:43:56 +0200 Subject: [PATCH 09/49] Fix false warning reports and tests in snap_rounding_2 (eol problems) --- Snap_rounding_2/test/Snap_rounding_2/CMakeLists.txt | 2 +- Testsuite/test/parse-ctest-dashboard-xml.py | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/Snap_rounding_2/test/Snap_rounding_2/CMakeLists.txt b/Snap_rounding_2/test/Snap_rounding_2/CMakeLists.txt index 43d00585f4d..11c89bb7567 100644 --- a/Snap_rounding_2/test/Snap_rounding_2/CMakeLists.txt +++ b/Snap_rounding_2/test/Snap_rounding_2/CMakeLists.txt @@ -19,7 +19,7 @@ function(add_Snap_rounding_tests name) cgal_add_test(${name} TEST_NAME ${test_name} ARGUMENTS ${data_dir}/${file} ${data_dir}/output_${file}) add_test(NAME "${test_name}_compare_results" - COMMAND ${CMAKE_COMMAND} -E compare_files + COMMAND ${CMAKE_COMMAND} -E compare_files --ignore-eol ${data_dir}/output_${file} ${data_dir}/gold_${file}) cgal_setup_test_properties("${test_name}_compare_results") set_property( diff --git a/Testsuite/test/parse-ctest-dashboard-xml.py b/Testsuite/test/parse-ctest-dashboard-xml.py index 4942e7cec5d..d13e33cd0c0 100644 --- a/Testsuite/test/parse-ctest-dashboard-xml.py +++ b/Testsuite/test/parse-ctest-dashboard-xml.py @@ -86,7 +86,7 @@ with open_file_create_dir(result_file_name.format(dir=os.getcwd(), print(" {result} {name} in {time} s : {value} ".format(result = "successful " if (t['Status'] == 'passed') else "ERROR: ", name = t['Name'], value = t['ExitValue'] if(t['ExitValue'] != "") else "SUCCESS" , time = t['ExecutionTime']), file=error) if t['Status'] != 'passed': result_for_label='n' - elif t['Output'] != None and re.search(r'(^|[^a-zA-Z_,:-])warning', t['Output'], flags=re.IGNORECASE): + elif t['Output'] != None and re.search(r'(^|[^a-zA-Z_,:-])([^0]\s)warning', t['Output'], flags=re.IGNORECASE): result_for_label='w' with io.open("{}/ProgramOutput.{}".format(label, t['Name']), mode="w", encoding="utf-8") as f: From 1f89218fb99933346f8411d8a65dcba92e7e7f5d Mon Sep 17 00:00:00 2001 From: Maxime Gimeno Date: Wed, 26 May 2021 15:18:03 +0200 Subject: [PATCH 10/49] enhance the results of the ctest parsing for the "t" case (not just "w") --- Testsuite/test/parse-ctest-dashboard-xml.py | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/Testsuite/test/parse-ctest-dashboard-xml.py b/Testsuite/test/parse-ctest-dashboard-xml.py index d13e33cd0c0..c62bab94a56 100644 --- a/Testsuite/test/parse-ctest-dashboard-xml.py +++ b/Testsuite/test/parse-ctest-dashboard-xml.py @@ -86,8 +86,14 @@ with open_file_create_dir(result_file_name.format(dir=os.getcwd(), print(" {result} {name} in {time} s : {value} ".format(result = "successful " if (t['Status'] == 'passed') else "ERROR: ", name = t['Name'], value = t['ExitValue'] if(t['ExitValue'] != "") else "SUCCESS" , time = t['ExecutionTime']), file=error) if t['Status'] != 'passed': result_for_label='n' - elif t['Output'] != None and re.search(r'(^|[^a-zA-Z_,:-])([^0]\s)warning', t['Output'], flags=re.IGNORECASE): - result_for_label='w' + elif t['Output'] != None: + for m in re.finditer(r'(.*([^a-zA-Z_,:-])([^\d]\s)warning).*?(\[|\n)', lines, flags=re.IGNORECASE): + n = re.search(r'cmake|cgal', m.group(0), flags=re.IGNORECASE) + if n: + result_for_label='w' + break; + else: + result_for_label='t' with io.open("{}/ProgramOutput.{}".format(label, t['Name']), mode="w", encoding="utf-8") as f: print("{}/ProgramOutput.{}".format(label, t['Name'])) From 18ca811f7faae9b673a95eb075a08ac094c0c011 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9bastien=20Loriot?= Date: Thu, 27 May 2021 12:36:17 +0200 Subject: [PATCH 11/49] hash value of handles use directly the address of the node --- Hash_map/include/CGAL/Handle_hash_function.h | 2 +- STL_Extension/include/CGAL/In_place_list.h | 8 ++++---- 2 files changed, 5 insertions(+), 5 deletions(-) diff --git a/Hash_map/include/CGAL/Handle_hash_function.h b/Hash_map/include/CGAL/Handle_hash_function.h index 1450384d6cc..0ff617d8c05 100644 --- a/Hash_map/include/CGAL/Handle_hash_function.h +++ b/Hash_map/include/CGAL/Handle_hash_function.h @@ -33,7 +33,7 @@ namespace internal{ std::size_t operator()(const H& h) { - return std::size_t(&*h) / + return std::size_t(h.operator->()) / sizeof( typename std::iterator_traits::value_type); } }; diff --git a/STL_Extension/include/CGAL/In_place_list.h b/STL_Extension/include/CGAL/In_place_list.h index 3266d1ae674..9c99f2e9a8f 100644 --- a/STL_Extension/include/CGAL/In_place_list.h +++ b/STL_Extension/include/CGAL/In_place_list.h @@ -179,7 +179,7 @@ namespace internal { template std::size_t hash_value(const In_place_list_iterator& i) { - T* ptr = &*i; + T* ptr = i.operator->(); return reinterpret_cast(ptr)/ sizeof(T); } @@ -187,7 +187,7 @@ template template std::size_t hash_value(const In_place_list_const_iterator& i) { - const T* ptr = &*i; + const T* ptr = i.operator->(); return reinterpret_cast(ptr)/ sizeof(T); } @@ -792,7 +792,7 @@ namespace std { std::size_t operator()(const CGAL::internal::In_place_list_iterator& i) const { - const T* ptr = &*i; + const T* ptr = i.operator->(); return reinterpret_cast(ptr)/ sizeof(T); } }; @@ -803,7 +803,7 @@ namespace std { std::size_t operator()(const CGAL::internal::In_place_list_const_iterator& i) const { - const T* ptr = &*i; + const T* ptr =i.operator->(); return reinterpret_cast(ptr)/ sizeof(T); } }; From 17f5ef19fd508cdb9988c3fa5993703abed04342 Mon Sep 17 00:00:00 2001 From: Maxime Gimeno Date: Thu, 27 May 2021 13:42:16 +0200 Subject: [PATCH 12/49] Fix CXXFLAGS misisng in testsuite --- Scripts/developer_scripts/run_testsuite_with_ctest | 4 +++- Testsuite/test/parse-ctest-dashboard-xml.py | 2 +- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/Scripts/developer_scripts/run_testsuite_with_ctest b/Scripts/developer_scripts/run_testsuite_with_ctest index 6c022542520..1bc6a1220c0 100644 --- a/Scripts/developer_scripts/run_testsuite_with_ctest +++ b/Scripts/developer_scripts/run_testsuite_with_ctest @@ -322,7 +322,9 @@ run_test_on_platform() echo "TESTER_NAME ${CGAL_TESTER}" >> "$RESULT_FILE" echo "TESTER_ADDRESS ${TESTER_ADDRESS}" >> "$RESULT_FILE" echo "CGAL_TEST_PLATFORM ${PLATFORM}" >> "$RESULT_FILE" - grep -e "^-- USING " "${CGAL_BINARY_DIR}/installation.log" >> $RESULT_FILE + grep -e "^-- USING " "${CGAL_BINARY_DIR}/installation.log"|sort -u >> $RESULT_FILE + #Use sed to get the content of DEBUG or RELEASE CXX FLAGS so that Multiconfiguration platforms do provide their CXXXFLAGS to the testsuite page (that greps USING CXXFLAGS to get info) + sed -i -E 's/(^-- USING )(DEBUG|RELEASE) (CXXFLAGS)/\1\3/' $RESULT_FILE echo "------------" >> "$RESULT_FILE" #if git branch, create empty scm file for python script if [ -n "${SCRIPTS_DIR}" ]; then diff --git a/Testsuite/test/parse-ctest-dashboard-xml.py b/Testsuite/test/parse-ctest-dashboard-xml.py index c62bab94a56..d48de1939c9 100644 --- a/Testsuite/test/parse-ctest-dashboard-xml.py +++ b/Testsuite/test/parse-ctest-dashboard-xml.py @@ -87,7 +87,7 @@ with open_file_create_dir(result_file_name.format(dir=os.getcwd(), if t['Status'] != 'passed': result_for_label='n' elif t['Output'] != None: - for m in re.finditer(r'(.*([^a-zA-Z_,:-])([^\d]\s)warning).*?(\[|\n)', lines, flags=re.IGNORECASE): + for m in re.finditer(r'(.*([^a-zA-Z_,:-])([^\d]\s)warning).*?(\[|\n)', t['Output'], flags=re.IGNORECASE): n = re.search(r'cmake|cgal', m.group(0), flags=re.IGNORECASE) if n: result_for_label='w' From cec93d0c9fd95fbc5075245109a5bdb53894e2f2 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9bastien=20Loriot?= Date: Thu, 27 May 2021 14:36:55 +0200 Subject: [PATCH 13/49] special case for pointers --- Hash_map/include/CGAL/Handle_hash_function.h | 10 ++++++++++ 1 file changed, 10 insertions(+) diff --git a/Hash_map/include/CGAL/Handle_hash_function.h b/Hash_map/include/CGAL/Handle_hash_function.h index 0ff617d8c05..7a77b9486ed 100644 --- a/Hash_map/include/CGAL/Handle_hash_function.h +++ b/Hash_map/include/CGAL/Handle_hash_function.h @@ -37,6 +37,16 @@ namespace internal{ sizeof( typename std::iterator_traits::value_type); } }; + + template + struct Hash_functor{ + std::size_t + operator()(const H* h) + { + return std::size_t(h) / + sizeof(H); + } + }; } } From 8d4f14735bd3ba3329fae1d633d6e5fc69f080f2 Mon Sep 17 00:00:00 2001 From: Jane Tournois Date: Thu, 27 May 2021 16:03:37 +0200 Subject: [PATCH 14/49] workaround a bug of earlier versions of TBB Laurent said : "That is a bug in earlier versions of TBB. It was fixed in TBB 2019 update 5. That is a bad interaction with #5687, that made the module FindTBB.cmake from CGAL search for TBB in Config mode, first." --- Installation/cmake/modules/FindTBB.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Installation/cmake/modules/FindTBB.cmake b/Installation/cmake/modules/FindTBB.cmake index 2a0af128346..e56d524fae2 100644 --- a/Installation/cmake/modules/FindTBB.cmake +++ b/Installation/cmake/modules/FindTBB.cmake @@ -190,7 +190,7 @@ endmacro() # #start with CONFIG Mode -find_package(TBB QUIET NO_MODULE) +find_package(TBB 2019.5 QUIET NO_MODULE) if(TBB_FOUND) return() endif()#TBB_FOUND From 525271c25e166ce16b80b275b22fb6cdbcaead74 Mon Sep 17 00:00:00 2001 From: Jane Tournois Date: Fri, 28 May 2021 12:20:37 +0200 Subject: [PATCH 15/49] start by looking for TBB_ROOT (env or cmake variable) and TBB_DIR (cmake variable) and fix 2019 Update 5 version number --- Installation/cmake/modules/FindTBB.cmake | 14 +++++++++++--- 1 file changed, 11 insertions(+), 3 deletions(-) diff --git a/Installation/cmake/modules/FindTBB.cmake b/Installation/cmake/modules/FindTBB.cmake index e56d524fae2..38b4ed82e63 100644 --- a/Installation/cmake/modules/FindTBB.cmake +++ b/Installation/cmake/modules/FindTBB.cmake @@ -188,12 +188,20 @@ endmacro() #============================================================================= # Now to actually find TBB # - -#start with CONFIG Mode -find_package(TBB 2019.5 QUIET NO_MODULE) +#start with looking for TBB_DIR and TBB_ROOT +if((TBB_ROOT OR ENV_TBB_ROOT OR ENV{TBB_DIR} ) AND NOT TBB_FOUND) + find_package(TBB QUIET NO_MODULE NO_CMAKE_SYSTEM_PATH NO_SYSTEM_ENVIRONMENT_PATH) +endif() if(TBB_FOUND) return() endif()#TBB_FOUND + +#try CONFIG Mode +find_package(TBB 2019.0.11005 QUIET NO_MODULE) +if(TBB_FOUND) + return() +endif()#TBB_FOUND + # Get path, convert backslashes as ${ENV_${var}} getenv_path(TBB_ROOT) From 321e8293af4da150c5c1d0ed5c9b9cf645436d78 Mon Sep 17 00:00:00 2001 From: Jane Tournois Date: Fri, 28 May 2021 14:55:14 +0200 Subject: [PATCH 16/49] fix outdated code Co-authored-by: Laurent Rineau --- Installation/cmake/modules/FindTBB.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Installation/cmake/modules/FindTBB.cmake b/Installation/cmake/modules/FindTBB.cmake index 38b4ed82e63..8475edd450d 100644 --- a/Installation/cmake/modules/FindTBB.cmake +++ b/Installation/cmake/modules/FindTBB.cmake @@ -189,7 +189,7 @@ endmacro() # Now to actually find TBB # #start with looking for TBB_DIR and TBB_ROOT -if((TBB_ROOT OR ENV_TBB_ROOT OR ENV{TBB_DIR} ) AND NOT TBB_FOUND) +if((TBB_ROOT OR ENV{TBB_ROOT} OR ENV{TBB_DIR} ) AND NOT TBB_FOUND) find_package(TBB QUIET NO_MODULE NO_CMAKE_SYSTEM_PATH NO_SYSTEM_ENVIRONMENT_PATH) endif() if(TBB_FOUND) From 18c7e6f5131881c9e6059c387f534cfb81ccbea6 Mon Sep 17 00:00:00 2001 From: Maxime Gimeno Date: Mon, 31 May 2021 14:09:07 +0200 Subject: [PATCH 17/49] Fix scene recenter with scaling ON --- Polyhedron/demo/Polyhedron/Viewer.cpp | 11 +++++++++++ Polyhedron/demo/Polyhedron/Viewer.h | 1 + Three/include/CGAL/Three/Viewer_interface.h | 2 ++ 3 files changed, 14 insertions(+) diff --git a/Polyhedron/demo/Polyhedron/Viewer.cpp b/Polyhedron/demo/Polyhedron/Viewer.cpp index a8e60510331..4a4f6d34947 100644 --- a/Polyhedron/demo/Polyhedron/Viewer.cpp +++ b/Polyhedron/demo/Polyhedron/Viewer.cpp @@ -2119,4 +2119,15 @@ void Viewer::onTextMessageSocketReceived(QString message) #endif const QVector3D& Viewer::scaler()const { return d->scaler; } +void Viewer::showEntireScene() +{ + CGAL::QGLViewer::showEntireScene(); + CGAL::Bbox_3 bbox = CGAL::Three::Three::scene()->bbox(); + + CGAL::qglviewer::Vec vmin(((float)bbox.xmin()+offset().x)*d->scaler.x(), ((float)bbox.ymin()+offset().y)*d->scaler.y(), ((float)bbox.zmin()+offset().z)*d->scaler.z()), + vmax(((float)bbox.xmax()+offset().x)*d->scaler.x(), ((float)bbox.ymax()+offset().y)*d->scaler.y(), ((float)bbox.zmax()+offset().z)*d->scaler.z()); + camera()->setPivotPoint((vmin+vmax)*0.5); + camera()->setSceneBoundingBox(vmin, vmax); + camera()->fitBoundingBox(vmin, vmax); +} #include "Viewer.moc" diff --git a/Polyhedron/demo/Polyhedron/Viewer.h b/Polyhedron/demo/Polyhedron/Viewer.h index 00381648013..236c3d39c7b 100644 --- a/Polyhedron/demo/Polyhedron/Viewer.h +++ b/Polyhedron/demo/Polyhedron/Viewer.h @@ -139,6 +139,7 @@ public Q_SLOTS: void onTextMessageSocketReceived(QString message); #endif void scaleScene(); + void showEntireScene()Q_DECL_OVERRIDE; protected: void paintEvent(QPaintEvent *)Q_DECL_OVERRIDE; void paintGL()Q_DECL_OVERRIDE; diff --git a/Three/include/CGAL/Three/Viewer_interface.h b/Three/include/CGAL/Three/Viewer_interface.h index 17a5e9e2fb0..a8fdfcdd8bf 100644 --- a/Three/include/CGAL/Three/Viewer_interface.h +++ b/Three/include/CGAL/Three/Viewer_interface.h @@ -287,6 +287,8 @@ public: //! A vector indicating the scaling factors to apply to the scene when displaying it. //! It can be useful when a scene is very large along one of it's coordinates, making it hard to visualize it. virtual const QVector3D& scaler() const = 0; + + virtual void showEntireScene() = 0; }; // end class Viewer_interface } } From c93da15912f346c41419fa17ffa81143d272f4bd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?S=C3=A9bastien=20Loriot?= Date: Tue, 1 Jun 2021 09:40:30 +0200 Subject: [PATCH 18/49] remove remaining mentions to setup.exe --- .../doc/Documentation/Third_party.txt | 4 ++-- Documentation/doc/Documentation/windows.txt | 11 ----------- Scripts/developer_scripts/create_new_release | 19 ------------------- 3 files changed, 2 insertions(+), 32 deletions(-) diff --git a/Documentation/doc/Documentation/Third_party.txt b/Documentation/doc/Documentation/Third_party.txt index 0dccb54db4e..0c0de7c6e39 100644 --- a/Documentation/doc/Documentation/Third_party.txt +++ b/Documentation/doc/Documentation/Third_party.txt @@ -89,8 +89,8 @@ solution, and we recommend to use them. These libraries can be obtained from `https://gmplib.org/` and `https://www.mpfr.org/`. Since Visual \cpp is not properly supported by the \sc{Gmp} and \sc{Mpfr} projects, -we provide precompiled versions of \sc{Gmp} and \sc{Mpfr}, which can be downloaded with the installer -`CGAL-\cgalReleaseNumber``-Setup.exe`. +we provide precompiled versions of \sc{Gmp} and \sc{Mpfr}, which can be downloaded +from the assets of a release. \section secoptional3rdpartysoftware Optional Third Party Libraries diff --git a/Documentation/doc/Documentation/windows.txt b/Documentation/doc/Documentation/windows.txt index b11742cbf7b..aa32ee74e60 100644 --- a/Documentation/doc/Documentation/windows.txt +++ b/Documentation/doc/Documentation/windows.txt @@ -190,17 +190,6 @@ as this will help `cmake` to find Boost.
  • Add the path to the Boost `dlls` (`C:\dev\libboost_1_71_0\lib64-msvc-XX.Y`) files to the `PATH` environment variable.
  • -\subsection ssect-installer-install-cgal Installing CGAL Itself - -Download and run `CGAL-\cgalReleaseNumber``-Setup.exe` from -https://www.cgal.org/download/windows.html. -It is a self extracting executable that downloads the \cgal header files, and optionally the source code of the -examples and demos. Additionally, it can download the precompiled versions of \gmp and \mpfr. You must -specify if you want the 32 or the 64 bit versions of these two libraries. - -Setting the environment variable `CGAL_DIR` to `C:\dev\CGAL-\cgalReleaseNumber` is a good idea -to help `cmake` to find \cgal during the configuration process, detailed in the next section. - \subsection ssect-installer-compile-example Compiling an Example We assume that you have downloaded the examples with the \cgal Installer. diff --git a/Scripts/developer_scripts/create_new_release b/Scripts/developer_scripts/create_new_release index 3add47b0ca2..692ed94e7fa 100755 --- a/Scripts/developer_scripts/create_new_release +++ b/Scripts/developer_scripts/create_new_release @@ -326,22 +326,3 @@ if [ -n "$DO_PUBLIC" ]; then rm -f "$HTML_DIR/CGAL-last-public" ln -s "${release_name}-public" "$HTML_DIR/CGAL-last-public" fi - -if [ -n "$DO_PUBLIC" ]; then - if docker version > /dev/null; then - # Re-extract the full version of CGAL, with examples/, and doc_html/ - rm -rf ./${public_release_name} - tar -xf "${HTML_DIR}/${release_name}-public/${public_release_name}.tar.xz" - # Build the Windows installer - docker pull cgal/cgal-nsis-dockerfile - docker create -v `realpath ${DESTINATION}/${public_release_name}`:/mnt/cgal_release:ro,z \ - -v ${SOURCES_DIR}:/mnt/cgal_sources:ro,z \ - cgal/cgal-nsis-dockerfile - container_id=`docker ps -q -l` - docker start -a ${container_id} - docker cp ${container_id}:/nsis_release/${public_release_name}-Setup.exe "${HTML_DIR}/${release_name}-public/" - docker rm ${container_id} - else - echo "Cannot use Docker, the Windows installer will not be created" >&2 - fi -fi From e748c1408a8c4c9628853d231a87272ff3ebb1dd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mael=20Rouxel-Labb=C3=A9?= Date: Wed, 2 Jun 2021 12:50:50 +0200 Subject: [PATCH 19/49] Prepare CHANGES.md for CGAL 5.3 --- Installation/CHANGES.md | 86 ++++++++++++++++++++++++----------------- 1 file changed, 50 insertions(+), 36 deletions(-) diff --git a/Installation/CHANGES.md b/Installation/CHANGES.md index 5ae1f610222..bc99c21e759 100644 --- a/Installation/CHANGES.md +++ b/Installation/CHANGES.md @@ -6,72 +6,86 @@ Release History Release date: June 2021 -### Triangulations on the Sphere (new package) +### [Quadtrees, Octrees, and Orthtrees](https://doc.cgal.org/5.3/Manual/packages.html#PkgOrthtree) (new package) + +- This package implements a tree data structure in which each node encloses a hypercubic section + of space and each non-leave node has hypercubic children whose edge lengths are half its edge length. + Such a data structure is known as a quadtree in 2D, an octree in 3D, and is generalized + as an "orthtree" in higher dimensions. + +### [Triangulations on the Sphere](https://doc.cgal.org/5.3/Manual/packages.html#PkgTriangulationOnSphere2) (new package) - This package enables the construction and manipulation of Delaunay triangulations on the 2-sphere. Triangulations are built incrementally and can be modified by insertion or removal of vertices. Point location querying and primitives to build the dual Voronoi diagram are provided. -### General - -- Cmake minimal version is now `3.14`. - ### File Input / Output -- Point set, polygon soup, and polygon mesh file I/O functions have been harmonized and documented: - - Point set I/O functions can be found in the packages [Point_set_processing_3](https://doc.cgal.org/5.3/Manual/packages.html#PkgPolygonMeshProcessing), and [Point_set_3](https://doc.cgal.org/5.3/Manual/packages.html#PkgPointSet3). - - Polygon mesh I/O functions can be found in the package [BGL](https://doc.cgal.org/5.3/Manual/packages.html#PkgBGL). - - Polygon soup I/O can be found in the package [Stream_support](https://doc.cgal.org/5.3/Manual/packages.html#PkgStreamSupport). +- Point set, polygon soup, and polygon mesh file I/O functions have been harmonized and documented: + - Point set I/O functions can be found in the packages [Point_set_processing_3](https://doc.cgal.org/5.3/Manual/packages.html#PkgPolygonMeshProcessing), and [Point_set_3](https://doc.cgal.org/5.3/Manual/packages.html#PkgPointSet3). + - Polygon mesh I/O functions can be found in the package [BGL](https://doc.cgal.org/5.3/Manual/packages.html#PkgBGL). + - Polygon soup I/O can be found in the package [Stream_support](https://doc.cgal.org/5.3/Manual/packages.html#PkgStreamSupport). -A comprehensive list of the supported file formats is available in the Stream_support package [here](https://doc.cgal.org/5.3/Stream_support/index.html#IOstreamSupportedFormats); inversely, the following [page](https://doc.cgal.org/5.3/Stream_support/IOStreamSupportedFileFormats.html) can be used to find out which CGAL data structures can be used given a specific file format. +A comprehensive list of the supported file formats is available in the Stream_support package +[here](https://doc.cgal.org/5.3/Stream_support/index.html#IOstreamSupportedFormats); +inversely, the following [page](https://doc.cgal.org/5.3/Stream_support/IOStreamSupportedFileFormats.html) +can be used to find out which CGAL data structures can be used given a specific file format. + +### General + +- The CMake minimal version is now `3.14`. ### [2D and 3D Linear Geometry Kernel](https://doc.cgal.org/5.3/Manual/packages.html#PkgKernel23) -- Added functions to the classes `Aff_transformation_2` and `Aff_transformation_3`, which enable to determine if they internally have a specialized representation. +- Added `is_translation()`, `is_scaling()`, `is_reflection()`, and `is_rotation()` to the classes + [`Aff_transformation_2`](https://doc.cgal.org/5.3/Kernel_23/classCGAL_1_1Aff__transformation__2.html) + and [`Aff_transformation_3`](https://doc.cgal.org/5.3/Kernel_23/classCGAL_1_1Aff__transformation__3.html), + which enable determining if the transformations use a specialized representation internally. -### [Quadtrees, Octrees, and Orthtrees](https://doc.cgal.org/5.3/Manual/packages.html#PkgOrthree) (new package) - -- This package implements a tree data structure in which each node - encloses a hypercubic section of space and each non-leave node has - hypercubic children whose edge lengths are half its edge - length. Such a data structure is known as a quadtree in 2D, an - octree in 3D, and is generalized as an "orthtree" in higher - dimensions. +### [2D Regularized Boolean Set-Operations](https://doc.cgal.org/5.3/Manual/packages.html#PkgBooleanSetOperations2) +- Added documentation for the free functions [`oriented_side(const Point_2& p, ....)`](https://doc.cgal.org/5.3/Boolean_set_operations_2/group__boolean__oriented__side.html) + that accept a point and a polygon. +- Documentation has been improved across the whole package. ### [Polygon Mesh Processing](https://doc.cgal.org/5.3/Manual/packages.html#PkgPolygonMeshProcessing) -- Added the class `CGAL::Polyhedral_envelope` providing a way to quickly check if a primitive (point, segment, or triangle) +- Added the class [`CGAL::Polyhedral_envelope`](https://doc.cgal.org/5.3/Polygon_mesh_processing/structCGAL_1_1Polyhedral__envelope.html), + providing a way to quickly check if a primitive (point, segment, or triangle) is within a polyhedral envelope around a set of triangles. It is based on the work of Bolun Wang, Teseo Schneider, Yixin Hu, Marco Attene, and Daniele Panozzo. "Exact and efficient polyhedral envelope containment check." (ACM Trans. Graph., 39-4, July 2020). -- Added more functions in the visitor of the corefinement based methods to track all edge creations. +- Added more functions in the [visitor of the corefinement based methods](https://doc.cgal.org/5.3/Polygon_mesh_processing/classPMPCorefinementVisitor.html) + to track all edge creations. + +### [Surface Mesh Topology](https://doc.cgal.org/5.3/Manual/packages.html#PkgSurfaceMeshTopologySummary) +- Added the function [`CGAL::Surface_mesh_topology::Curves_on_surface_topology::is_homotopic_to_simple_cycle()`](https://doc.cgal.org/5.3/Surface_mesh_topology/classCGAL_1_1Surface__mesh__topology_1_1Curves__on__surface__topology.html#a8d7c4cba2cf2cff542f5cd93117233db), + which can be used to determine whehter a closed path on a surface mesh can be continously + transformed to a cycle without self intersection. ### [Surface Mesh Simplification](https://doc.cgal.org/5.3/Manual/packages.html#PkgSurfaceMeshSimplification) - Added a filtering mechanism so that costly tests get only applied to the next candidate for the edge collapse. -- Added the class `Polyhedral_envelope_filter` that enables to perform mesh simplification inside a polyhedral envelope of the input mesh. - -### Surface Mesh Topology -- Added the function `CGAL::Surface_mesh_topology::Curves_on_surface_topology::is_homotopic_to_simple_cycle()`, which can be used to determine whehter a closed path - on a surface mesh can be continously transformed to a cycle without self intersection. - -### 2D Regularized Boolean Set Operations -- Added documentation for the free functions `oriented_side(const Point_2& p, ....)` that accept a point and a polygon, and improved the documentation of all other functions +- Added the class [`Polyhedral_envelope_filter`](https://doc.cgal.org/5.3/Surface_mesh_simplification/classCGAL_1_1Surface__mesh__simplification_1_1Polyhedral__envelope__filter.html), + which enables to perform mesh simplification inside a polyhedral envelope of the input mesh. ### [2D Polyline Simplification](https://doc.cgal.org/5.3/Manual/packages.html#PkgPolylineSimplification2) -- When polylines have common subsequences of vertices these subsequences may be simplifified simultaneously. +- When polylines have common subsequences of vertices, these subsequences may now be simplifified simultaneously. + +### [dD Triangulations](https://doc.cgal.org/5.3/Manual/packages.html#PkgTriangulations) +- Added the function [`insert_if_in_star()`](https://doc.cgal.org/5.3/Triangulation/classCGAL_1_1Regular__triangulation.html#aa8df2d138f341939e834bcdd7cb6c71a) + to the class [`CGAL::Regular_triangulation`](https://doc.cgal.org/5.3/Triangulation/classCGAL_1_1Regular__triangulation.html), + which enables users to insert a point `p` in a regular triangulation on the condition that `p` + appears post-insertion in the star of a user-specified, existing vertex. ### [2D and 3D Alpha Shapes](https://doc.cgal.org/5.3/Manual/packages.html#PkgAlphaShapes2) -- The following deprecated classes have been removed: `Alpha_shape_euclidean_traits_2`, +- **Breaking change**: The following deprecated classes have been removed: `Alpha_shape_euclidean_traits_2`, `Weighted_alpha_shape_euclidean_traits_2`, `Alpha_shape_euclidean_traits_3`, and `Weighted_alpha_shape_euclidean_traits_3`. All CGAL kernel can be used directly as models of the concepts of the 2D and 3D Alpha Shape packages. -### [dD Triangulations](https://doc.cgal.org/5.3/Manual/packages.html#PkgTriangulations) -- Added the function `insert_if_in_star()` to the class `CGAL::Regular_triangulation`, which enables users to insert a point `p` in a regular triangulation on the condition that `p` appears post-insertion in the star of a user-specified, existing vertex. - ### [Classification](https://doc.cgal.org/5.3/Manual/packages.html#PkgClassification) -- **Breaking change**: the support for TensorFlow was dropped, the - classifier `CGAL::TensorFlow::Neural_network_classifier` was removed. +- **Breaking change**: the support for TensorFlow has been dropped; the + classifier `CGAL::TensorFlow::Neural_network_classifier` has been removed. + [Release 5.2](https://github.com/CGAL/cgal/releases/tag/v5.2) ----------- From 8994bc190ca44cd35773778b58de539ae1dd4747 Mon Sep 17 00:00:00 2001 From: Laurent Rineau Date: Wed, 2 Jun 2021 13:09:48 +0200 Subject: [PATCH 20/49] Minor improvement: change the release date, and fix spaces --- Installation/CHANGES.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/Installation/CHANGES.md b/Installation/CHANGES.md index bc99c21e759..52dcb4822f5 100644 --- a/Installation/CHANGES.md +++ b/Installation/CHANGES.md @@ -4,7 +4,7 @@ Release History [Release 5.3](https://github.com/CGAL/cgal/releases/tag/v5.3) ----------- -Release date: June 2021 +Release date: July 2021 ### [Quadtrees, Octrees, and Orthtrees](https://doc.cgal.org/5.3/Manual/packages.html#PkgOrthtree) (new package) @@ -22,9 +22,9 @@ Release date: June 2021 ### File Input / Output - Point set, polygon soup, and polygon mesh file I/O functions have been harmonized and documented: - - Point set I/O functions can be found in the packages [Point_set_processing_3](https://doc.cgal.org/5.3/Manual/packages.html#PkgPolygonMeshProcessing), and [Point_set_3](https://doc.cgal.org/5.3/Manual/packages.html#PkgPointSet3). - - Polygon mesh I/O functions can be found in the package [BGL](https://doc.cgal.org/5.3/Manual/packages.html#PkgBGL). - - Polygon soup I/O can be found in the package [Stream_support](https://doc.cgal.org/5.3/Manual/packages.html#PkgStreamSupport). +- Point set I/O functions can be found in the packages [Point_set_processing_3](https://doc.cgal.org/5.3/Manual/packages.html#PkgPolygonMeshProcessing), and [Point_set_3](https://doc.cgal.org/5.3/Manual/packages.html#PkgPointSet3). +- Polygon mesh I/O functions can be found in the package [BGL](https://doc.cgal.org/5.3/Manual/packages.html#PkgBGL). +- Polygon soup I/O can be found in the package [Stream_support](https://doc.cgal.org/5.3/Manual/packages.html#PkgStreamSupport). A comprehensive list of the supported file formats is available in the Stream_support package [here](https://doc.cgal.org/5.3/Stream_support/index.html#IOstreamSupportedFormats); From 16ba457bd27f9c26fcaca934c9f13cfa8d180b6e Mon Sep 17 00:00:00 2001 From: Mael Date: Wed, 2 Jun 2021 13:14:41 +0200 Subject: [PATCH 21/49] Fix nested list spacing --- Installation/CHANGES.md | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Installation/CHANGES.md b/Installation/CHANGES.md index 52dcb4822f5..a654e40c376 100644 --- a/Installation/CHANGES.md +++ b/Installation/CHANGES.md @@ -22,9 +22,9 @@ Release date: July 2021 ### File Input / Output - Point set, polygon soup, and polygon mesh file I/O functions have been harmonized and documented: -- Point set I/O functions can be found in the packages [Point_set_processing_3](https://doc.cgal.org/5.3/Manual/packages.html#PkgPolygonMeshProcessing), and [Point_set_3](https://doc.cgal.org/5.3/Manual/packages.html#PkgPointSet3). -- Polygon mesh I/O functions can be found in the package [BGL](https://doc.cgal.org/5.3/Manual/packages.html#PkgBGL). -- Polygon soup I/O can be found in the package [Stream_support](https://doc.cgal.org/5.3/Manual/packages.html#PkgStreamSupport). + - Point set I/O functions can be found in the packages [Point_set_processing_3](https://doc.cgal.org/5.3/Manual/packages.html#PkgPolygonMeshProcessing), and [Point_set_3](https://doc.cgal.org/5.3/Manual/packages.html#PkgPointSet3). + - Polygon mesh I/O functions can be found in the package [BGL](https://doc.cgal.org/5.3/Manual/packages.html#PkgBGL). + - Polygon soup I/O can be found in the package [Stream_support](https://doc.cgal.org/5.3/Manual/packages.html#PkgStreamSupport). A comprehensive list of the supported file formats is available in the Stream_support package [here](https://doc.cgal.org/5.3/Stream_support/index.html#IOstreamSupportedFormats); From 1a045d6d3a0d4b5a5f36a99d3a29ef23a26995af Mon Sep 17 00:00:00 2001 From: Laurent Rineau Date: Wed, 2 Jun 2021 13:13:51 +0200 Subject: [PATCH 22/49] Revert modification to CHANGES.md from e0a4dd0680c4 (PR #5677) --- Installation/CHANGES.md | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Installation/CHANGES.md b/Installation/CHANGES.md index a654e40c376..ae17489d8f1 100644 --- a/Installation/CHANGES.md +++ b/Installation/CHANGES.md @@ -619,7 +619,7 @@ Release date: November 2019 - Added a function to convert a Nef_polyhedron_3 to a polygon soup: [`CGAL::convert_nef_polyhedron_to_polygon_soup()`](https://doc.cgal.org/5.0/Nef_3/group__PkgNef3IOFunctions.html#ga28a9eb4da0cd6153f0c16f7f9eaf6665) ### [IO Streams](https://doc.cgal.org/5.0/Manual/packages.html#PkgStreamSupport) -- **Breaking change:** The API of [`CGAL::IO::Color`](https://doc.cgal.org/5.0/Stream_support/classCGAL_1_1Color.html) has been cleaned up. +- **Breaking change:** The API of [`CGAL::Color`](https://doc.cgal.org/5.0/Stream_support/classCGAL_1_1Color.html) has been cleaned up. - Added new functions to support some parts of the WKT file format: * [`CGAL::read_WKT()`](https://doc.cgal.org/5.0/Stream_support/group__PkgStreamSupportRef.html#gad2872abfe6fcf17d705d38567fdd6248) * [`CGAL::read_point_WKT()`](https://doc.cgal.org/5.0/Stream_support/group__PkgStreamSupportRef.html#gadbd2705b183e467507abd2f167446eba) From f738557f0ce6f01245dfdff0358a849427d00482 Mon Sep 17 00:00:00 2001 From: Laurent Rineau Date: Wed, 2 Jun 2021 13:51:40 +0200 Subject: [PATCH 23/49] Update minimal requirements --- Documentation/doc/Documentation/Third_party.txt | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/Documentation/doc/Documentation/Third_party.txt b/Documentation/doc/Documentation/Third_party.txt index 64d2da2e150..1ae7e8b36da 100644 --- a/Documentation/doc/Documentation/Third_party.txt +++ b/Documentation/doc/Documentation/Third_party.txt @@ -10,20 +10,20 @@ supporting C++14 or later. \cgal \cgalReleaseNumber is supported (continuously tested) for the following compilers/operating systems: | Operating System | Compiler | -| :------- | :--------------- | -| Linux | \gnu `g++` 6.3 or later\cgalFootnote{`http://gcc.gnu.org/`} | -| | `Clang` \cgalFootnote{`http://clang.llvm.org/`} compiler version 8.0.0 | -| \ms Windows | \gnu `g++` 6.3 or later\cgalFootnote{`http://gcc.gnu.org/`} | -| | \ms Visual `C++` 14.0, 15.9, 16.0 (\visualstudio 2015, 2017, and 2019)\cgalFootnote{`https://visualstudio.microsoft.com/`} | -| MacOS X | \gnu `g++` 6.3 or later\cgalFootnote{`http://gcc.gnu.org/`} | -| | Apple `Clang` compiler versions 7.0.2 and 10.0.1 | +| :---------- | :--------------- | +| Linux | \gnu `g++` 8.3 or later\cgalFootnote{`http://gcc.gnu.org/`} | +| | `Clang` \cgalFootnote{`http://clang.llvm.org/`} compiler version 11.1.0 | +| \ms Windows | \gnu `g++` 8.3 or later\cgalFootnote{`http://gcc.gnu.org/`} | +| | \ms Visual `C++` 14.0, 15.9, 16.10 (\visualstudio 2015, 2017, and 2019)\cgalFootnote{`https://visualstudio.microsoft.com/`} | +| MacOS X | \gnu `g++` 8.3 or later\cgalFootnote{`http://gcc.gnu.org/`} | +| | Apple `Clang` compiler versions 10.0.1 and 12.0.0 | Older versions of the above listed compilers might work, but no guarantee is provided. \section seccmake CMake -Version 3.12 or later +Version 3.14 or later In order to configure and build the \cgal examples, demos, or libraries, you need CMake, a cross-platform "makefile generator". From cb512bc37be998d615f555077b8de3abb0e5bb51 Mon Sep 17 00:00:00 2001 From: Laurent Rineau Date: Wed, 2 Jun 2021 14:18:06 +0200 Subject: [PATCH 24/49] updated crontab (automated commit) --- .../infrastructure/cgal.geometryfactory.com/crontab | 11 +++-------- 1 file changed, 3 insertions(+), 8 deletions(-) diff --git a/Maintenance/infrastructure/cgal.geometryfactory.com/crontab b/Maintenance/infrastructure/cgal.geometryfactory.com/crontab index 34829fff40e..36f5323b4c4 100644 --- a/Maintenance/infrastructure/cgal.geometryfactory.com/crontab +++ b/Maintenance/infrastructure/cgal.geometryfactory.com/crontab @@ -15,29 +15,24 @@ LC_CTYPE=en_US.UTF-8 # Update testsuite result pages 5,15,25,35,45,55 * * * * cd $HOME/CGAL/collect_and_public_testresults; ./treat_result_collection || echo ERROR -# Launch the test suite, every 10mn, from 21:00 to 22:50, with no -# platform. That is actually used by the Doxygen testsuite... :-\ -#*/10 21-22 * * * setarch i686 $HOME/CGAL/Scripts/developer_scripts/autotest_cgal_with_cmake - # Create internal release # The script also updates the manual tools. # "master" alone -0 21 * * Sun cd $HOME/CGAL/create_internal_release && /usr/bin/time scl enable rh-git29 -- $HOME/bin/create_release $HOME/CGAL/branches/master.git --public --do-it || echo ERROR +0 21 * * Sun,Wed cd $HOME/CGAL/create_internal_release && /usr/bin/time scl enable rh-git29 -- $HOME/bin/create_release $HOME/CGAL/branches/master.git --public --do-it --beta 1|| echo ERROR # "integration" -0 21 * * Mon,Tue,Wed,Thu cd $HOME/CGAL/create_internal_release && /usr/bin/time scl enable rh-git29 -- $HOME/bin/create_release $HOME/CGAL/branches/integration.git $HOME/CGAL/branches/empty-dir --public --do-it || echo ERROR +0 21 * * Mon,Tue,Thu cd $HOME/CGAL/create_internal_release && /usr/bin/time scl enable rh-git29 -- $HOME/bin/create_release $HOME/CGAL/branches/integration.git $HOME/CGAL/branches/empty-dir --do-it || echo ERROR # from branch 5.2 0 21 * * Sat cd $HOME/CGAL/create_internal_release-5.2-branch && /usr/bin/time scl enable rh-git29 -- $HOME/bin/create_release $HOME/CGAL/branches/CGAL-5.2-branch.git --public --do-it || echo ERROR # from branch 5.1 0 21 * * Fri cd $HOME/CGAL/create_internal_release-5.1-branch && /usr/bin/time scl enable rh-git29 -- $HOME/bin/create_release $HOME/CGAL/branches/CGAL-5.1-branch.git --public --do-it || echo ERROR +## Older stuff # from branch 5.0 #0 21 * * Fri cd $HOME/CGAL/create_internal_release-5.0-branch && /usr/bin/time scl enable rh-git29 -- $HOME/bin/create_release $HOME/CGAL/branches/CGAL-5.0-branch.git --public --do-it || echo ERROR # from branch 4.14 #0 21 * * Fri cd $HOME/CGAL/create_internal_release-4.14-branch && /usr/bin/time scl enable rh-git29 -- $HOME/bin/create_release $HOME/CGAL/branches/CGAL-4.14-branch.git --public --do-it || echo ERROR - -## Older stuff # from branch 4.13 #0 21 * * Fri cd $HOME/CGAL/create_internal_release-4.13-branch && /usr/bin/time scl enable rh-git29 -- $HOME/bin/create_release $HOME/CGAL/branches/CGAL-4.13-branch.git --public --do-it || echo ERROR # from branch 4.12 From ac5d63d479f0945b61454f9374fef22a30486736 Mon Sep 17 00:00:00 2001 From: Laurent Rineau Date: Wed, 2 Jun 2021 14:44:57 +0200 Subject: [PATCH 25/49] Prepare CGAL-5.3-beta1 --- .../doc/resources/1.8.13/menu_version.js | 7 +- .../doc/resources/1.8.14/menu_version.js | 7 +- .../doc/resources/1.8.20/menu_version.js | 7 +- .../doc/resources/1.8.4/menu_version.js | 7 +- Installation/CHANGES.md | 3 +- Installation/include/CGAL/version.h | 4 +- .../announcement/announcement-beta.md | 89 ++++++++++- .../announcement/mailing-beta.eml | 141 +++++++++++++++++- 8 files changed, 240 insertions(+), 25 deletions(-) diff --git a/Documentation/doc/resources/1.8.13/menu_version.js b/Documentation/doc/resources/1.8.13/menu_version.js index ff345f63b50..6226aa58422 100644 --- a/Documentation/doc/resources/1.8.13/menu_version.js +++ b/Documentation/doc/resources/1.8.13/menu_version.js @@ -3,12 +3,13 @@ var url_re = /(cgal\.geometryfactory\.com\/CGAL\/doc\/|doc\.cgal\.org\/)(master|latest|(\d\.\d+|\d\.\d+\.\d+)(-beta\d)?)\//; var url_local = /.*\/doc_output\//; - var current_version_local = '5.2' + var current_version_local = '5.3-beta1' var all_versions = [ 'master', - '5.2', + '5.3-beta1', 'latest', - '5.1.2', + '5.2.2', + '5.1.5', '5.0.4', '4.14.3', '4.13.2', diff --git a/Documentation/doc/resources/1.8.14/menu_version.js b/Documentation/doc/resources/1.8.14/menu_version.js index ff345f63b50..6226aa58422 100644 --- a/Documentation/doc/resources/1.8.14/menu_version.js +++ b/Documentation/doc/resources/1.8.14/menu_version.js @@ -3,12 +3,13 @@ var url_re = /(cgal\.geometryfactory\.com\/CGAL\/doc\/|doc\.cgal\.org\/)(master|latest|(\d\.\d+|\d\.\d+\.\d+)(-beta\d)?)\//; var url_local = /.*\/doc_output\//; - var current_version_local = '5.2' + var current_version_local = '5.3-beta1' var all_versions = [ 'master', - '5.2', + '5.3-beta1', 'latest', - '5.1.2', + '5.2.2', + '5.1.5', '5.0.4', '4.14.3', '4.13.2', diff --git a/Documentation/doc/resources/1.8.20/menu_version.js b/Documentation/doc/resources/1.8.20/menu_version.js index ff345f63b50..6226aa58422 100644 --- a/Documentation/doc/resources/1.8.20/menu_version.js +++ b/Documentation/doc/resources/1.8.20/menu_version.js @@ -3,12 +3,13 @@ var url_re = /(cgal\.geometryfactory\.com\/CGAL\/doc\/|doc\.cgal\.org\/)(master|latest|(\d\.\d+|\d\.\d+\.\d+)(-beta\d)?)\//; var url_local = /.*\/doc_output\//; - var current_version_local = '5.2' + var current_version_local = '5.3-beta1' var all_versions = [ 'master', - '5.2', + '5.3-beta1', 'latest', - '5.1.2', + '5.2.2', + '5.1.5', '5.0.4', '4.14.3', '4.13.2', diff --git a/Documentation/doc/resources/1.8.4/menu_version.js b/Documentation/doc/resources/1.8.4/menu_version.js index ff345f63b50..6226aa58422 100644 --- a/Documentation/doc/resources/1.8.4/menu_version.js +++ b/Documentation/doc/resources/1.8.4/menu_version.js @@ -3,12 +3,13 @@ var url_re = /(cgal\.geometryfactory\.com\/CGAL\/doc\/|doc\.cgal\.org\/)(master|latest|(\d\.\d+|\d\.\d+\.\d+)(-beta\d)?)\//; var url_local = /.*\/doc_output\//; - var current_version_local = '5.2' + var current_version_local = '5.3-beta1' var all_versions = [ 'master', - '5.2', + '5.3-beta1', 'latest', - '5.1.2', + '5.2.2', + '5.1.5', '5.0.4', '4.14.3', '4.13.2', diff --git a/Installation/CHANGES.md b/Installation/CHANGES.md index ae17489d8f1..216493431f7 100644 --- a/Installation/CHANGES.md +++ b/Installation/CHANGES.md @@ -31,9 +31,10 @@ A comprehensive list of the supported file formats is available in the Stream_su inversely, the following [page](https://doc.cgal.org/5.3/Stream_support/IOStreamSupportedFileFormats.html) can be used to find out which CGAL data structures can be used given a specific file format. -### General +### [Requirements](https://doc.cgal.org/5.3/Manual/thirdparty.html) - The CMake minimal version is now `3.14`. +- The GNU compiler g++ versions 6 and 7 are no longer tested. Only version 8.3 or later are supported ### [2D and 3D Linear Geometry Kernel](https://doc.cgal.org/5.3/Manual/packages.html#PkgKernel23) diff --git a/Installation/include/CGAL/version.h b/Installation/include/CGAL/version.h index 7982e27a439..36972322483 100644 --- a/Installation/include/CGAL/version.h +++ b/Installation/include/CGAL/version.h @@ -17,10 +17,10 @@ #define CGAL_VERSION_H #ifndef SWIG -#define CGAL_VERSION 5.3-dev +#define CGAL_VERSION 5.3-beta1 #define CGAL_GIT_HASH abcdef #endif -#define CGAL_VERSION_NR 1050300000 +#define CGAL_VERSION_NR 1050300910 #define CGAL_SVN_REVISION 99999 #define CGAL_RELEASE_DATE 20210630 diff --git a/Maintenance/public_release/announcement/announcement-beta.md b/Maintenance/public_release/announcement/announcement-beta.md index 9208f4169c9..ad13992963f 100644 --- a/Maintenance/public_release/announcement/announcement-beta.md +++ b/Maintenance/public_release/announcement/announcement-beta.md @@ -1,5 +1,88 @@ -The CGAL Open Source Project is pleased to announce the release 5.2 Beta 1 of CGAL, the Computational Geometry Algorithms Library. +%The CGAL Open Source Project is pleased to announce the release 5.3 Beta 1 of CGAL, the Computational Geometry Algorithms Library. -CGAL version 5.2 Beta 1 is a public testing release. It should provide a solid ground to report bugs that need to be tackled before the release of the final version of CGAL 5.2 in December 2020. +CGAL version 5.3 Beta 1 is a public testing release. It should provide a solid ground to report bugs that need to be tackled before the release of the final version of CGAL 5.3 in July 2021. + + +Besides fixes and general enhancement to existing packages, the following has changed since CGAL 5.2: + +### [Quadtrees, Octrees, and Orthtrees](https://doc.cgal.org/5.3/Manual/packages.html#PkgOrthtree) (new package) + +- This package implements a tree data structure in which each node encloses a hypercubic section + of space and each non-leave node has hypercubic children whose edge lengths are half its edge length. + Such a data structure is known as a quadtree in 2D, an octree in 3D, and is generalized + as an "orthtree" in higher dimensions. + +### [Triangulations on the Sphere](https://doc.cgal.org/5.3/Manual/packages.html#PkgTriangulationOnSphere2) (new package) + +- This package enables the construction and manipulation of Delaunay triangulations on the 2-sphere. + Triangulations are built incrementally and can be modified by insertion or removal of vertices. + Point location querying and primitives to build the dual Voronoi diagram are provided. + +### File Input / Output + +- Point set, polygon soup, and polygon mesh file I/O functions have been harmonized and documented: + - Point set I/O functions can be found in the packages [Point_set_processing_3](https://doc.cgal.org/5.3/Manual/packages.html#PkgPolygonMeshProcessing), and [Point_set_3](https://doc.cgal.org/5.3/Manual/packages.html#PkgPointSet3). + - Polygon mesh I/O functions can be found in the package [BGL](https://doc.cgal.org/5.3/Manual/packages.html#PkgBGL). + - Polygon soup I/O can be found in the package [Stream_support](https://doc.cgal.org/5.3/Manual/packages.html#PkgStreamSupport). + +A comprehensive list of the supported file formats is available in the Stream_support package +[here](https://doc.cgal.org/5.3/Stream_support/index.html#IOstreamSupportedFormats); +inversely, the following [page](https://doc.cgal.org/5.3/Stream_support/IOStreamSupportedFileFormats.html) +can be used to find out which CGAL data structures can be used given a specific file format. + +### [Requirements](https://doc.cgal.org/5.3/Manual/thirdparty.html) + +- The CMake minimal version is now `3.14`. +- The GNU compiler g++ versions 6 and 7 are no longer tested. Only version 8.3 or later are supported + +### [2D and 3D Linear Geometry Kernel](https://doc.cgal.org/5.3/Manual/packages.html#PkgKernel23) + +- Added `is_translation()`, `is_scaling()`, `is_reflection()`, and `is_rotation()` to the classes + [`Aff_transformation_2`](https://doc.cgal.org/5.3/Kernel_23/classCGAL_1_1Aff__transformation__2.html) + and [`Aff_transformation_3`](https://doc.cgal.org/5.3/Kernel_23/classCGAL_1_1Aff__transformation__3.html), + which enable determining if the transformations use a specialized representation internally. + +### [2D Regularized Boolean Set-Operations](https://doc.cgal.org/5.3/Manual/packages.html#PkgBooleanSetOperations2) +- Added documentation for the free functions [`oriented_side(const Point_2& p, ....)`](https://doc.cgal.org/5.3/Boolean_set_operations_2/group__boolean__oriented__side.html) + that accept a point and a polygon. +- Documentation has been improved across the whole package. + +### [Polygon Mesh Processing](https://doc.cgal.org/5.3/Manual/packages.html#PkgPolygonMeshProcessing) + +- Added the class [`CGAL::Polyhedral_envelope`](https://doc.cgal.org/5.3/Polygon_mesh_processing/structCGAL_1_1Polyhedral__envelope.html), + providing a way to quickly check if a primitive (point, segment, or triangle) + is within a polyhedral envelope around a set of triangles. It is based on the work of + Bolun Wang, Teseo Schneider, Yixin Hu, Marco Attene, and Daniele Panozzo. + "Exact and efficient polyhedral envelope containment check." (ACM Trans. Graph., 39-4, July 2020). +- Added more functions in the [visitor of the corefinement based methods](https://doc.cgal.org/5.3/Polygon_mesh_processing/classPMPCorefinementVisitor.html) + to track all edge creations. + +### [Surface Mesh Topology](https://doc.cgal.org/5.3/Manual/packages.html#PkgSurfaceMeshTopologySummary) +- Added the function [`CGAL::Surface_mesh_topology::Curves_on_surface_topology::is_homotopic_to_simple_cycle()`](https://doc.cgal.org/5.3/Surface_mesh_topology/classCGAL_1_1Surface__mesh__topology_1_1Curves__on__surface__topology.html#a8d7c4cba2cf2cff542f5cd93117233db), + which can be used to determine whehter a closed path on a surface mesh can be continously + transformed to a cycle without self intersection. + +### [Surface Mesh Simplification](https://doc.cgal.org/5.3/Manual/packages.html#PkgSurfaceMeshSimplification) +- Added a filtering mechanism so that costly tests get only applied to the next candidate for the edge collapse. +- Added the class [`Polyhedral_envelope_filter`](https://doc.cgal.org/5.3/Surface_mesh_simplification/classCGAL_1_1Surface__mesh__simplification_1_1Polyhedral__envelope__filter.html), + which enables to perform mesh simplification inside a polyhedral envelope of the input mesh. + +### [2D Polyline Simplification](https://doc.cgal.org/5.3/Manual/packages.html#PkgPolylineSimplification2) +- When polylines have common subsequences of vertices, these subsequences may now be simplifified simultaneously. + +### [dD Triangulations](https://doc.cgal.org/5.3/Manual/packages.html#PkgTriangulations) +- Added the function [`insert_if_in_star()`](https://doc.cgal.org/5.3/Triangulation/classCGAL_1_1Regular__triangulation.html#aa8df2d138f341939e834bcdd7cb6c71a) + to the class [`CGAL::Regular_triangulation`](https://doc.cgal.org/5.3/Triangulation/classCGAL_1_1Regular__triangulation.html), + which enables users to insert a point `p` in a regular triangulation on the condition that `p` + appears post-insertion in the star of a user-specified, existing vertex. + +### [2D and 3D Alpha Shapes](https://doc.cgal.org/5.3/Manual/packages.html#PkgAlphaShapes2) +- **Breaking change**: The following deprecated classes have been removed: `Alpha_shape_euclidean_traits_2`, + `Weighted_alpha_shape_euclidean_traits_2`, `Alpha_shape_euclidean_traits_3`, and + `Weighted_alpha_shape_euclidean_traits_3`. All CGAL kernel can be used directly as models + of the concepts of the 2D and 3D Alpha Shape packages. + +### [Classification](https://doc.cgal.org/5.3/Manual/packages.html#PkgClassification) +- **Breaking change**: the support for TensorFlow has been dropped; the + classifier `CGAL::TensorFlow::Neural_network_classifier` has been removed. -Fixes, improvements, and various small features have been added since CGAL 5.1. See https://www.cgal.org/2020/11/18/cgal52-beta1/ for a complete list of changes. diff --git a/Maintenance/public_release/announcement/mailing-beta.eml b/Maintenance/public_release/announcement/mailing-beta.eml index 7ef0bcdded4..637203ea579 100644 --- a/Maintenance/public_release/announcement/mailing-beta.eml +++ b/Maintenance/public_release/announcement/mailing-beta.eml @@ -1,19 +1,146 @@ -Subject: CGAL 5.2 Beta 1 Released, Computational Geometry Algorithms Library +Subject: CGAL 5.3 Beta 1 Released, Computational Geometry Algorithms Library Content-Type: text/plain; charset="utf-8" Body: -The CGAL Open Source Project is pleased to announce the release 5.2 Beta 1 +The CGAL Open Source Project is pleased to announce the release 5.3 Beta 1 of CGAL, the Computational Geometry Algorithms Library. -CGAL version 5.2 Beta 1 is a public testing release. It should provide a +CGAL version 5.3 Beta 1 is a public testing release. It should provide a solid ground to report bugs that need to be tackled before the release -of the final version of CGAL 5.2 in December 2020. +of the final version of CGAL 5.3 in July 2021. -Fixes, improvements, and various small features have been added since -CGAL 5.1. See https://www.cgal.org/2020/11/18/cgal52-beta1/ for a -complete list of changes. +Besides fixes and general enhancement to existing packages, the following +has changed since CGAL 5.2: + +Quadtrees, Octrees, and Orthtrees (new package) + +- This package implements a tree data structure in which each node + encloses a hypercubic section of space and each non-leave node has + hypercubic children whose edge lengths are half its edge length. + Such a data structure is known as a quadtree in 2D, an octree in 3D, + and is generalized as an “orthtree” in higher dimensions. + + https://www.cgal.org/2021/04/27/Orthtree/ + + https://doc.cgal.org/5.3/Manual/packages.html#PkgOrthtree + + +Triangulations on the Sphere (new package) + +- This package enables the construction and manipulation of Delaunay + triangulations on the 2-sphere. Triangulations are built + incrementally and can be modified by insertion or removal of + vertices. Point location querying and primitives to build the dual + Voronoi diagram are provided. + + https://doc.cgal.org/5.3/Manual/packages.html#PkgTriangulationOnSphere2 + + +File Input / Output + +- Point set, polygon soup, and polygon mesh file I/O functions have + been harmonized and documented: + - Point set I/O functions can be found in the packages + Point_set_processing_3, and Point_set_3. + - Polygon mesh I/O functions can be found in the package BGL. + - Polygon soup I/O can be found in the package Stream_support. + +A comprehensive list of the supported file formats is available in the +Stream_support package: + + https://doc.cgal.org/5.3/Stream_support/index.html#IOstreamSupportedFormats + +Inversely, the following page can be used to find out which CGAL data +structures can be used given a specific file format. + + https://doc.cgal.org/5.3/Stream_support/IOStreamSupportedFileFormats.html + + +Requirements + +- The CMake minimal version is now 3.14. + +- The GNU compiler g++ versions 6 and 7 are no longer tested. Only + version 8.3 or later are supported + + +2D and 3D Linear Geometry Kernel + +- Added is_translation(), is_scaling(), is_reflection(), and + is_rotation() to the classes Aff_transformation_2 and + Aff_transformation_3, which enable determining if the + transformations use a specialized representation internally. + + +2D Regularized Boolean Set-Operations + +- Added documentation for the free functions + oriented_side(const Point_2& p, ....) that accept a point and a + polygon. +- Documentation has been improved across the whole package. + + +Polygon Mesh Processing + +- Added the class CGAL::Polyhedral_envelope, providing a way to + quickly check if a primitive (point, segment, or triangle) is within + a polyhedral envelope around a set of triangles. It is based on the + work of Bolun Wang, Teseo Schneider, Yixin Hu, Marco Attene, and + Daniele Panozzo. “Exact and efficient polyhedral envelope + containment check.” (ACM Trans. Graph., 39-4, July 2020). +- Added more functions in the visitor of the corefinement based + methods to track all edge creations. + + +Surface Mesh Topology + +- Added the function + CGAL::Surface_mesh_topology::Curves_on_surface_topology::is_homotopic_to_simple_cycle(), + which can be used to determine whehter a closed path on a surface + mesh can be continously transformed to a cycle without self + intersection. + + +Surface Mesh Simplification + +- Added a filtering mechanism so that costly tests get only applied to + the next candidate for the edge collapse. +- Added the class Polyhedral_envelope_filter, which enables to perform + mesh simplification inside a polyhedral envelope of the input mesh. + + +2D Polyline Simplification + +- When polylines have common subsequences of vertices, these + subsequences may now be simplifified simultaneously. + + +dD Triangulations + +- Added the function insert_if_in_star() to the class + CGAL::Regular_triangulation, which enables users to insert a point p + in a regular triangulation on the condition that p appears + post-insertion in the star of a user-specified, existing vertex. + + +2D and 3D Alpha Shapes + +- Breaking change: The following deprecated classes have been removed: + Alpha_shape_euclidean_traits_2, + Weighted_alpha_shape_euclidean_traits_2, + Alpha_shape_euclidean_traits_3, and + Weighted_alpha_shape_euclidean_traits_3. All CGAL kernel can be used + directly as models of the concepts of the 2D and 3D Alpha Shape + packages. + + +Classification + +- Breaking change: the support for TensorFlow has been dropped; the + classifier CGAL::TensorFlow::Neural_network_classifier has been + removed. The CGAL project is a collaborative effort to develop a robust, From 3cbadfb89b89e6f2b2bbcd60201b7d6d5d80a9a7 Mon Sep 17 00:00:00 2001 From: Laurent Rineau Date: Wed, 2 Jun 2021 16:02:44 +0200 Subject: [PATCH 26/49] This branch now targets 5.1.5. --- Installation/include/CGAL/version.h | 4 ++-- Installation/lib/cmake/CGAL/CGALConfigVersion.cmake | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/Installation/include/CGAL/version.h b/Installation/include/CGAL/version.h index ce0eb66b83d..9c517173737 100644 --- a/Installation/include/CGAL/version.h +++ b/Installation/include/CGAL/version.h @@ -17,10 +17,10 @@ #define CGAL_VERSION_H #ifndef SWIG -#define CGAL_VERSION 5.1.4 +#define CGAL_VERSION 5.1.5 #define CGAL_GIT_HASH abcdef #endif -#define CGAL_VERSION_NR 1050141000 +#define CGAL_VERSION_NR 1050151000 #define CGAL_SVN_REVISION 99999 #define CGAL_RELEASE_DATE 20200908 diff --git a/Installation/lib/cmake/CGAL/CGALConfigVersion.cmake b/Installation/lib/cmake/CGAL/CGALConfigVersion.cmake index 27ba24fb747..92ece9e97a7 100644 --- a/Installation/lib/cmake/CGAL/CGALConfigVersion.cmake +++ b/Installation/lib/cmake/CGAL/CGALConfigVersion.cmake @@ -1,8 +1,8 @@ set(CGAL_MAJOR_VERSION 5) set(CGAL_MINOR_VERSION 1) -set(CGAL_BUGFIX_VERSION 4) +set(CGAL_BUGFIX_VERSION 5) include(${CMAKE_CURRENT_LIST_DIR}/CGALConfigBuildVersion.cmake) -set(CGAL_VERSION_PUBLIC_RELEASE_VERSION "5.1.4") +set(CGAL_VERSION_PUBLIC_RELEASE_VERSION "5.1.5") set(CGAL_VERSION_PUBLIC_RELEASE_NAME "CGAL-${CGAL_VERSION_PUBLIC_RELEASE_VERSION}") if (CGAL_BUGFIX_VERSION AND CGAL_BUGFIX_VERSION GREATER 0) From 8b51a65ea0e3e7f38dd853dd6582541978761c01 Mon Sep 17 00:00:00 2001 From: Laurent Rineau Date: Wed, 2 Jun 2021 16:19:18 +0200 Subject: [PATCH 27/49] This branch now targets 5.2.3. --- Installation/include/CGAL/version.h | 4 ++-- Installation/lib/cmake/CGAL/CGALConfigVersion.cmake | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/Installation/include/CGAL/version.h b/Installation/include/CGAL/version.h index 87f479368f1..99574cb1a14 100644 --- a/Installation/include/CGAL/version.h +++ b/Installation/include/CGAL/version.h @@ -17,10 +17,10 @@ #define CGAL_VERSION_H #ifndef SWIG -#define CGAL_VERSION 5.2.2 +#define CGAL_VERSION 5.2.3 #define CGAL_GIT_HASH abcdef #endif -#define CGAL_VERSION_NR 1050221000 +#define CGAL_VERSION_NR 1050231000 #define CGAL_SVN_REVISION 99999 #define CGAL_RELEASE_DATE 20201221 diff --git a/Installation/lib/cmake/CGAL/CGALConfigVersion.cmake b/Installation/lib/cmake/CGAL/CGALConfigVersion.cmake index ff1fd754f40..6d03ebeccbf 100644 --- a/Installation/lib/cmake/CGAL/CGALConfigVersion.cmake +++ b/Installation/lib/cmake/CGAL/CGALConfigVersion.cmake @@ -1,8 +1,8 @@ set(CGAL_MAJOR_VERSION 5) set(CGAL_MINOR_VERSION 2) -set(CGAL_BUGFIX_VERSION 2) +set(CGAL_BUGFIX_VERSION 3) include(${CMAKE_CURRENT_LIST_DIR}/CGALConfigBuildVersion.cmake) -set(CGAL_VERSION_PUBLIC_RELEASE_VERSION "5.2.2") +set(CGAL_VERSION_PUBLIC_RELEASE_VERSION "5.2.3") set(CGAL_VERSION_PUBLIC_RELEASE_NAME "CGAL-${CGAL_VERSION_PUBLIC_RELEASE_VERSION}") if (CGAL_BUGFIX_VERSION AND CGAL_BUGFIX_VERSION GREATER 0) From c2b7cc8f50d0cf785fe5234c4677a5bb349bd476 Mon Sep 17 00:00:00 2001 From: Maxime Gimeno Date: Thu, 3 Jun 2021 12:45:38 +0200 Subject: [PATCH 28/49] Fix doc --- Point_set_3/include/CGAL/Point_set_3/IO.h | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Point_set_3/include/CGAL/Point_set_3/IO.h b/Point_set_3/include/CGAL/Point_set_3/IO.h index b0da6a026d8..ba6c41ceaa7 100644 --- a/Point_set_3/include/CGAL/Point_set_3/IO.h +++ b/Point_set_3/include/CGAL/Point_set_3/IO.h @@ -151,10 +151,10 @@ bool read_point_set(const std::string& fname, CGAL::Point_set_3& { return read_point_set(fname, ps, parameters::all_default()); } +/// \endcond } // namespace IO -/// \endcond //////////////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////////////// From 2a54687e77875b7bdad86737bf84867f62dbb1cf Mon Sep 17 00:00:00 2001 From: albert-github Date: Fri, 4 Jun 2021 13:52:14 +0200 Subject: [PATCH 29/49] Correction of hyperlinks The link checker gave a number of redirects and incorrect links. - the redirects have been solved ass far as possible - the incorrect links have been checked and corrected where possible, others have been reported through issues; --- Classification/doc/Classification/Classification.txt | 2 +- .../Developer_manual/Chapter_code_format.txt | 2 +- Documentation/doc/Documentation/Third_party.txt | 4 ++-- .../doc/Documentation/Tutorials/Tutorial_hello_world.txt | 2 +- Documentation/doc/Documentation/windows.txt | 4 ++-- Documentation/doc/biblio/cgal_manual.bib | 4 ++-- Documentation/doc/biblio/geom.bib | 2 +- Installation/doc_html/index.html | 2 +- Installation/include/CGAL/config.h | 2 +- Mesh_3/doc/Mesh_3/Mesh_3.txt | 4 ++-- Nef_3/include/CGAL/Nef_3/SNC_indexed_items.h | 2 +- .../doc/Point_set_processing_3/Point_set_processing_3.txt | 8 ++++---- .../include/CGAL/bilateral_smooth_point_set.h | 4 ++-- .../include/CGAL/wlop_simplify_and_regularize_point_set.h | 4 ++-- .../include/CGAL/Polygon_mesh_processing/distance.h | 4 ++-- .../Polygonal_surface_reconstruction.txt | 2 +- STL_Extension/doc/STL_Extension/CGAL/algorithm.h | 4 ++-- STL_Extension/doc/STL_Extension/STL_Extension.txt | 2 +- .../doc/Solver_interface/Solver_interface.txt | 2 +- .../include/CGAL/Mixed_integer_program_traits.h | 2 +- .../doc/Spatial_searching/Spatial_searching.txt | 2 +- .../File_formats/Supported_file_formats.txt | 2 +- Surface_mesh/doc/Surface_mesh/Surface_mesh.txt | 2 +- Triangulation_3/doc/Triangulation_3/Triangulation_3.txt | 4 ++-- 24 files changed, 36 insertions(+), 36 deletions(-) diff --git a/Classification/doc/Classification/Classification.txt b/Classification/doc/Classification/Classification.txt index 4ec5a7e73c8..2c4c11eee49 100644 --- a/Classification/doc/Classification/Classification.txt +++ b/Classification/doc/Classification/Classification.txt @@ -227,7 +227,7 @@ cases where many labels are used (more than five). An [example](\ref Classification_example_ethz_random_forest) shows how to use this classifier. For more details about the algorithm, please refer -to README provided in the [ETH Zurich's code archive](https://www.ethz.ch/content/dam/ethz/special-interest/baug/igp/photogrammetry-remote-sensing-dam/documents/sourcecode-and-datasets/Random%20Forest/rforest.zip). +to README provided in the [ETH Zurich's code archive](https://ethz.ch/content/dam/ethz/special-interest/baug/igp/photogrammetry-remote-sensing-dam/documents/sourcecode-and-datasets/Random%20Forest/rforest.zip). \subsubsection Classification_ETHZ_random_forest_deprecated Deprecated IO diff --git a/Documentation/doc/Documentation/Developer_manual/Chapter_code_format.txt b/Documentation/doc/Documentation/Developer_manual/Chapter_code_format.txt index c1897827ea5..291e5094472 100644 --- a/Documentation/doc/Documentation/Developer_manual/Chapter_code_format.txt +++ b/Documentation/doc/Documentation/Developer_manual/Chapter_code_format.txt @@ -322,7 +322,7 @@ employing the authors) of this work, a pointer to the file containing its text i
  • \$URL\$ : canonical path to the file on github,
  • \$Id\$ : the release version the file is from. -
  • Then [SPDX license identifier](https://spdx.org/). For GPL-3+ it should be `SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial`, +
  • Then [SPDX license identifier](https://spdx.dev/). For GPL-3+ it should be `SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial`, and `SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial` for LGPL-3+.
  • Then the authors of (non-negligible parts of) this file are listed, with optional affiliation or e-mail address. diff --git a/Documentation/doc/Documentation/Third_party.txt b/Documentation/doc/Documentation/Third_party.txt index 1ae7e8b36da..585abee5360 100644 --- a/Documentation/doc/Documentation/Third_party.txt +++ b/Documentation/doc/Documentation/Third_party.txt @@ -204,7 +204,7 @@ length integers, and for vectors, matrices, and polynomials over the integers and over finite fields. The optional library \ntl is used by \cgal to speed up operations of the Polynomial package, such as GCDs. It is recommended to install \ntl with support from \gmp. -\ntl can be downloaded from `https://www.shoup.net/ntl/`. +\ntl can be downloaded from `https://libntl.org`. \subsection thirdpartyESBTL ESBTL @@ -225,7 +225,7 @@ code. In order to use \tbb in \cgal programs, the executables should be linked with the CMake imported target `CGAL::TBB_support` provided in `CGAL_TBB_support.cmake`. -The \tbb web site is `https://www.threadingbuildingblocks.org`. +The \tbb web site is `https://github.com/oneapi-src/oneTBB`. \subsection thirdpartyLASlib LASlib diff --git a/Documentation/doc/Documentation/Tutorials/Tutorial_hello_world.txt b/Documentation/doc/Documentation/Tutorials/Tutorial_hello_world.txt index 383f83ad3f2..b40aaa1f509 100644 --- a/Documentation/doc/Documentation/Tutorials/Tutorial_hello_world.txt +++ b/Documentation/doc/Documentation/Tutorials/Tutorial_hello_world.txt @@ -308,7 +308,7 @@ there must be a global function `halfedges(const G&)`, etc. An example for a concept with a required traits class is `InputIterator`. For a model of an `InputIterator` a specialization of the class - `std::iterator_traits` + `std::iterator_traits` must exist (or the generic template must be applicable). \section intro_further Further Reading diff --git a/Documentation/doc/Documentation/windows.txt b/Documentation/doc/Documentation/windows.txt index a59f376e751..cd27cebaf67 100644 --- a/Documentation/doc/Documentation/windows.txt +++ b/Documentation/doc/Documentation/windows.txt @@ -245,8 +245,8 @@ A typical `Qt` installation would consist of the following steps:
    • Download and install the Qt library for open source development package for your Visual Studio version at -https://www.qt.io/download/ -(here is the direct link to the offline installers).
    • +https://www.qt.io/download +(here is the direct link to the offline installers).
    • Add the environment variable `QTDIR` pointing to the place you installed Qt, e.g., `C:\dev\Qt\Qt5.13.1`, as this will help `cmake` to find Qt.
    • Add the bin directory of Qt, e.g. add `C:\dev\Qt\Qt5.13.1\msvcXXXX_YY\bin` to `PATH`, where `XXXX_YY` is something like `vc2017_64`. diff --git a/Documentation/doc/biblio/cgal_manual.bib b/Documentation/doc/biblio/cgal_manual.bib index 8c8addd0084..1277ea0485b 100644 --- a/Documentation/doc/biblio/cgal_manual.bib +++ b/Documentation/doc/biblio/cgal_manual.bib @@ -2142,7 +2142,7 @@ ABSTRACT = {We present the first complete, exact and efficient C++ implementatio ,month = dec ,year = {2000} ,issn = {0946-011X} - ,url = {https://www.mpi-sb.mpg.de/~mehlhorn/ftp/InfiFrames.ps} + ,url = {https://people.mpi-inf.mpg.de/~mehlhorn/ftp/InfiFrames.ps} } @InProceedings{cgal:sp-mrbee-05 @@ -2373,7 +2373,7 @@ location = {Salt Lake City, Utah, USA} howpublished = {Stefan Walk (ETH Zurich, Department of Civil, Environmental and Geomatic Engineering, Institute of Geodesy and Photogrammetry)}, - url = {http://www.prs.igp.ethz.ch/research/Source_code_and_datasets.html}, + url = {https://prs.igp.ethz.ch/research/Source_code_and_datasets.html}, year = 2014 } diff --git a/Documentation/doc/biblio/geom.bib b/Documentation/doc/biblio/geom.bib index ca708451d71..5ba83931427 100644 --- a/Documentation/doc/biblio/geom.bib +++ b/Documentation/doc/biblio/geom.bib @@ -152039,7 +152039,7 @@ pages = {179--189} Booktitle = {53rd Annual IEEE Symposium on Foundations of Computer Science (FOCS)}, Year = {2012}, Pages = {440-449}, - Url = {http://arxiv.org/abs/1110.4573} + Url = {https://arxiv.org/abs/1110.4573} } @article{cvl-ew-12, diff --git a/Installation/doc_html/index.html b/Installation/doc_html/index.html index 1c7c7682d48..24cd53e0c23 100644 --- a/Installation/doc_html/index.html +++ b/Installation/doc_html/index.html @@ -37,7 +37,7 @@ You can access the CGAL Online Manual from the
    • CGAL Homepage
    • FAQ
    • Boost Documentation -
    • STL Reference +
    • STL Reference
    diff --git a/Installation/include/CGAL/config.h b/Installation/include/CGAL/config.h index 037042875aa..ccca6b86cb6 100644 --- a/Installation/include/CGAL/config.h +++ b/Installation/include/CGAL/config.h @@ -493,7 +493,7 @@ using std::max; // Macros to detect features of clang. We define them for the other // compilers. // See http://clang.llvm.org/docs/LanguageExtensions.html -// See also http://en.cppreference.com/w/cpp/experimental/feature_test +// See also https://en.cppreference.com/w/cpp/experimental/feature_test #ifndef __has_feature #define __has_feature(x) 0 // Compatibility with non-clang compilers. #endif diff --git a/Mesh_3/doc/Mesh_3/Mesh_3.txt b/Mesh_3/doc/Mesh_3/Mesh_3.txt index 97d84bfb778..e7c8bbd0ce4 100644 --- a/Mesh_3/doc/Mesh_3/Mesh_3.txt +++ b/Mesh_3/doc/Mesh_3/Mesh_3.txt @@ -542,9 +542,9 @@ cell base classes, the `MeshVertexBase_3` and `MeshCellBase_3` concepts impose additional requirements. Parallel algorithms require the executable to be linked against the -Intel TBB library. +Intel TBB library. To control the number of threads used, the user may use the tbb::task_scheduler_init class. -See the TBB documentation +See the TBB documentation for more details. \section Mesh_3_section_io Input/Output diff --git a/Nef_3/include/CGAL/Nef_3/SNC_indexed_items.h b/Nef_3/include/CGAL/Nef_3/SNC_indexed_items.h index 80fb7487800..6ac6ec81ebe 100644 --- a/Nef_3/include/CGAL/Nef_3/SNC_indexed_items.h +++ b/Nef_3/include/CGAL/Nef_3/SNC_indexed_items.h @@ -37,7 +37,7 @@ class Index_generator { static int get_unique_index() { // initialized with 0 - // http://en.cppreference.com/w/cpp/language/zero_initialization + // https://en.cppreference.com/w/cpp/language/zero_initialization #ifdef CGAL_NO_ATOMIC static int unique; #else diff --git a/Point_set_processing_3/doc/Point_set_processing_3/Point_set_processing_3.txt b/Point_set_processing_3/doc/Point_set_processing_3/Point_set_processing_3.txt index e77c0c844b3..80efdab78a2 100644 --- a/Point_set_processing_3/doc/Point_set_processing_3/Point_set_processing_3.txt +++ b/Point_set_processing_3/doc/Point_set_processing_3/Point_set_processing_3.txt @@ -742,9 +742,9 @@ Comparison between different sizes of neighbor radius. \subsubsection Point_set_processing_3WLOP_parallel_performance Parallel Performance A parallel version of WLOP is provided and requires the executable to be linked against the -Intel TBB library. +Intel TBB library. To control the number of threads used, the user may use the tbb::task_scheduler_init class. -See the TBB documentation +See the TBB documentation for more details. We provide below a speed-up chart generated using the parallel version of the WLOP algorithm. The machine used is a PC running Windows 7 64-bits with a 4-core i7-4700HQ@2.40GHz CPU with 8GB of RAM. \cgalFigureBegin{Point_set_processing_3figWLOP_parallel_performance, parallel_WLOP_performance.jpg} @@ -787,9 +787,9 @@ Comparison for two smoothing methods: Left: Input, 250K points, normal-color map Performance: A parallel version of bilateral smoothing is provided and requires the executable to be linked against the -Intel TBB library. +Intel TBB library. The number of threads used is controlled through the tbb::task_scheduler_init class. -See the TBB documentation for more details. We provide below a speed-up chart generated using the parallel version of the bilateral smoothing algorithm. The machine used is a PC running Windows 7 64-bits with a 4-core i7-4700HQ@2.40GHz CPU with 8GB of RAM. +See the TBB documentation for more details. We provide below a speed-up chart generated using the parallel version of the bilateral smoothing algorithm. The machine used is a PC running Windows 7 64-bits with a 4-core i7-4700HQ@2.40GHz CPU with 8GB of RAM. \cgalFigureBegin{Point_set_processing_3Bilateral_smoothing_parallel_performance, parallel_bilateral_smooth_point_set_performance.jpg} Parallel bilateral smoothing speed-up, compared to the sequential version of the algorithm. diff --git a/Point_set_processing_3/include/CGAL/bilateral_smooth_point_set.h b/Point_set_processing_3/include/CGAL/bilateral_smooth_point_set.h index 65bd536cf71..ee20c62e1b5 100644 --- a/Point_set_processing_3/include/CGAL/bilateral_smooth_point_set.h +++ b/Point_set_processing_3/include/CGAL/bilateral_smooth_point_set.h @@ -178,9 +178,9 @@ compute_max_spacing( For more details, please see section 4 in \cgalCite{ear-2013}. A parallel version of this function is provided and requires the executable to be - linked against the Intel TBB library. + linked against the Intel TBB library. To control the number of threads used, the user may use the tbb::task_scheduler_init class. - See the TBB documentation + See the TBB documentation for more details. \pre Normals must be unit vectors diff --git a/Point_set_processing_3/include/CGAL/wlop_simplify_and_regularize_point_set.h b/Point_set_processing_3/include/CGAL/wlop_simplify_and_regularize_point_set.h index 5f2ae9bd610..c791eaff5ff 100644 --- a/Point_set_processing_3/include/CGAL/wlop_simplify_and_regularize_point_set.h +++ b/Point_set_processing_3/include/CGAL/wlop_simplify_and_regularize_point_set.h @@ -341,9 +341,9 @@ compute_density_weight_for_sample_point( For more details, please refer to \cgalCite{wlop-2009}. A parallel version of WLOP is provided and requires the executable to be - linked against the Intel TBB library. + linked against the Intel TBB library. To control the number of threads used, the user may use the tbb::task_scheduler_init class. - See the TBB documentation + See the TBB documentation for more details. \tparam ConcurrencyTag enables sequential versus parallel algorithm. Possible values are `Sequential_tag`, diff --git a/Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/distance.h b/Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/distance.h index b945dccf702..72b39bff17b 100644 --- a/Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/distance.h +++ b/Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/distance.h @@ -1064,9 +1064,9 @@ double approximate_Hausdorff_distance( * `tm1` and `np1` as parameter. * * A parallel version is provided and requires the executable to be - * linked against the Intel TBB library. + * linked against the Intel TBB library. * To control the number of threads used, the user may use the `tbb::task_scheduler_init` class. - * See the TBB documentation + * See the TBB documentation * for more details. * * @tparam Concurrency_tag enables sequential versus parallel algorithm. diff --git a/Polygonal_surface_reconstruction/doc/Polygonal_surface_reconstruction/Polygonal_surface_reconstruction.txt b/Polygonal_surface_reconstruction/doc/Polygonal_surface_reconstruction/Polygonal_surface_reconstruction.txt index 2d18f970980..935c58f4813 100644 --- a/Polygonal_surface_reconstruction/doc/Polygonal_surface_reconstruction/Polygonal_surface_reconstruction.txt +++ b/Polygonal_surface_reconstruction/doc/Polygonal_surface_reconstruction/Polygonal_surface_reconstruction.txt @@ -209,7 +209,7 @@ The current implementation incorporates two open source solvers: \ref thirdparty with reasonably simple structure. In case you are reconstructing more complex objects, you may need to consider more efficient open source solvers (e.g., CBC) or even commercial solvers (e.g., -Gurobi, CPLEX). +Gurobi, CPLEX). The following table gives a rough idea of the performance of some solvers. | Model | Problem Size
    variables/constraints | Gurobi | CBC | SCIP | GLPK | LP_SOLVE | diff --git a/STL_Extension/doc/STL_Extension/CGAL/algorithm.h b/STL_Extension/doc/STL_Extension/CGAL/algorithm.h index a60a5c0a233..7536f029c71 100644 --- a/STL_Extension/doc/STL_Extension/CGAL/algorithm.h +++ b/STL_Extension/doc/STL_Extension/CGAL/algorithm.h @@ -135,7 +135,7 @@ namespace cpp98 { /*! \ingroup STLAlgos -Replacement for `std::random_shuffle()` +Replacement for `std::random_shuffle()` which was deprecated in C++14, and removed by C++17. In the \stl it was replaced by `std::shuffle()`. @@ -149,7 +149,7 @@ random_shuffle(RandomAccessIterator begin, RandomAccessIterator end, /*! \ingroup STLAlgos -Replacement for `std::random_shuffle()` +Replacement for `std::random_shuffle()` which was deprecated in C++14, and removed by C++17. In the \stl it was replaced by `std::shuffle()`. diff --git a/STL_Extension/doc/STL_Extension/STL_Extension.txt b/STL_Extension/doc/STL_Extension/STL_Extension.txt index 0886b18cf7b..584f04e4bec 100644 --- a/STL_Extension/doc/STL_Extension/STL_Extension.txt +++ b/STL_Extension/doc/STL_Extension/STL_Extension.txt @@ -98,7 +98,7 @@ The class `Concurrent_compact_container` provides the same features, but enables concurrency-safe `insert` and `erase` operations. Other operations are not concurrency-safe. It requires the program to be linked against -the Intel TBB library. +the Intel TBB library. \section stl_multi Multiset with Extended Functionality diff --git a/Solver_interface/doc/Solver_interface/Solver_interface.txt b/Solver_interface/doc/Solver_interface/Solver_interface.txt index e5fded45ffa..bd6df2cb457 100644 --- a/Solver_interface/doc/Solver_interface/Solver_interface.txt +++ b/Solver_interface/doc/Solver_interface/Solver_interface.txt @@ -24,7 +24,7 @@ we provide models using \ref thirdpartySCIP and \ref thirdpartyGLPK libraries. It is also possible to derive new models from other high performance libraries, e.g., CBC , - Gurobi . + Gurobi . diff --git a/Solver_interface/include/CGAL/Mixed_integer_program_traits.h b/Solver_interface/include/CGAL/Mixed_integer_program_traits.h index df11eea5377..aedbb0909a1 100644 --- a/Solver_interface/include/CGAL/Mixed_integer_program_traits.h +++ b/Solver_interface/include/CGAL/Mixed_integer_program_traits.h @@ -274,7 +274,7 @@ namespace CGAL { /// `CGAL::SCIP_mixed_integer_program_traits`. Alternatively, use /// `CGAL::Mixed_integer_program_traits` as a base to derive a new model /// (using e.g., CBC , - /// Gurobi for better + /// Gurobi for better /// performance). /// /// \cond SKIP_IN_MANUAL diff --git a/Spatial_searching/doc/Spatial_searching/Spatial_searching.txt b/Spatial_searching/doc/Spatial_searching/Spatial_searching.txt index 493cce46833..6d2cc43b974 100644 --- a/Spatial_searching/doc/Spatial_searching/Spatial_searching.txt +++ b/Spatial_searching/doc/Spatial_searching/Spatial_searching.txt @@ -414,7 +414,7 @@ branches of each internal node can be computed in parallel, by calling `Kd_tree::build()`. On a quad-core processor, the parallel construction is experimentally 2 to 3 times faster than the sequential version, depending on the point cloud. The parallel version -requires the executable to be linked against the Intel TBB library. +requires the executable to be linked against the Intel TBB library. One query on the `kd` tree is purely sequential, but several queries can be done in parallel. diff --git a/Stream_support/doc/Stream_support/File_formats/Supported_file_formats.txt b/Stream_support/doc/Stream_support/File_formats/Supported_file_formats.txt index a29b2c915be..ecd026afb2f 100644 --- a/Stream_support/doc/Stream_support/File_formats/Supported_file_formats.txt +++ b/Stream_support/doc/Stream_support/File_formats/Supported_file_formats.txt @@ -370,7 +370,7 @@ The `3MF`, using the file extension `.3mf`, is an open source file format create It is an XML-based format that aims to enhance the \ref IOStreamSTL by adding means to include extra information such as colors. -A precise specification of the format is available at 3mf.io; +A precise specification of the format is available at 3mf.io; note that only versions `1.x` are currently supported in \cgal. diff --git a/Surface_mesh/doc/Surface_mesh/Surface_mesh.txt b/Surface_mesh/doc/Surface_mesh/Surface_mesh.txt index 4d68362a968..10d82394835 100644 --- a/Surface_mesh/doc/Surface_mesh/Surface_mesh.txt +++ b/Surface_mesh/doc/Surface_mesh/Surface_mesh.txt @@ -405,7 +405,7 @@ and when iterating over elements they will not be enumerated in the insertion or \section sectionSurfaceMeshHistory Implementation History This package is derived from an early version of Daniel Sieger and Mario Botsch package -%Surface_mesh +%Surface_mesh \cgalCite{sieger2011design}, which is inspired from the design of OpenMesh and the \cgal package \ref PkgPolyhedron. diff --git a/Triangulation_3/doc/Triangulation_3/Triangulation_3.txt b/Triangulation_3/doc/Triangulation_3/Triangulation_3.txt index ace8ee84afc..fd1aceed477 100644 --- a/Triangulation_3/doc/Triangulation_3/Triangulation_3.txt +++ b/Triangulation_3/doc/Triangulation_3/Triangulation_3.txt @@ -411,9 +411,9 @@ range of points will be performed in parallel, and the individual insert/remove operations will be optionally thread-safe. Parallel algorithms require the program to be linked against -the Intel TBB library. +the Intel TBB library. To control the number of threads used, the user may use the tbb::task_scheduler_init class. -See the TBB documentation +See the TBB documentation for more details. \section Triangulation3secexamples Examples From 7bfa33f9e45020f65480e37ef93f4a5fe01a2394 Mon Sep 17 00:00:00 2001 From: albert-github Date: Fri, 4 Jun 2021 14:01:47 +0200 Subject: [PATCH 30/49] Incorrect documentation for enum in Three package Though not yet released ... The documentation after the enum values signal, according to the text, documentation after the enum value but the used documentation starter `//!` is incorrect, should be `//!<`. (see results on page doc_output/Three/group__PkgThreeRef.html) --- Three/include/CGAL/Three/Scene_interface.h | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/Three/include/CGAL/Three/Scene_interface.h b/Three/include/CGAL/Three/Scene_interface.h index c4b0a619396..2290fb6642a 100644 --- a/Three/include/CGAL/Three/Scene_interface.h +++ b/Three/include/CGAL/Three/Scene_interface.h @@ -26,15 +26,15 @@ */ enum RenderingMode { - Points = 0, //! Renders only points without lighting. - PointsPlusNormals, //!Renders points and normals. - Wireframe, //!Renders only edges. - Flat, //!Renders only faces, with a lighting per face. - FlatPlusEdges, //!Renders flat faces and edges. - Gouraud, //!Renders only faces, with a lighting per vertex. - GouraudPlusEdges, //!Renders faces with a lighting per vertex, and edges. - ShadedPoints, //!Renders only points with lighting. - NumberOfRenderingMode //!Number of values in this enum. + Points = 0, //!< Renders only points without lighting. + PointsPlusNormals, //!< Renders points and normals. + Wireframe, //!< Renders only edges. + Flat, //!< Renders only faces, with a lighting per face. + FlatPlusEdges, //!< Renders flat faces and edges. + Gouraud, //!< Renders only faces, with a lighting per vertex. + GouraudPlusEdges, //!< Renders faces with a lighting per vertex, and edges. + ShadedPoints, //!< Renders only points with lighting. + NumberOfRenderingMode //!< Number of values in this enum. }; From 526aec740ccd95428fc239d61ff82d6807794ab8 Mon Sep 17 00:00:00 2001 From: Andreas Fabri Date: Fri, 4 Jun 2021 14:05:00 +0200 Subject: [PATCH 31/49] Fix #5755 --- Surface_mesh/doc/Surface_mesh/Surface_mesh.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Surface_mesh/doc/Surface_mesh/Surface_mesh.txt b/Surface_mesh/doc/Surface_mesh/Surface_mesh.txt index 4d68362a968..8ade22f2a31 100644 --- a/Surface_mesh/doc/Surface_mesh/Surface_mesh.txt +++ b/Surface_mesh/doc/Surface_mesh/Surface_mesh.txt @@ -405,7 +405,7 @@ and when iterating over elements they will not be enumerated in the insertion or \section sectionSurfaceMeshHistory Implementation History This package is derived from an early version of Daniel Sieger and Mario Botsch package -%Surface_mesh +Surface_mesh \cgalCite{sieger2011design}, which is inspired from the design of OpenMesh and the \cgal package \ref PkgPolyhedron. From 2891c22fc7f64f680ac7e144407afe49f6425cb9 Mon Sep 17 00:00:00 2001 From: Laurent Rineau Date: Fri, 4 Jun 2021 14:18:04 +0200 Subject: [PATCH 32/49] updated crontab (automated commit) --- Maintenance/infrastructure/cgal.geometryfactory.com/crontab | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Maintenance/infrastructure/cgal.geometryfactory.com/crontab b/Maintenance/infrastructure/cgal.geometryfactory.com/crontab index 36f5323b4c4..0d5910d0142 100644 --- a/Maintenance/infrastructure/cgal.geometryfactory.com/crontab +++ b/Maintenance/infrastructure/cgal.geometryfactory.com/crontab @@ -19,9 +19,9 @@ LC_CTYPE=en_US.UTF-8 # The script also updates the manual tools. # "master" alone -0 21 * * Sun,Wed cd $HOME/CGAL/create_internal_release && /usr/bin/time scl enable rh-git29 -- $HOME/bin/create_release $HOME/CGAL/branches/master.git --public --do-it --beta 1|| echo ERROR +0 21 * * Sun cd $HOME/CGAL/create_internal_release && /usr/bin/time scl enable rh-git29 -- $HOME/bin/create_release $HOME/CGAL/branches/master.git --public --do-it --beta 2 || echo ERROR # "integration" -0 21 * * Mon,Tue,Thu cd $HOME/CGAL/create_internal_release && /usr/bin/time scl enable rh-git29 -- $HOME/bin/create_release $HOME/CGAL/branches/integration.git $HOME/CGAL/branches/empty-dir --do-it || echo ERROR +0 21 * * Mon,Tue,Wed,Thu cd $HOME/CGAL/create_internal_release && /usr/bin/time scl enable rh-git29 -- $HOME/bin/create_release $HOME/CGAL/branches/integration.git $HOME/CGAL/branches/empty-dir --do-it || echo ERROR # from branch 5.2 0 21 * * Sat cd $HOME/CGAL/create_internal_release-5.2-branch && /usr/bin/time scl enable rh-git29 -- $HOME/bin/create_release $HOME/CGAL/branches/CGAL-5.2-branch.git --public --do-it || echo ERROR # from branch 5.1 From 7edaaf183c604ebd1b79ca1fe010170095cb59fa Mon Sep 17 00:00:00 2001 From: albert-github Date: Fri, 4 Jun 2021 14:44:09 +0200 Subject: [PATCH 33/49] Incorrect links in Triangulation_on_sphere_2 For the Triangulation_on_sphere_2 packages we get the incorrect links: ``` Checking ./doc_output/Triangulation_on_sphere_2/index.html ============================================== Processing file:///.../doc_output/Triangulation_on_sphere_2/index.html List of broken links and other issues: file:///...doc_output/Triangulation_on_sphere_2/index.html Lines: 179, 191 Code: 200 (no message) To do: Some of the links to this resource point to broken URI fragments (such as index.html#fragment). The following fragments need to be fixed: Section_2D_Triangulations_Regular Line: 191 Section_2D_Triangulations_Definitions Line: 179 ``` This has been corrected. --- .../Triangulation_on_sphere_2/Triangulation_on_sphere_2.txt | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Triangulation_on_sphere_2/doc/Triangulation_on_sphere_2/Triangulation_on_sphere_2.txt b/Triangulation_on_sphere_2/doc/Triangulation_on_sphere_2/Triangulation_on_sphere_2.txt index 6d7a15944f1..56dcd30e101 100644 --- a/Triangulation_on_sphere_2/doc/Triangulation_on_sphere_2/Triangulation_on_sphere_2.txt +++ b/Triangulation_on_sphere_2/doc/Triangulation_on_sphere_2/Triangulation_on_sphere_2.txt @@ -32,7 +32,7 @@ Given a set \f$ \mathcal{P}\f$ of points on \f$ \mathbb{S(c, r)}\f$, a two-d of \f$ \mathcal{P}\f$ can be described as a two-dimensional simplicial complex that is pure, connected, and without singularity whose vertices are exactly the points in \f$ \mathcal{P}\f$ (see the complete definition in the package -\link Section_2D_Triangulations_Definitions 2D Triangulations\endlink). +\ref Section_2D_Triangulations_Definitions "2D Triangulations"). In \f$ \mathbb{R}^2\f$, a Delaunay triangulation is a two-dimension triangulation that satisfies the empty circle property (also called Delaunay property): @@ -65,7 +65,7 @@ as an orientation test does not stand if points do not lie in a convex position. This gap between the theoretical and the practical settings was addressed by Caroli et al. \cgalCite{cgal:ccplr-redtp-10} : the solution is to use a regular triangulation, which is a generalization of the Delaunay triangulation to sets of weighted points -(see \link Section_2D_Triangulations_Regular 2D Regular Triangulations\endlink for more information). +(see \ref Section_2D_Triangulations_Regular "2D Regular Triangulations" for more information). A weighted point \f$(p,w)\f$ of \f$ \mathbb{R}^2\f$ can naturally be seen as as a circle with center \f$ p\f$ and radius \f$ r\f$ such that \f$ r^2 = w\f$ and similarly to Delaunay triangulations and the definition of regular triangulations in \f$ \mathbb{R}^2\f$ can be naturally extended to circles on \f$ \mathbb{S}\f$. From b69f6432397b27ba4266f0f91146f7e32554b490 Mon Sep 17 00:00:00 2001 From: Jane Tournois Date: Fri, 4 Jun 2021 15:58:26 +0200 Subject: [PATCH 34/49] add missing param in initializer list --- Mesh_3/include/CGAL/Mesh_3/polylines_to_protect.h | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/Mesh_3/include/CGAL/Mesh_3/polylines_to_protect.h b/Mesh_3/include/CGAL/Mesh_3/polylines_to_protect.h index ac40ac15e57..30df428163f 100644 --- a/Mesh_3/include/CGAL/Mesh_3/polylines_to_protect.h +++ b/Mesh_3/include/CGAL/Mesh_3/polylines_to_protect.h @@ -525,10 +525,10 @@ polylines_to_protect Image_word_type> Enriched_pixel; array, 2> square = - {{ {{ { pix00, Point_3(), Domain_type(), 0, false }, - { pix01, Point_3(), Domain_type(), 0, false } }}, - {{ { pix10, Point_3(), Domain_type(), 0, false }, - { pix11, Point_3(), Domain_type(), 0, false } }} }}; + {{ {{ { pix00, Point_3(), Domain_type(), 0, false, false }, + { pix01, Point_3(), Domain_type(), 0, false, false } }}, + {{ { pix10, Point_3(), Domain_type(), 0, false, false }, + { pix11, Point_3(), Domain_type(), 0, false, false } }} }}; std::map pixel_values_set; for(int ii = 0; ii < 2; ++ii) { From 84a15ad4f9e8692f17c526f4b679117ddcabfb69 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mael=20Rouxel-Labb=C3=A9?= Date: Sat, 5 Jun 2021 14:53:46 +0200 Subject: [PATCH 35/49] Align Triangulation_2 User/Reference Manual with other Tr packages (use plural) --- Triangulation_2/doc/Triangulation_2/Doxyfile.in | 2 +- Triangulation_2/doc/Triangulation_2/PackageDescription.txt | 4 ++-- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Triangulation_2/doc/Triangulation_2/Doxyfile.in b/Triangulation_2/doc/Triangulation_2/Doxyfile.in index 8c3cab1da0a..661050f4f79 100644 --- a/Triangulation_2/doc/Triangulation_2/Doxyfile.in +++ b/Triangulation_2/doc/Triangulation_2/Doxyfile.in @@ -1,3 +1,3 @@ @INCLUDE = ${CGAL_DOC_PACKAGE_DEFAULTS} -PROJECT_NAME = "CGAL ${CGAL_DOC_VERSION} - 2D Triangulation" +PROJECT_NAME = "CGAL ${CGAL_DOC_VERSION} - 2D Triangulations" diff --git a/Triangulation_2/doc/Triangulation_2/PackageDescription.txt b/Triangulation_2/doc/Triangulation_2/PackageDescription.txt index 333b051af09..c15ba1ed8ed 100644 --- a/Triangulation_2/doc/Triangulation_2/PackageDescription.txt +++ b/Triangulation_2/doc/Triangulation_2/PackageDescription.txt @@ -1,4 +1,4 @@ -/// \defgroup PkgTriangulation2Ref 2D Triangulation Reference +/// \defgroup PkgTriangulation2Ref 2D Triangulations Reference /// \defgroup PkgTriangulation2Concepts Concepts /// \ingroup PkgTriangulation2Ref @@ -24,7 +24,7 @@ /*! \addtogroup PkgTriangulation2Ref \todo check generated documentation -\cgalPkgDescriptionBegin{2D Triangulation,PkgTriangulation2} +\cgalPkgDescriptionBegin{2D Triangulations,PkgTriangulation2} \cgalPkgPicture{cdt2d-small.png} \cgalPkgSummaryBegin \cgalPkgAuthor{Mariette Yvinec} From d112a2aab4f49306bfa6cc31c71d512be25a4cfa Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mael=20Rouxel-Labb=C3=A9?= Date: Sat, 5 Jun 2021 14:56:19 +0200 Subject: [PATCH 36/49] Fix link to ToS2 demo --- .../doc/Triangulation_on_sphere_2/PackageDescription.txt | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Triangulation_on_sphere_2/doc/Triangulation_on_sphere_2/PackageDescription.txt b/Triangulation_on_sphere_2/doc/Triangulation_on_sphere_2/PackageDescription.txt index 3d8c68d1f03..5fd9ff30df1 100644 --- a/Triangulation_on_sphere_2/doc/Triangulation_on_sphere_2/PackageDescription.txt +++ b/Triangulation_on_sphere_2/doc/Triangulation_on_sphere_2/PackageDescription.txt @@ -1,4 +1,4 @@ -/// \defgroup PkgTriangulationOnSphere2Ref 2D Triangulation on Sphere Reference +/// \defgroup PkgTriangulationOnSphere2Ref 2D Triangulation on the Sphere Reference /// \defgroup PkgTriangulationOnSphere2Concepts Concepts /// \ingroup PkgTriangulationOnSphere2Ref @@ -12,7 +12,7 @@ /*! \addtogroup PkgTriangulationOnSphere2Ref -\cgalPkgDescriptionBegin{2D Triangulations on Sphere,PkgTriangulationOnSphere2} +\cgalPkgDescriptionBegin{2D Triangulations on the Sphere,PkgTriangulationOnSphere2} \cgalPkgPicture{triangulation_on_sphere.png} \cgalPkgSummaryBegin \cgalPkgAuthors{Mael Rouxel-Labbé, Monique Teillaud, and Claudia Werner} @@ -26,7 +26,7 @@ \cgalPkgDependsOn{\ref PkgTDS2} \cgalPkgBib{cgal:rtw-tos2} \cgalPkgLicense{\ref licensesGPL "GPL"} -\cgalPkgDemo{Delaunay Triangulation, delaunay_Triangulation_on_sphere_2.zip} +\cgalPkgDemo{2D Triangulations on the sphere,triangulation_on_sphere_2.zip} \cgalPkgShortInfoEnd \cgalPkgDescriptionEnd From 4c8b5e063a3c184ac74d0bfa58356f0124980d26 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mael=20Rouxel-Labb=C3=A9?= Date: Sat, 5 Jun 2021 17:23:50 +0200 Subject: [PATCH 37/49] Fix broken ref link --- Interpolation/doc/Interpolation/Interpolation.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Interpolation/doc/Interpolation/Interpolation.txt b/Interpolation/doc/Interpolation/Interpolation.txt index c23341de3eb..b4b95c2f979 100644 --- a/Interpolation/doc/Interpolation/Interpolation.txt +++ b/Interpolation/doc/Interpolation/Interpolation.txt @@ -94,7 +94,7 @@ diagrams, also known as power diagrams, are obtained by considering wei (the weight being a scalar) and considering a weighted distance, the power distance, defined between two weighted points \f$ (p, \omega_p) \f$ and \f$ (q, \omega_q) \f$ by \f$ \Pi( (p, \omega_p), (q, \omega_q) ) = pq^2 - \omega_p - \omega_q \f$. -See \link Subsection_2D_Triangulations_Regular_Description this section \endlink +See \ref Subsection_2D_Triangulations_Regular_Description "this section" of the package \ref PkgTriangulation2 for an in-depth description of power diagrams. \cgalFigureBegin{figrn_coords, rn_coords.svg} From b7aa446802701a234b729d2865985fbedc0a6dee Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Mael=20Rouxel-Labb=C3=A9?= Date: Sat, 5 Jun 2021 17:31:26 +0200 Subject: [PATCH 38/49] Remove dead ftp link --- Documentation/doc/biblio/cgal_manual.bib | 1 - 1 file changed, 1 deletion(-) diff --git a/Documentation/doc/biblio/cgal_manual.bib b/Documentation/doc/biblio/cgal_manual.bib index 8c8addd0084..044a5e75eff 100644 --- a/Documentation/doc/biblio/cgal_manual.bib +++ b/Documentation/doc/biblio/cgal_manual.bib @@ -1339,7 +1339,6 @@ Teillaud" ,number = {ECG-TR-122201-01} ,address = {Sophia-Antipolis} ,month = may - ,url = {ftp://ftp-sop.inria.fr/prisme/ECG/Reports/Month12/ECG-TR-122201-01.ps.gz} } @inproceedings{ cgal:ke-rctac-03 From b6a34b2bc511e5f9d8d8fdab67b016dd3de754f3 Mon Sep 17 00:00:00 2001 From: Adrien Lefieux Date: Tue, 8 Jun 2021 16:53:13 +0200 Subject: [PATCH 39/49] Set CMake imported OpenMesh library as INTERFACE --- Installation/cmake/modules/FindOpenMesh.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Installation/cmake/modules/FindOpenMesh.cmake b/Installation/cmake/modules/FindOpenMesh.cmake index 823ede4de3c..86b6eaebc9e 100644 --- a/Installation/cmake/modules/FindOpenMesh.cmake +++ b/Installation/cmake/modules/FindOpenMesh.cmake @@ -55,7 +55,7 @@ if(OpenMesh_FOUND AND NOT TARGET OpenMesh::OpenMesh) add_library(OpenMesh::OpenMesh UNKNOWN IMPORTED) if(TARGET OpenMeshCore) - target_link_libraries(OpenMesh::OpenMesh PUBLIC OpenMeshCore) + target_link_libraries(OpenMesh::OpenMesh INTERFACE OpenMeshCore) return() endif() From 9723f5e68e0434731c412f65bc188d4a5f903250 Mon Sep 17 00:00:00 2001 From: Adrien Lefieux Date: Tue, 8 Jun 2021 17:38:27 +0200 Subject: [PATCH 40/49] Add inline vtk_image_sharing_same_data_pointer Fix possible duplicate symbol. --- CGAL_ImageIO/include/CGAL/Image_3_vtk_interface.h | 1 + 1 file changed, 1 insertion(+) diff --git a/CGAL_ImageIO/include/CGAL/Image_3_vtk_interface.h b/CGAL_ImageIO/include/CGAL/Image_3_vtk_interface.h index 1ef3d90f7ec..ba2ebc15405 100644 --- a/CGAL_ImageIO/include/CGAL/Image_3_vtk_interface.h +++ b/CGAL_ImageIO/include/CGAL/Image_3_vtk_interface.h @@ -84,6 +84,7 @@ struct VTK_type_generator { typedef vtkUnsignedIntArray ArrayType; }; +inline ::vtkImageData* vtk_image_sharing_same_data_pointer(Image_3& image) { vtkImageData* vtk_image = vtkImageData::New(); From 458ecf1ac12155beb6a3f8a3ff752d55c7d4d63f Mon Sep 17 00:00:00 2001 From: Giles Bathgate Date: Tue, 8 Jun 2021 17:32:12 +0100 Subject: [PATCH 41/49] Remove CGAL_NEF3_FACET_WITH_BOX code --- Nef_3/include/CGAL/Nef_3/Binary_operation.h | 6 - Nef_3/include/CGAL/Nef_3/K3_tree.h | 37 --- Nef_3/include/CGAL/Nef_3/Nef_box.h | 12 - Nef_3/include/CGAL/Nef_3/SNC_intersection.h | 128 --------- Nef_3/include/CGAL/Nef_3/SNC_k3_tree_traits.h | 28 -- Nef_3/include/CGAL/Nef_3/SNC_point_locator.h | 98 ------- Nef_3/include/CGAL/Nef_3/SNC_structure.h | 253 ------------------ Nef_3/include/CGAL/Nef_polyhedron_3.h | 23 -- 8 files changed, 585 deletions(-) diff --git a/Nef_3/include/CGAL/Nef_3/Binary_operation.h b/Nef_3/include/CGAL/Nef_3/Binary_operation.h index 83994a2f156..03c8a2f490e 100644 --- a/Nef_3/include/CGAL/Nef_3/Binary_operation.h +++ b/Nef_3/include/CGAL/Nef_3/Binary_operation.h @@ -313,12 +313,6 @@ class Binary_operation : public CGAL::SNC_decorator { // CGAL_NEF_SETDTHREAD(19*43*131); CGAL_NEF_TRACEN("=> binary operation"); -#ifdef CGAL_NEF3_FACET_WITH_BOX - SNC_constructor C1(snc1); - C1.create_box(); - SNC_constructor C2(snc2); - C2.create_box(); -#endif CGAL_NEF_TRACEN("\nnumber of vertices (so far...) = " << this->sncp()->number_of_vertices()); diff --git a/Nef_3/include/CGAL/Nef_3/K3_tree.h b/Nef_3/include/CGAL/Nef_3/K3_tree.h index 6a3a62da2cf..b9f9b7e16ea 100644 --- a/Nef_3/include/CGAL/Nef_3/K3_tree.h +++ b/Nef_3/include/CGAL/Nef_3/K3_tree.h @@ -258,9 +258,6 @@ typedef typename Traits::Halffacet_handle Halffacet_handle; #ifdef CGAL_NEF3_TRIANGULATE_FACETS typedef typename Traits::Halffacet_triangle_handle Halffacet_triangle_handle; #endif -#ifdef CGAL_NEF3_FACET_WITH_BOX -typedef typename Traits::Partial_facet Partial_facet; -#endif typedef typename Traits::Object_handle Object_handle; typedef std::vector Object_list; typedef typename Object_list::const_iterator Object_const_iterator; @@ -898,9 +895,6 @@ typename Object_list::difference_type n_vertices = std::distance(objects.begin() Halffacet_handle f; #ifdef CGAL_NEF3_TRIANGULATE_FACETS Halffacet_triangle_handle t; -#endif -#ifdef CGAL_NEF3_FACET_WITH_BOX - Partial_facet pf; #endif if( CGAL::assign( v, *o)) { if( !v_mark[v]) { @@ -928,11 +922,6 @@ typename Object_list::difference_type n_vertices = std::distance(objects.begin() t_mark[tr] = true; } } -#endif -#ifdef CGAL_NEF3_FACET_WITH_BOX - else if(CGAL::assign(pf, *o)) { - CGAL_error_msg( "wrong type"); - } #endif else CGAL_error_msg( "wrong handle"); @@ -1023,10 +1012,6 @@ std::string dump_object_list( const Object_list& O, int level = 0) { #ifdef CGAL_NEF3_TRIANGULATE_FACETS typename Object_list::size_type t_count = 0; Halffacet_triangle_handle t; -#endif -#ifdef CGAL_NEF3_FACET_WITH_BOX - typename Object_list::size_type p_count = 0; - Partial_facet pf; #endif for( o = O.begin(); o != O.end(); ++o) { if( CGAL::assign( v, *o)) { @@ -1047,12 +1032,6 @@ std::string dump_object_list( const Object_list& O, int level = 0) { if( level) os << "triangle" << std::endl; ++t_count; } -#endif -#ifdef CGAL_NEF3_FACET_WITH_BOX - else if( CGAL::assign(pf, *o)) { - if( level) pf.debug(); - ++p_count; - } #endif else CGAL_error_msg( "wrong handle"); @@ -1060,9 +1039,6 @@ std::string dump_object_list( const Object_list& O, int level = 0) { os << v_count << "v " << e_count << "e " << f_count << "f "; #ifdef CGAL_NEF3_TRIANGULATE_FACETS os << t_count << "t "; -#endif -#ifdef CGAL_NEF3_FACET_WITH_BOX - os << p_count << "p "; #endif return os.str(); } @@ -1224,19 +1200,6 @@ bool classify_objects(Object_iterator start, Object_iterator end, Point_3 point_on_plane(partition_plane.point()); for( o = start; o != end; ++o) { -#ifdef CGAL_NEF3_FACET_WITH_BOX - Partial_facet pf; - if(CGAL::assign(pf, *o)) { - Partial_facet pfn,pfp; - if(pf.divide(partition_plane, pfn, pfp)) { - *o1 = make_object(pfn); - ++o1; - *o2 = make_object(pfp); - ++o2; - continue; - } - } -#endif Oriented_side side = sop( point_on_plane, *o, depth); if( side == ON_NEGATIVE_SIDE || side == ON_ORIENTED_BOUNDARY) { *o1 = *o; diff --git a/Nef_3/include/CGAL/Nef_3/Nef_box.h b/Nef_3/include/CGAL/Nef_3/Nef_box.h index 00f6378c73e..15d2d400778 100644 --- a/Nef_3/include/CGAL/Nef_3/Nef_box.h +++ b/Nef_3/include/CGAL/Nef_3/Nef_box.h @@ -87,17 +87,6 @@ class Nef_box : public Box_intersection_d::Box_d< double, 3 > { init( true ); } else { init( false ); -#ifdef CGAL_NEF3_FACET_WITH_BOX - std::pair q[3]; - q[0] = CGAL::to_interval( f->b.min_coord(0) ); - q[1] = CGAL::to_interval( f->b.min_coord(1) ); - q[2] = CGAL::to_interval( f->b.min_coord(2) ); - Box_intersection_d::Box_d< double, 3 >::extend(q); - q[0] = CGAL::to_interval( f->b.max_coord(0) ); - q[1] = CGAL::to_interval( f->b.max_coord(1) ); - q[2] = CGAL::to_interval( f->b.max_coord(2) ); - Box_intersection_d::Box_d< double, 3 >::extend(q); -#else Halffacet_cycle_iterator cycle_it = f->facet_cycles_begin(); if( cycle_it.is_shalfedge() ) { SHalfedge_iterator edge_it(cycle_it); @@ -109,7 +98,6 @@ class Nef_box : public Box_intersection_d::Box_d< double, 3 > { } } else CGAL_error_msg( "is facet first cycle a SHalfloop?"); -#endif } } diff --git a/Nef_3/include/CGAL/Nef_3/SNC_intersection.h b/Nef_3/include/CGAL/Nef_3/SNC_intersection.h index 0cd173c29c9..4df7a179de9 100644 --- a/Nef_3/include/CGAL/Nef_3/SNC_intersection.h +++ b/Nef_3/include/CGAL/Nef_3/SNC_intersection.h @@ -58,9 +58,6 @@ class SNC_intersection : public SNC_const_decorator { typedef typename SNC_structure::Halffacet_cycle_const_iterator Halffacet_cycle_const_iterator; -#ifdef CGAL_NEF3_FACET_WITH_BOX - typedef typename SNC_structure::Partial_facet Partial_facet; -#endif typedef typename SNC_structure::Point_3 Point_3; typedef typename SNC_structure::Vector_3 Vector_3; @@ -91,16 +88,6 @@ class SNC_intersection : public SNC_const_decorator { return (locate_point_in_halffacet( p, f) == CGAL::ON_BOUNDED_SIDE); } -#ifdef CGAL_NEF3_FACET_WITH_BOX - bool does_contain_internally( Partial_facet& pf, - const Point_3& p) const { - CGAL_NEF_TRACEN("does point lie in partial facet" << p); - // pf.debug(); - if( !pf.f->plane().has_on(p)) - return false; - return (locate_point_in_halffacet( p, pf) == CGAL::ON_BOUNDED_SIDE); - } -#endif bool does_contain_on_boundary( Halffacet_const_handle f, const Point_3& p) const { typedef Project_shalfedge_point @@ -287,27 +274,6 @@ class SNC_intersection : public SNC_const_decorator { return does_contain_internally( f, p, false); } -#ifdef CGAL_NEF3_FACET_WITH_BOX - bool does_intersect_internally( const Ray_3& ray, - Partial_facet pf, - Point_3& p) const { - CGAL_NEF_TRACEN("-> Intersection facet - ray"); - Plane_3 h( pf.f->plane()); - CGAL_NEF_TRACEN("-> facet's plane: " << h); - CGAL_NEF_TRACEN("-> a point on the plane: " << h.point()); - CGAL_NEF_TRACEN("-> ray: " << ray); - CGAL_assertion(!ray.is_degenerate()); - if( h.has_on( ray.source())) - /* no possible internal intersection */ - return false; - Object o = intersection( h, ray); - if( !CGAL::assign( p, o)) - return false; - CGAL_NEF_TRACEN( "-> intersection point: " << p ); - // CGAL_NEF_TRACEN( "-> point in facet interior? "< { return( does_contain_internally( f, p, false)); } -#ifdef CGAL_NEF3_FACET_WITH_BOX - bool does_intersect_internally( const Segment_3& seg, - Partial_facet pf, - Point_3& p) const { - CGAL_NEF_TRACEN("-> Intersection partial facet - segment"); - Plane_3 h( pf.f->plane()); - CGAL_NEF_TRACEN("-> facet's plane: " << h); - CGAL_NEF_TRACEN("-> a point on the plane: " << h.point()); - CGAL_NEF_TRACEN("-> segment: " << seg); - CGAL_assertion(!seg.is_degenerate()); - if( h.has_on( seg.source()) || h.has_on(seg.target())) - /* no possible internal intersection */ - return false; - Object o = intersection( h, seg); - if( !CGAL::assign( p, o)) - return false; - CGAL_NEF_TRACEN( "-> intersection point: " << p ); - // CGAL_NEF_TRACEN( "-> point in facet interior? "< { return CGAL::ON_BOUNDED_SIDE; } -#ifdef CGAL_NEF3_FACET_WITH_BOX - Bounded_side locate_point_in_halffacet( const Point_3& p, - Partial_facet pf) const { - - if(p.x() < pf.f->b.min_coord(0) || p.x() > pf.f->b.max_coord(0) || - p.y() < pf.f->b.min_coord(1) || p.y() > pf.f->b.max_coord(1) || - p.z() < pf.f->b.min_coord(2) || p.z() > pf.f->b.max_coord(2)) - return CGAL::ON_UNBOUNDED_SIDE; - - typedef Project_shalfedge_point - < SHalfedge, Point_3> Project; - typedef Circulator_project - < SHalfedge_around_facet_const_circulator, Project, - const Point_3&, const Point_3*> Circulator; - typedef Container_from_circulator Container; - - typedef typename Partial_facet::Outer_cycle_iterator Outer_cycle_iterator; - typedef typename Partial_facet::Inner_cycle_iterator Inner_cycle_iterator; - typedef typename Partial_facet::Isolated_vertex_iterator Isolated_vertex_iterator; - - Plane_3 h(pf.f->plane()); - CGAL_assertion(h.has_on(p)); - - Bounded_side outer_bound_pos(CGAL::ON_BOUNDED_SIDE); - - Outer_cycle_iterator oc = pf.outer_cycles_begin(); - while(oc != pf.outer_cycles_end() && - outer_bound_pos == CGAL::ON_BOUNDED_SIDE) { - if(oc->first == oc->second) { - SHalfedge_around_facet_const_circulator hfc(oc->first); - Circulator c(hfc); - Container ct(c); - CGAL_assertion( !is_empty_range(ct.begin(), ct.end())); - outer_bound_pos = bounded_side_3(ct.begin(), ct.end(), p, h); - } else { - outer_bound_pos = bounded_side_3(Circulator(SHalfedge_around_facet_const_circulator(oc->first)), - Circulator(SHalfedge_around_facet_const_circulator(oc->second)), p, h); - } - ++oc; - } - if(outer_bound_pos != CGAL::ON_BOUNDED_SIDE ) - return outer_bound_pos; - - Bounded_side inner_bound_pos(CGAL::ON_UNBOUNDED_SIDE); - - Inner_cycle_iterator ic = pf.inner_cycles_begin(); - while(ic != pf.inner_cycles_end() && - inner_bound_pos == CGAL::ON_UNBOUNDED_SIDE) { - if(ic->first == ic->second) { - SHalfedge_around_facet_const_circulator hfc(ic->first); - Circulator c(hfc); - Container ct(c); - CGAL_assertion( !is_empty_range(ct.begin(), ct.end())); - inner_bound_pos = bounded_side_3(ct.begin(), ct.end(), p, h); - } else { - inner_bound_pos = bounded_side_3(Circulator(SHalfedge_around_facet_const_circulator(ic->first)), - Circulator(SHalfedge_around_facet_const_circulator(ic->second)), p, h); - } - ++ic; - } - if(inner_bound_pos != CGAL::ON_UNBOUNDED_SIDE ) - return opposite(inner_bound_pos); - - Isolated_vertex_iterator iv = pf.isolated_vertices_begin(); - while(iv != pf.isolated_vertices_end()) { - if(*iv == p) - return CGAL::ON_BOUNDARY; - ++iv; - } - - return CGAL::ON_BOUNDED_SIDE; - } -#endif }; // SNC_intersection } //namespace CGAL diff --git a/Nef_3/include/CGAL/Nef_3/SNC_k3_tree_traits.h b/Nef_3/include/CGAL/Nef_3/SNC_k3_tree_traits.h index 4c4db5c1bbb..fa91351c94e 100644 --- a/Nef_3/include/CGAL/Nef_3/SNC_k3_tree_traits.h +++ b/Nef_3/include/CGAL/Nef_3/SNC_k3_tree_traits.h @@ -111,9 +111,6 @@ public: #ifdef CGAL_NEF3_TRIANGULATE_FACETS typedef typename SNC_structure::Halffacet_triangle_handle Halffacet_triangle_handle; -#endif -#ifdef CGAL_NEF3_FACET_WITH_BOX - typedef typename SNC_structure::Partial_facet Partial_facet; #endif typedef typename SNC_structure::Object_handle Object_handle; @@ -152,10 +149,6 @@ public: template Oriented_side operator() ( const Point_3& pop, Halffacet_triangle_handle f, Depth depth); #endif -#ifdef CGAL_NEF3_FACET_WITH_BOX - template Oriented_side operator() - ( const Point_3& pop, Partial_facet& f, Depth depth); -#endif #ifdef CGAL_NEF_EXPLOIT_REFERENCE_COUNTING bool reference_counted; #endif @@ -298,9 +291,6 @@ public: typedef typename SNC_structure::Halffacet_triangle_handle Halffacet_triangle_handle; #endif -#ifdef CGAL_NEF3_FACET_WITH_BOX - typedef typename SNC_structure::Partial_facet Partial_facet; -#endif typedef typename SNC_structure::Object_handle Object_handle; typedef std::vector Object_list; @@ -344,9 +334,6 @@ Side_of_plane::operator() Halffacet_handle f; #ifdef CGAL_NEF3_TRIANGULATE_FACETS Halffacet_triangle_handle t; -#endif -#ifdef CGAL_NEF3_FACET_WITH_BOX - Partial_facet pf; #endif if( CGAL::assign( v, o)) return (*this)(pop, v, depth); @@ -354,10 +341,6 @@ Side_of_plane::operator() return (*this)(pop, e, depth); else if( CGAL::assign( f, o)) return (*this)(pop, f, depth); -#ifdef CGAL_NEF3_FACET_WITH_BOX - else if( CGAL::assign(pf, o)) - return (*this)(pop, pf, depth); -#endif #ifdef CGAL_NEF3_TRIANGULATE_FACETS else if( CGAL::assign( t, o)) return (*this)(pop, t, depth); @@ -547,17 +530,6 @@ Side_of_plane::operator() as far as two vertices located on different sides of the plane. */ -#ifdef CGAL_NEF3_FACET_WITH_BOX -template -template -Oriented_side -Side_of_plane::operator() - (const Point_3& pop, Partial_facet& pf, Depth depth) { - CGAL_error_msg( "not implemented yet"); - - return ON_ORIENTED_BOUNDARY; -} -#endif template template diff --git a/Nef_3/include/CGAL/Nef_3/SNC_point_locator.h b/Nef_3/include/CGAL/Nef_3/SNC_point_locator.h index 10fdcd01a9b..0bd80d9467f 100644 --- a/Nef_3/include/CGAL/Nef_3/SNC_point_locator.h +++ b/Nef_3/include/CGAL/Nef_3/SNC_point_locator.h @@ -167,9 +167,6 @@ public: #ifdef CGAL_NEF3_TRIANGULATE_FACETS typedef typename Decorator_traits::Halffacet_triangle_handle Halffacet_triangle_handle; -#endif -#ifdef CGAL_NEF3_FACET_WITH_BOX - typedef typename SNC_structure::Partial_facet Partial_facet; #endif typedef typename SNC_structure::Point_3 Point_3; typedef typename SNC_structure::Plane_3 Plane_3; @@ -372,23 +369,6 @@ public: CGAL_NEF_TRACEN("add facet " << f->plane()); objects.push_back(make_object(Halffacet_handle(f))); } -#elif defined CGAL_NEF3_FACET_WITH_BOX -#ifndef CGAL_NEF3_PARTITION_MINIMUM -#define CGAL_NEF3_PARTITION_MINIMUM 6 -#endif - Halffacet_cycle_iterator fci = f->facet_cycles_begin(); - CGAL_assertion(fci.is_shalfedge()); - SHalfedge_around_facet_circulator safc(fci), send(safc); - int length = 0; - int stop = CGAL_NEF3_PARTITION_MINIMUM; - while(++length < stop && ++safc != send); - if(length >= stop) { - CGAL_NEF_TRACEN("use Partial facets "); - Partial_facet pf(f); - objects.push_back(make_object(pf)); - } else { - objects.push_back(make_object(Halffacet_handle(f))); - } #else objects.push_back(make_object(Halffacet_handle(f))); #endif @@ -560,9 +540,6 @@ public: Halffacet_handle f; #ifdef CGAL_NEF3_TRIANGULATE_FACETS Halffacet_triangle_handle t; -#endif -#ifdef CGAL_NEF3_FACET_WITH_BOX - Partial_facet pf; #endif bool hit = false; Point_3 eor = CGAL::ORIGIN; // 'end of ray', the latest ray's hit point @@ -628,21 +605,6 @@ public: _CGAL_NEF_TRACEN("the facet becomes the new hit object"); } } -#ifdef CGAL_NEF3_FACET_WITH_BOX - else if( CGAL::assign(pf, *o) && ((mask&4) != 0)) { - CGAL_NEF_TRACEN("new ray shooting"); - Point_3 q; - if( is.does_intersect_internally( ray, pf, q) ) { - if( hit && !has_smaller_distance_to_point( ray.source(), q, eor)) - continue; - if( !candidate_provider->is_point_on_cell( q, objects_iterator)) - continue; - eor = q; - result = make_object(pf.f); - hit = true; - } - } -#endif #ifdef CGAL_NEF3_TRIANGULATE_FACETS else if( CGAL::assign( t, *o) && ((mask&8) != 0)) { Point_3 q; @@ -690,9 +652,6 @@ public: Halffacet_handle f; #ifdef CGAL_NEF3_TRIANGULATE_FACETS Halffacet_triangle_handle t; -#endif -#ifdef CGAL_NEF3_FACET_WITH_BOX - Partial_facet pf; #endif Object_list candidates = candidate_provider->objects_around_point(p); Object_list_iterator o = candidates.begin(); @@ -732,16 +691,6 @@ public: found = true; } } -#endif -#ifdef CGAL_NEF3_FACET_WITH_BOX - else if( CGAL::assign(pf, *o)) { - CGAL_NEF_TRACEN("new locate "); - if ( is.does_contain_internally( pf, p) ) { - _CGAL_NEF_TRACEN("found on partial facet..."); - result = make_object(pf.f); - found = true; - } - } #endif o++; } @@ -768,9 +717,6 @@ public: Halffacet_handle f; #ifdef CGAL_NEF3_TRIANGULATE_FACETS Halffacet_triangle_handle t; -#endif -#ifdef CGAL_NEF3_FACET_WITH_BOX - Partial_facet pf; #endif Object_list candidates = candidate_provider->objects_around_point(p); Object_list_iterator o = candidates.begin(); @@ -872,18 +818,6 @@ public: s = Segment_3(p, normalized(ip)); result = make_object(f); } -#ifdef CGAL_NEF3_FACET_WITH_BOX - } else if( CGAL::assign(pf, *o)) { - CGAL_NEF_TRACEN("new locate "); - if ( is.does_contain_internally( pf, p) ) { - _CGAL_NEF_TRACEN("found on partial facet..."); - return make_object(pf.f); - } - if( is.does_intersect_internally(s,pf,ip)) { - s = Segment_3(p, normalized(ip)); - result = make_object(pf.f); - } -#endif #ifdef CGAL_NEF3_TRIANGULATE_FACETS } else if( CGAL::assign(t, *o)) { CGAL_NEF_TRACEN("test triangle of facet " << t->plane()); @@ -961,14 +895,6 @@ public: if(f->plane().oriented_side(p) == ON_NEGATIVE_SIDE) f = f->twin(); return make_object(f->incident_volume()); -#ifdef CGAL_NEF3_FACET_WITH_BOX - } else if( CGAL::assign(pf, *o)) { - CGAL_error_msg( "should not be executed"); - Halffacet_handle f = pf.f; - if(f->plane().oriented_side(p) == ON_NEGATIVE_SIDE) - f = f->twin(); - return make_object(f->incident_volume()); -#endif #ifdef CGAL_NEF3_TRIANGULATE_FACETS } else if( CGAL::assign(t, result)) { f = t; @@ -1006,9 +932,6 @@ public: Halffacet_handle f; #ifdef CGAL_NEF3_TRIANGULATE_FACETS Halffacet_triangle_handle t; -#endif -#ifdef CGAL_NEF3_FACET_WITH_BOX - Partial_facet pf; #endif Object_list_iterator o; Object_list objects = candidate_provider->objects_around_segment(s); @@ -1043,11 +966,6 @@ public: _CGAL_NEF_TRACEN("edge intersects facet on plane "<plane()<<" on "<objects_around_segment(s); @@ -1111,11 +1026,6 @@ public: else if( CGAL::assign( f, *o)) { /* do nothing */ } -#ifdef CGAL_NEF3_FACET_WITH_BOX - else if( CGAL::assign(pf, *o)) { - CGAL_error_msg( "not implemented yet"); - } -#endif #ifdef CGAL_NEF3_TRIANGULATE_FACETS else if( CGAL::assign( t, *o)) { /* do nothing */ @@ -1140,9 +1050,6 @@ public: Vertex_handle v; Halfedge_handle e; Halffacet_handle f; -#ifdef CGAL_NEF3_FACET_WITH_BOX - Partial_facet pf; -#endif #ifdef CGAL_NEF3_TRIANGULATE_FACETS Halffacet_triangle_handle t; #endif @@ -1168,11 +1075,6 @@ public: _CGAL_NEF_TRACEN("edge intersects facet on plane "<plane()<<" on "< #include #include -#ifdef CGAL_NEF3_FACET_WITH_BOX -#include -#endif #include #undef CGAL_NEF_DEBUG @@ -129,29 +126,6 @@ public: and iterators. There's no type |SHalfloop_iterator|, as there is at most one |SLoop| pair per vertex.}*/ -#ifdef CGAL_NEF3_FACET_WITH_BOX - template - class Facet_with_box : public Items::template Halffacet { - public: - typedef typename Items::template Halffacet Halffacet; - typedef typename Refs::FT FT; - typedef typename Box_intersection_d::Box_d Box; - - Box b; - - Facet_with_box() : Halffacet(), b() {} - Facet_with_box(const Plane_3& h, Mark m) : Halffacet(h,m) {} - Facet_with_box(const Facet_with_box& f) : Halffacet(f) { - b = f.b; - } - - Facet_with_box& operator=(const Facet_with_box& f) { - (Halffacet) *this = (Halffacet) f; - b = f.b; - return *this; - } - }; -#endif public: typedef Sphere_map Vertex_base; @@ -163,11 +137,7 @@ public: typedef typename Vertex_list::iterator Vertex_iterator; typedef typename Vertex_list::const_iterator Vertex_const_iterator; -#ifdef CGAL_NEF3_FACET_WITH_BOX - typedef Facet_with_box Halffacet_base; -#else typedef typename Items::template Halffacet Halffacet_base; -#endif typedef SNC_in_place_list_halffacet Halffacet; typedef CGAL::In_place_list Halffacet_list; typedef CGAL_ALLOCATOR(Halffacet) Halffacet_alloc; @@ -455,229 +425,6 @@ public: move_shalfedge_around_facet > SHalfedge_around_facet_circulator; -#ifdef CGAL_NEF3_FACET_WITH_BOX - typedef std::pair Outer_cycle; - typedef std::pair Inner_cycle; - - class Partial_facet { - public: - Halffacet_handle f; - - std::list outer_cycles; - std::list inner_cycles; - std::list isolated_vertices; - - typedef typename std::list::iterator Outer_cycle_iterator; - typedef typename std::list::iterator Inner_cycle_iterator; - typedef typename std::list::iterator Isolated_vertex_iterator; - - Partial_facet() {} - - Partial_facet(const Partial_facet& pf) { - f = pf.f; - outer_cycles = pf.outer_cycles; - inner_cycles = pf.inner_cycles; - isolated_vertices = pf.isolated_vertices; - } - - Partial_facet& operator=(const Partial_facet& pf) { - f = pf.f; - outer_cycles = pf.outer_cycles; - inner_cycles = pf.inner_cycles; - isolated_vertices = pf.isolated_vertices; - return *this; - } - - explicit Partial_facet(Halffacet_handle fin) : f(fin) { - Halffacet_cycle_iterator fc = f->facet_cycles_begin(); - for(;fc != f->facet_cycles_end();++fc) { - if(fc.is_shalfedge()) { - SHalfedge_around_facet_circulator se(fc), se_next(se); - ++se_next; - if(fc == f->facet_cycles_begin()) { - outer_cycles.push_back(Outer_cycle(se, se)); - // outer_cycles.push_back(Outer_cycle(se_next, se)); - } else { - inner_cycles.push_back(Inner_cycle(se, se)); - // inner_cycles.push_back(Inner_cycle(se_next, se)); - } - } else if(fc.is_shalfloop()) { - SHalfloop_handle l(fc); - isolated_vertices.push_back(l->incident_sface()->center_vertex()->point()); - } else - CGAL_error_msg( "wrong value"); - } - } - - Outer_cycle_iterator outer_cycles_begin() { return outer_cycles.begin(); } - Inner_cycle_iterator inner_cycles_begin() { return inner_cycles.begin(); } - Isolated_vertex_iterator isolated_vertices_begin() { return isolated_vertices.begin(); } - - Outer_cycle_iterator outer_cycles_end() { return outer_cycles.end(); } - Inner_cycle_iterator inner_cycles_end() { return inner_cycles.end(); } - Isolated_vertex_iterator isolated_vertices_end() { return isolated_vertices.end(); } - - bool divide(const Plane_3& p, Partial_facet& pf1, Partial_facet& pf2) { - // std::cerr << "divide " << std::endl; - // debug(); - pf1.f = pf2.f = f; - Outer_cycle_iterator oc = outer_cycles.begin(); - for(;oc != outer_cycles.end(); ++oc) { - bool next = false; - // CGAL_assertion(oc->first != oc->second); - SHalfedge_around_facet_circulator se = oc->first, se_begin(se), se_new(se), se_end; - Oriented_side ref = p.oriented_side(se->source()->source()->point()), cur; - // std::cerr << "start " << se->source()->source()->point() << ":" << ref << std::endl; - ++se; - while(ref == ON_ORIENTED_BOUNDARY && se != oc->second) { - ref = p.oriented_side(se->source()->source()->point()); - ++se; - } - if(se == oc->second) - return false; - - for(;se != oc->second;++se) { - cur = p.oriented_side(se->source()->source()->point()); - // std::cerr << "current " << se->source()->source()->point() << ":" << cur << std::endl; - if(cur != ref) { - CGAL_assertion(ref != ON_ORIENTED_BOUNDARY); - if(cur == ON_ORIENTED_BOUNDARY) { - next = true; - continue; - } - se_end = se; - if(next) - --se_end; - if(cur == ON_NEGATIVE_SIDE) { - pf2.outer_cycles.push_back(Outer_cycle(se_begin, se_end)); - } else if(cur == ON_POSITIVE_SIDE) { - pf1.outer_cycles.push_back(Outer_cycle(se_begin, se_end)); - } - se_begin = se_new; - if(next) - ++se_begin; - ref = cur; - } else - se_new = se; - next = false; - } - // std::cerr << "end of cycle " << ref << std::endl; - if(next) { - if(ref == ON_POSITIVE_SIDE) { - pf1.outer_cycles.push_back(Outer_cycle(se_new, se)); - pf2.outer_cycles.push_back(Outer_cycle(se_begin, --se)); - } else { - pf2.outer_cycles.push_back(Outer_cycle(se_new, se)); - pf1.outer_cycles.push_back(Outer_cycle(se_begin, --se)); - } - } else { - if(ref == ON_POSITIVE_SIDE) - pf2.outer_cycles.push_back(Outer_cycle(se_begin, se)); - else if(ref == ON_NEGATIVE_SIDE) - pf1.outer_cycles.push_back(Outer_cycle(se_begin, se)); - } - } - - Inner_cycle_iterator ic = inner_cycles.begin(); - for(;ic != inner_cycles.end(); ++ic) { - bool next = false; - SHalfedge_around_facet_circulator se = ic->first, se_begin(se), se_new(se), se_end; - Oriented_side ref = p.oriented_side(se->source()->source()->point()), cur; - ++se; - while(ref == ON_ORIENTED_BOUNDARY && se != ic->second) { - ref = p.oriented_side(se->source()->source()->point()); - ++se; - } - if(se == ic->second) - return false; - - for(;se != ic->second; ++se) { - cur = p.oriented_side(se->source()->source()->point()); - if(cur != ref) { - CGAL_assertion(ref != ON_ORIENTED_BOUNDARY); - if(cur == ON_ORIENTED_BOUNDARY) { - next = true; - continue; - } - se_end = se; - if(next) - --se_end; - if(cur == ON_NEGATIVE_SIDE) { - pf2.inner_cycles.push_back(Inner_cycle(se_begin, se_end)); - } else if(cur == ON_POSITIVE_SIDE) { - pf1.inner_cycles.push_back(Inner_cycle(se_begin, se_end)); - } - se_begin = se_new; - if(next) - ++se_begin; - ref = cur; - } else - se_new = se; - next = false; - } - if(next) { - if(ref == ON_POSITIVE_SIDE) { - pf1.inner_cycles.push_back(Inner_cycle(se_new, se)); - pf2.inner_cycles.push_back(Inner_cycle(se_begin, --se)); - } else { - pf2.inner_cycles.push_back(Inner_cycle(se_new, se)); - pf1.inner_cycles.push_back(Inner_cycle(se_begin, --se)); - } - } else { - if(ref == ON_POSITIVE_SIDE) - pf2.inner_cycles.push_back(Inner_cycle(se_begin, se)); - else if(ref == ON_NEGATIVE_SIDE) - pf1.inner_cycles.push_back(Inner_cycle(se_begin, se)); - } - } - - Isolated_vertex_iterator iv = isolated_vertices.begin(); - for(;iv != isolated_vertices.end();++iv) { - Oriented_side side = p.oriented_side(*iv); - if( side == ON_NEGATIVE_SIDE || side == ON_ORIENTED_BOUNDARY) - pf1.isolated_vertices.push_back(*iv); - if( side == ON_POSITIVE_SIDE || side == ON_ORIENTED_BOUNDARY) - pf1.isolated_vertices.push_back(*iv); - } - // std::cerr << "into " << std::endl; - // pf1.debug(); - // pf2.debug(); - return true; - } - - void debug() { - std::cerr << "Partial_facet " << std::endl; - std::cerr << "Box " << std::endl; - std::cerr << " " << f->b.min_coord(0) << std::endl; - std::cerr << " " << f->b.min_coord(1) << std::endl; - std::cerr << " " << f->b.min_coord(2) << std::endl; - std::cerr << " " << f->b.max_coord(0) << std::endl; - std::cerr << " " << f->b.max_coord(1) << std::endl; - std::cerr << " " << f->b.max_coord(2) << std::endl; - - Outer_cycle_iterator oc = outer_cycles_begin(); - for(; oc != outer_cycles_end(); ++oc) { - std::cerr << "Outer cycle " << std::endl; - SHalfedge_around_facet_circulator sb(oc->first), se(oc->second); - CGAL_For_all(sb,se) { - std::cerr << " " << sb->source()->source()->point() << std::endl; - } - } - - Inner_cycle_iterator ic = inner_cycles_begin(); - for(; ic != inner_cycles_end(); ++ic) { - std::cerr << "Inner cycle " << std::endl; - SHalfedge_around_facet_circulator sb(ic->first), se(ic->second); - CGAL_For_all(sb,se) { - std::cerr << " " << sb->source()->source()->point() << std::endl; - } - } - } - }; - -#endif /*{\Mcreation 3}*/ /*{\Mtext |\Mname| is default and copy constructible. Note that copy diff --git a/Nef_3/include/CGAL/Nef_polyhedron_3.h b/Nef_3/include/CGAL/Nef_polyhedron_3.h index c1a0791152f..c4a6a41d29d 100644 --- a/Nef_3/include/CGAL/Nef_polyhedron_3.h +++ b/Nef_3/include/CGAL/Nef_polyhedron_3.h @@ -1851,29 +1851,6 @@ protected: CGAL_forall_halffacets(fi,snc()) { if(is_standard(fi) || ninety) { fi->plane() = fi->plane().transform( aff); -#ifdef CGAL_NEF3_FACET_WITH_BOX - typedef typename Halffacet::Box Box; - bool first = true; - Halffacet_cycle_iterator cycle_it = fi->facet_cycles_begin(); - if( cycle_it.is_shalfedge() ) { - SHalfedge_iterator edge_it(cycle_it); - SHalfedge_around_facet_circulator - start( edge_it ), end( edge_it ); - CGAL_For_all( start, end ) { - const Point_3& p = start->source()->source()->point(); - typename Kernel::FT q[3]; - q[0] = p.x(); - q[1] = p.y(); - q[2] = p.z(); - if(first) { - fi->b = Box(q,q); - first = false; - } else - fi->b.extend(q); - } - } else - CGAL_error_msg( "is facet first cycle a SHalfloop?"); -#endif } } From b575892a164d83e6d47a960839f86ae24dca4114 Mon Sep 17 00:00:00 2001 From: Giles Bathgate Date: Tue, 8 Jun 2021 18:21:46 +0100 Subject: [PATCH 42/49] Simplify assign in Object.h --- STL_Extension/include/CGAL/Object.h | 31 +++++------------------------ 1 file changed, 5 insertions(+), 26 deletions(-) diff --git a/STL_Extension/include/CGAL/Object.h b/STL_Extension/include/CGAL/Object.h index 6046e22552a..fdfd59bd514 100644 --- a/STL_Extension/include/CGAL/Object.h +++ b/STL_Extension/include/CGAL/Object.h @@ -76,25 +76,10 @@ class Object template bool assign(T &t) const { - if(obj) { - #ifdef CGAL_USE_ANY_BAD_CAST - try { - t = boost::any_cast(*obj); - return true; - } catch(...) { - return false; - } - #else - const T* res = boost::any_cast(&(*obj)); - if (res){ - t=*res; - return true; - } - return false; - #endif - } else { - return false; - } + const T* res = boost::any_cast(obj.get()); + if (!res) return false; + t = *res; + return true; } bool @@ -174,19 +159,13 @@ template inline const T * object_cast(const Object * o) { - if(o->obj) - return boost::any_cast((o->obj).get()); - else - return nullptr; + return boost::any_cast((o->obj).get()); } template inline T object_cast(const Object & o) { - if(!o.obj) - throw Bad_object_cast(); - const T * result = boost::any_cast((o.obj).get()); if (!result) throw Bad_object_cast(); From a7ad6602e0ea6ffb346f97e785f41891bbfdaf8c Mon Sep 17 00:00:00 2001 From: Maxime Gimeno Date: Wed, 9 Jun 2021 09:30:13 +0200 Subject: [PATCH 43/49] Fix path to tmp.log --- .github/workflows/build_doc.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/build_doc.yml b/.github/workflows/build_doc.yml index 40c2a7a4c33..6cf3d40c5ae 100644 --- a/.github/workflows/build_doc.yml +++ b/.github/workflows/build_doc.yml @@ -81,7 +81,7 @@ jobs: cd build_doc && make -j2 doc make -j2 doc_with_postprocessing 2>tmp.log if [ -s tmp.log ]; then - content=`cat ./build_doc/tmp.log` + content=`cat ./tmp.log` echo ::set-output name=DoxygenError::$(cat tmp.log) exit 1 fi From 3dce682668721a58634e3ac2d5a359db87483051 Mon Sep 17 00:00:00 2001 From: Laurent Rineau Date: Fri, 11 Jun 2021 09:58:18 +0200 Subject: [PATCH 44/49] CGAL-5.3-beta1 was released --- Documentation/doc/resources/1.8.13/menu_version.js | 2 +- Documentation/doc/resources/1.8.14/menu_version.js | 2 +- Documentation/doc/resources/1.8.20/menu_version.js | 2 +- Documentation/doc/resources/1.8.4/menu_version.js | 2 +- Installation/include/CGAL/version.h | 4 ++-- Installation/lib/cmake/CGAL/CGALConfigVersion.cmake | 2 +- Maintenance/public_release/announcement/mailing-beta.eml | 4 ++++ 7 files changed, 11 insertions(+), 7 deletions(-) diff --git a/Documentation/doc/resources/1.8.13/menu_version.js b/Documentation/doc/resources/1.8.13/menu_version.js index 6226aa58422..0e41198430b 100644 --- a/Documentation/doc/resources/1.8.13/menu_version.js +++ b/Documentation/doc/resources/1.8.13/menu_version.js @@ -9,7 +9,7 @@ '5.3-beta1', 'latest', '5.2.2', - '5.1.5', + '5.1.4', '5.0.4', '4.14.3', '4.13.2', diff --git a/Documentation/doc/resources/1.8.14/menu_version.js b/Documentation/doc/resources/1.8.14/menu_version.js index 6226aa58422..0e41198430b 100644 --- a/Documentation/doc/resources/1.8.14/menu_version.js +++ b/Documentation/doc/resources/1.8.14/menu_version.js @@ -9,7 +9,7 @@ '5.3-beta1', 'latest', '5.2.2', - '5.1.5', + '5.1.4', '5.0.4', '4.14.3', '4.13.2', diff --git a/Documentation/doc/resources/1.8.20/menu_version.js b/Documentation/doc/resources/1.8.20/menu_version.js index 6226aa58422..0e41198430b 100644 --- a/Documentation/doc/resources/1.8.20/menu_version.js +++ b/Documentation/doc/resources/1.8.20/menu_version.js @@ -9,7 +9,7 @@ '5.3-beta1', 'latest', '5.2.2', - '5.1.5', + '5.1.4', '5.0.4', '4.14.3', '4.13.2', diff --git a/Documentation/doc/resources/1.8.4/menu_version.js b/Documentation/doc/resources/1.8.4/menu_version.js index 6226aa58422..0e41198430b 100644 --- a/Documentation/doc/resources/1.8.4/menu_version.js +++ b/Documentation/doc/resources/1.8.4/menu_version.js @@ -9,7 +9,7 @@ '5.3-beta1', 'latest', '5.2.2', - '5.1.5', + '5.1.4', '5.0.4', '4.14.3', '4.13.2', diff --git a/Installation/include/CGAL/version.h b/Installation/include/CGAL/version.h index 36972322483..452199a1fd3 100644 --- a/Installation/include/CGAL/version.h +++ b/Installation/include/CGAL/version.h @@ -17,10 +17,10 @@ #define CGAL_VERSION_H #ifndef SWIG -#define CGAL_VERSION 5.3-beta1 +#define CGAL_VERSION 5.3-beta2 #define CGAL_GIT_HASH abcdef #endif -#define CGAL_VERSION_NR 1050300910 +#define CGAL_VERSION_NR 1050300920 #define CGAL_SVN_REVISION 99999 #define CGAL_RELEASE_DATE 20210630 diff --git a/Installation/lib/cmake/CGAL/CGALConfigVersion.cmake b/Installation/lib/cmake/CGAL/CGALConfigVersion.cmake index 68937a79b35..df599b7cca9 100644 --- a/Installation/lib/cmake/CGAL/CGALConfigVersion.cmake +++ b/Installation/lib/cmake/CGAL/CGALConfigVersion.cmake @@ -2,7 +2,7 @@ set(CGAL_MAJOR_VERSION 5) set(CGAL_MINOR_VERSION 3) set(CGAL_BUGFIX_VERSION 0) include(${CMAKE_CURRENT_LIST_DIR}/CGALConfigBuildVersion.cmake) -set(CGAL_VERSION_PUBLIC_RELEASE_VERSION "5.3-beta1") +set(CGAL_VERSION_PUBLIC_RELEASE_VERSION "5.3-beta2") set(CGAL_VERSION_PUBLIC_RELEASE_NAME "CGAL-${CGAL_VERSION_PUBLIC_RELEASE_VERSION}") if (CGAL_BUGFIX_VERSION AND CGAL_BUGFIX_VERSION GREATER 0) diff --git a/Maintenance/public_release/announcement/mailing-beta.eml b/Maintenance/public_release/announcement/mailing-beta.eml index 637203ea579..d5d77403f7b 100644 --- a/Maintenance/public_release/announcement/mailing-beta.eml +++ b/Maintenance/public_release/announcement/mailing-beta.eml @@ -143,6 +143,10 @@ Classification removed. +See https://www.cgal.org/2021/06/04/cgal53-beta1/ for a +complete list of changes. + + The CGAL project is a collaborative effort to develop a robust, easy-to-use, and efficient C++ software library of geometric data structures and algorithms, like From 75ceb859ecae9385d06ae49eaedf3820b3549cf3 Mon Sep 17 00:00:00 2001 From: Dmitry Anisimov Date: Mon, 14 Jun 2021 18:26:07 +0200 Subject: [PATCH 45/49] fixed the error with empty package pretty name --- Installation/include/CGAL/license/generate_files.cmake | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/Installation/include/CGAL/license/generate_files.cmake b/Installation/include/CGAL/license/generate_files.cmake index 39f43f57169..0b24eb5840a 100644 --- a/Installation/include/CGAL/license/generate_files.cmake +++ b/Installation/include/CGAL/license/generate_files.cmake @@ -5,6 +5,10 @@ foreach(LINE ${package_list}) string(REPLACE "/" "_" PACKAGE_CODE_NAME ${PACKAGE_NAME}) string(TOUPPER ${PACKAGE_CODE_NAME} PACKAGE_CODE_NAME) string(REPLACE "${PACKAGE_NAME}" "" PACKAGE_PRETTY_NAME ${LINE}) + string(COMPARE EQUAL ${PACKAGE_PRETTY_NAME} " " IS_EMPTY) + if(${IS_EMPTY}) + set(PACKAGE_PRETTY_NAME ${PACKAGE_NAME}) + endif() string(STRIP "${PACKAGE_PRETTY_NAME}" PACKAGE_PRETTY_NAME) message("Generate \"${PACKAGE_NAME}.h\"") configure_file(gpl.h.in ${PACKAGE_NAME}.h @ONLY NEWLINE_STYLE LF) From bed3189719a4c00148a573d08c706bab1a6911d6 Mon Sep 17 00:00:00 2001 From: Dmitry Anisimov Date: Mon, 14 Jun 2021 19:06:48 +0200 Subject: [PATCH 46/49] andreas review --- .../Concepts/LinearProgramTraits.h | 2 +- .../Concepts/QuadraticProgramTraits.h | 4 +--- .../doc/Solver_interface/Solver_interface.txt | 8 ++------ .../examples/Solver_interface/CMakeLists.txt | 8 ++++---- .../Solver_interface/mixed_integer_program.cpp | 15 --------------- .../Solver_interface/osqp_quadratic_program.cpp | 12 ------------ 6 files changed, 8 insertions(+), 41 deletions(-) diff --git a/Solver_interface/doc/Solver_interface/Concepts/LinearProgramTraits.h b/Solver_interface/doc/Solver_interface/Concepts/LinearProgramTraits.h index 49bc506ab92..9000a626aa3 100644 --- a/Solver_interface/doc/Solver_interface/Concepts/LinearProgramTraits.h +++ b/Solver_interface/doc/Solver_interface/Concepts/LinearProgramTraits.h @@ -72,7 +72,7 @@ public: /// @{ /*! - \brief Solves the linear program. + \brief solves the linear program. Number of values in `solution` equals to the number `n` of values in the vector `x`. diff --git a/Solver_interface/doc/Solver_interface/Concepts/QuadraticProgramTraits.h b/Solver_interface/doc/Solver_interface/Concepts/QuadraticProgramTraits.h index 0d1cec8fe95..189f0da26b7 100644 --- a/Solver_interface/doc/Solver_interface/Concepts/QuadraticProgramTraits.h +++ b/Solver_interface/doc/Solver_interface/Concepts/QuadraticProgramTraits.h @@ -46,8 +46,6 @@ public: /*! Sets the entries `Pij` and `Pji` of `qp` to `value`. - - Note that you should define only the upper triangular part of the matrix! */ void set_P(const std::size_t i, const std::size_t j, const FT value) { } @@ -83,7 +81,7 @@ public: /// @{ /*! - \brief Solves the quadratic program. + \brief solves the quadratic program. Number of values in `solution` equals to the number `n` of values in the vector `x`. diff --git a/Solver_interface/doc/Solver_interface/Solver_interface.txt b/Solver_interface/doc/Solver_interface/Solver_interface.txt index 1a4e0d0e484..860815a9e33 100644 --- a/Solver_interface/doc/Solver_interface/Solver_interface.txt +++ b/Solver_interface/doc/Solver_interface/Solver_interface.txt @@ -21,15 +21,11 @@ Library (MKL). For mixed integer programs (either constrained or unconstrained), we provide models using the \ref thirdpartySCIP and \ref thirdpartyGLPK -libraries. It is also possible to derive new models from other -high performance libraries such as CBC or -Gurobi. +libraries. For linear and quadratic programs, we provide a model using the built-in \ref PkgQPSolver "CGAL Linear and Quadratic Programming Solver" and a model using -the external \ref thirdpartyOSQP library. It is also possible to derive new models -from other quadratic programming libraries such as -OOQP for example. +the external \ref thirdpartyOSQP library. \section SectionSolverDiagonalize Matrix Diagonalization diff --git a/Solver_interface/examples/Solver_interface/CMakeLists.txt b/Solver_interface/examples/Solver_interface/CMakeLists.txt index b700decef6d..c8626a2ce33 100644 --- a/Solver_interface/examples/Solver_interface/CMakeLists.txt +++ b/Solver_interface/examples/Solver_interface/CMakeLists.txt @@ -19,20 +19,18 @@ if(TARGET CGAL::Eigen3_support) target_link_libraries(diagonalize_matrix PUBLIC CGAL::Eigen3_support) endif() -create_single_source_cgal_program("mixed_integer_program.cpp") -create_single_source_cgal_program("osqp_quadratic_program.cpp") - find_package(OSQP QUIET) include(CGAL_OSQP_support) if(TARGET CGAL::OSQP_support) + create_single_source_cgal_program("osqp_quadratic_program.cpp") target_link_libraries(osqp_quadratic_program PUBLIC CGAL::OSQP_support) message("OSQP found and used") else() - message(STATUS "NOTICE: OSQP was not found. Complete OSQP examples won't be available.") + message(STATUS "NOTICE: OSQP was not found. OSQP examples won't be available.") endif() @@ -41,6 +39,7 @@ include(CGAL_SCIP_support) if(TARGET CGAL::SCIP_support) + create_single_source_cgal_program("mixed_integer_program.cpp") target_link_libraries(mixed_integer_program PUBLIC CGAL::SCIP_support) message("SCIP found and used") @@ -51,6 +50,7 @@ else() if(TARGET CGAL::GLPK_support) + create_single_source_cgal_program("mixed_integer_program.cpp") target_link_libraries(mixed_integer_program PUBLIC CGAL::GLPK_support) message("GLPK found and used") diff --git a/Solver_interface/examples/Solver_interface/mixed_integer_program.cpp b/Solver_interface/examples/Solver_interface/mixed_integer_program.cpp index f2b444037dd..582f5e73e2d 100644 --- a/Solver_interface/examples/Solver_interface/mixed_integer_program.cpp +++ b/Solver_interface/examples/Solver_interface/mixed_integer_program.cpp @@ -32,9 +32,6 @@ typedef CGAL::GLPK_mixed_integer_program_traits M #endif - -#if defined(CGAL_USE_GLPK) || defined(CGAL_USE_SCIP) - typedef typename MIP_Solver::Variable Variable; typedef typename MIP_Solver::Linear_objective Linear_objective; typedef typename MIP_Solver::Linear_constraint Linear_constraint; @@ -99,15 +96,3 @@ int main() return EXIT_FAILURE; } } - - -#else - -int main(int , char**) -{ - std::cerr << "This test requires either GLPK or SCIP.\n"; - return EXIT_SUCCESS; -} - -#endif // defined(CGAL_USE_GLPK) || defined(CGAL_USE_SCIP) - diff --git a/Solver_interface/examples/Solver_interface/osqp_quadratic_program.cpp b/Solver_interface/examples/Solver_interface/osqp_quadratic_program.cpp index 3bc9136db58..1bab6078616 100644 --- a/Solver_interface/examples/Solver_interface/osqp_quadratic_program.cpp +++ b/Solver_interface/examples/Solver_interface/osqp_quadratic_program.cpp @@ -21,16 +21,11 @@ #include #include #include - -#if defined(CGAL_USE_OSQP) #include -#endif using Kernel = CGAL::Simple_cartesian; using FT = typename Kernel::FT; -#if defined(CGAL_USE_OSQP) - int main(void) { const std::size_t n = 2; // number of variables @@ -68,10 +63,3 @@ int main(void) { } std::cout << std::endl; } - -#else -int main(void) { - std::cout << "This example requires the OSQP library." << std::endl; - return EXIT_SUCCESS; -} -#endif // defined(CGAL_USE_OSQP) From 231bcfa751fc4bc8ec90fdf46e4dbfc2d7ed30cc Mon Sep 17 00:00:00 2001 From: Dmitry Anisimov Date: Thu, 17 Jun 2021 10:28:03 +0200 Subject: [PATCH 47/49] laurent's review --- Installation/include/CGAL/license/generate_files.cmake | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/Installation/include/CGAL/license/generate_files.cmake b/Installation/include/CGAL/license/generate_files.cmake index 0b24eb5840a..50652a25bd4 100644 --- a/Installation/include/CGAL/license/generate_files.cmake +++ b/Installation/include/CGAL/license/generate_files.cmake @@ -5,11 +5,10 @@ foreach(LINE ${package_list}) string(REPLACE "/" "_" PACKAGE_CODE_NAME ${PACKAGE_NAME}) string(TOUPPER ${PACKAGE_CODE_NAME} PACKAGE_CODE_NAME) string(REPLACE "${PACKAGE_NAME}" "" PACKAGE_PRETTY_NAME ${LINE}) - string(COMPARE EQUAL ${PACKAGE_PRETTY_NAME} " " IS_EMPTY) - if(${IS_EMPTY}) + string(STRIP "${PACKAGE_PRETTY_NAME}" PACKAGE_PRETTY_NAME) + if(NOT PACKAGE_PRETTY_NAME) set(PACKAGE_PRETTY_NAME ${PACKAGE_NAME}) endif() - string(STRIP "${PACKAGE_PRETTY_NAME}" PACKAGE_PRETTY_NAME) message("Generate \"${PACKAGE_NAME}.h\"") configure_file(gpl.h.in ${PACKAGE_NAME}.h @ONLY NEWLINE_STYLE LF) endforeach() From 76d143275ad83afc0d71bd72f8e2ef89c57af45b Mon Sep 17 00:00:00 2001 From: Dmitry Anisimov Date: Fri, 18 Jun 2021 10:16:37 +0200 Subject: [PATCH 48/49] removed trailing whitespaces --- Solver_interface/doc/Solver_interface/Solver_interface.txt | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/Solver_interface/doc/Solver_interface/Solver_interface.txt b/Solver_interface/doc/Solver_interface/Solver_interface.txt index fa49ee9f6e4..6389747c4af 100644 --- a/Solver_interface/doc/Solver_interface/Solver_interface.txt +++ b/Solver_interface/doc/Solver_interface/Solver_interface.txt @@ -23,9 +23,9 @@ For mixed integer programs (either constrained or unconstrained), we provide models using the \ref thirdpartySCIP and \ref thirdpartyGLPK libraries. -For linear and quadratic programs, CGAl has the built-in -\ref PkgQPSolver "CGAL Linear and Quadratic Programming Solver" and we also provide -a model using the external \ref thirdpartyOSQP library. +For linear and quadratic programs, CGAL provides the built-in +\ref PkgQPSolver "CGAL Linear and Quadratic Programming Solver" +and we also provide a model using the \ref thirdpartyOSQP library. \section SectionSolverDiagonalize Matrix Diagonalization From 3b905bb34487e1a625633247e090d095f14b2796 Mon Sep 17 00:00:00 2001 From: Dmitry Anisimov Date: Fri, 18 Jun 2021 10:20:59 +0200 Subject: [PATCH 49/49] fixed typo --- Solver_interface/doc/Solver_interface/Solver_interface.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Solver_interface/doc/Solver_interface/Solver_interface.txt b/Solver_interface/doc/Solver_interface/Solver_interface.txt index 6389747c4af..8b3450f8afc 100644 --- a/Solver_interface/doc/Solver_interface/Solver_interface.txt +++ b/Solver_interface/doc/Solver_interface/Solver_interface.txt @@ -23,7 +23,7 @@ For mixed integer programs (either constrained or unconstrained), we provide models using the \ref thirdpartySCIP and \ref thirdpartyGLPK libraries. -For linear and quadratic programs, CGAL provides the built-in +For linear and quadratic programs, \cgal provides the built-in \ref PkgQPSolver "CGAL Linear and Quadratic Programming Solver" and we also provide a model using the \ref thirdpartyOSQP library.