Merge remote-tracking branch 'cgal/master' into Region_growing-revision-soesau

This commit is contained in:
Sébastien Loriot 2023-02-16 14:18:17 +01:00
commit 640910288b
228 changed files with 2044 additions and 3681 deletions

View File

@ -6,12 +6,14 @@ project(AABB_traits_benchmark)
find_package(CGAL REQUIRED OPTIONAL_COMPONENTS Core)
# google benchmark
find_package(benchmark)
if (benchmark_FOUND)
create_single_source_cgal_program("tree_creation.cpp")
target_link_libraries(tree_creation benchmark::benchmark)
endif()
create_single_source_cgal_program("test.cpp")
create_single_source_cgal_program("tree_construction.cpp")
# google benchmark
find_package(benchmark QUIET)
if(benchmark_FOUND)
create_single_source_cgal_program("tree_creation.cpp")
target_link_libraries(tree_creation benchmark::benchmark)
else()
message(STATUS "NOTICE: The benchmark 'tree_creation.cpp' requires the Google benchmark library, and will not be compiled.")
endif()

View File

@ -5,6 +5,7 @@ project(AABB_tree_Demo)
# Find includes in corresponding build directories
set(CMAKE_INCLUDE_CURRENT_DIR ON)
# Instruct CMake to run moc automatically when needed.
set(CMAKE_AUTOMOC ON)
if(NOT POLICY CMP0070 AND POLICY CMP0053)
@ -31,10 +32,8 @@ if(CGAL_Qt5_FOUND AND Qt5_FOUND)
include(AddFileDependencies)
qt5_generate_moc("MainWindow.h"
"${CMAKE_CURRENT_BINARY_DIR}/MainWindow_moc.cpp")
add_file_dependencies(MainWindow_moc.cpp
"${CMAKE_CURRENT_SOURCE_DIR}/MainWindow.h")
qt5_generate_moc("MainWindow.h" "${CMAKE_CURRENT_BINARY_DIR}/MainWindow_moc.cpp")
add_file_dependencies(MainWindow_moc.cpp "${CMAKE_CURRENT_SOURCE_DIR}/MainWindow.h")
qt5_generate_moc("Viewer.h" "${CMAKE_CURRENT_BINARY_DIR}/Viewer_moc.cpp")
add_file_dependencies(Viewer_moc.cpp "${CMAKE_CURRENT_SOURCE_DIR}/Viewer.h")
@ -62,8 +61,7 @@ if(CGAL_Qt5_FOUND AND Qt5_FOUND)
include(${CGAL_MODULES_DIR}/CGAL_add_test.cmake)
cgal_add_compilation_test(AABB_demo)
else(CGAL_Qt5_FOUND
AND Qt5_FOUND)
else(CGAL_Qt5_FOUND AND Qt5_FOUND)
set(AABB_MISSING_DEPS "")
@ -75,11 +73,6 @@ else(CGAL_Qt5_FOUND
set(AABB_MISSING_DEPS "Qt5, ${AABB_MISSING_DEPS}")
endif()
message(
STATUS
"NOTICE: This demo requires ${AABB_MISSING_DEPS}and will not be compiled."
)
message("NOTICE: This demo requires ${AABB_MISSING_DEPS}, and will not be compiled.")
endif(
CGAL_Qt5_FOUND
AND Qt5_FOUND)
endif(CGAL_Qt5_FOUND AND Qt5_FOUND)

View File

@ -4,15 +4,13 @@ project(Algebraic_kernel_d_Examples)
find_package(CGAL REQUIRED COMPONENTS Core)
find_package(MPFI QUIET)
if(MPFI_FOUND AND NOT CGAL_DISABLE_GMP)
include(${MPFI_USE_FILE})
include(CGAL_VersionUtils)
create_single_source_cgal_program("Compare_1.cpp")
create_single_source_cgal_program("Construct_algebraic_real_1.cpp")
create_single_source_cgal_program("Isolate_1.cpp")
create_single_source_cgal_program("Sign_at_1.cpp")
create_single_source_cgal_program("Solve_1.cpp")
else()
message(STATUS "This program requires the CGAL, CGAL_Core and MPFI libraries, and will not be compiled.")
message("NOTICE: This project requires the MPFI library and GMP support, and will not be compiled.")
endif()

View File

@ -4,48 +4,33 @@ project(Algebraic_kernel_d_Tests)
# CGAL and its components
find_package(CGAL REQUIRED COMPONENTS Core)
find_package(RS3 QUIET)
find_package(MPFI QUIET)
if(MPFI_FOUND)
message(STATUS "Found MPFI")
include(${MPFI_USE_FILE})
endif()
find_package(RS3 QUIET)
if(RS3_FOUND)
message(STATUS "Found RS3")
include(${RS3_USE_FILE})
endif()
# Boost and its components
find_package(Boost)
if(NOT Boost_FOUND)
message(
STATUS "This project requires the Boost library, and will not be compiled.")
return()
endif()
# include for local directory
include_directories(BEFORE include)
# Creating entries for all .cpp/.C files with "main" routine
# ##########################################################
create_single_source_cgal_program("cyclic.cpp")
create_single_source_cgal_program("Descartes.cpp")
if(NOT CGAL_DISABLE_GMP)
create_single_source_cgal_program("Algebraic_curve_kernel_2.cpp")
create_single_source_cgal_program("algebraic_curve_kernel_2_tools.cpp")
create_single_source_cgal_program("Algebraic_kernel_d_1_LEDA.cpp")
create_single_source_cgal_program(
"Algebraic_kernel_d_1_CORE_Integer_rational.cpp")
create_single_source_cgal_program(
"Algebraic_kernel_d_1_CORE_SqrtII_rational.cpp")
create_single_source_cgal_program(
"Algebraic_kernel_d_1_CORE_SqrtRI_rational.cpp")
create_single_source_cgal_program(
"Algebraic_kernel_d_1_CORE_SqrtRR_rational.cpp")
create_single_source_cgal_program("Algebraic_kernel_d_1_CORE_Integer_rational.cpp")
create_single_source_cgal_program("Algebraic_kernel_d_1_CORE_SqrtII_rational.cpp")
create_single_source_cgal_program("Algebraic_kernel_d_1_CORE_SqrtRI_rational.cpp")
create_single_source_cgal_program("Algebraic_kernel_d_1_CORE_SqrtRR_rational.cpp")
create_single_source_cgal_program("Algebraic_kernel_d_1_GMP.cpp")
create_single_source_cgal_program("Algebraic_kernel_d_2.cpp")
@ -54,14 +39,13 @@ if(NOT CGAL_DISABLE_GMP)
create_single_source_cgal_program("Curve_analysis_2.cpp")
create_single_source_cgal_program("Curve_pair_analysis_2.cpp")
create_single_source_cgal_program("Real_embeddable_traits_extension.cpp")
if(RS_FOUND)
create_single_source_cgal_program("Algebraic_kernel_rs_gmpq_d_1.cpp")
create_single_source_cgal_program("Algebraic_kernel_rs_gmpz_d_1.cpp")
else()
message(
STATUS
"NOTICE: Some tests require the RS library, and will not be compiled.")
message(STATUS "NOTICE: Some tests require the RS library, and will not be compiled.")
endif()
else()
message(STATUS "NOTICE: Some tests require the CGAL_Core library, and will not be compiled.")
message(STATUS "NOTICE: Some tests require GMP support, and will not be compiled.")
endif()

View File

@ -6,6 +6,7 @@ project(Alpha_shapes_3_Demo)
# Find includes in corresponding build directories
set(CMAKE_INCLUDE_CURRENT_DIR ON)
# Instruct CMake to run moc automatically when needed.
set(CMAKE_AUTOMOC ON)
if(NOT POLICY CMP0070 AND POLICY CMP0053)
@ -46,8 +47,6 @@ if(CGAL_Qt5_FOUND AND Qt5_FOUND)
else()
message(
STATUS "NOTICE: This demo requires CGAL, and Qt5, and will not be compiled."
)
message("NOTICE: This demo requires CGAL and Qt5, and will not be compiled.")
endif()

View File

@ -6,7 +6,7 @@ project(Arithmetic_kernel_Tests)
find_package(CGAL REQUIRED COMPONENTS Core)
find_package(GMP QUIET)
find_package(GMP)
if(GMP_FOUND)
@ -18,7 +18,7 @@ if(GMP_FOUND)
include_directories(include)
find_package(MPFI)
find_package(MPFI QUIET)
if(MPFI_FOUND)
include(${MPFI_USE_FILE})
@ -27,16 +27,13 @@ if(GMP_FOUND)
# version needs GMP>=4.2, so we require this dependency only here and
# not in FindMPFI.cmake
if(_IS_GMP_VERSION_TO_LOW)
message(
STATUS
"MPFI tests need GMP>=4.2, some of the tests will not be compiled")
message(STATUS "NOTICE: MPFI tests need GMP>=4.2, some of the tests will not be compiled")
else(_IS_GMP_VERSION_TO_LOW)
include(${MPFI_USE_FILE})
create_single_source_cgal_program("GMP_arithmetic_kernel.cpp")
endif(_IS_GMP_VERSION_TO_LOW)
else(MPFI_FOUND)
message(
STATUS "MPFI is not present, some of the tests will not be compiled.")
message(STATUS "NOTICE: MPFI is not present, some of the tests will not be compiled.")
endif(MPFI_FOUND)
create_single_source_cgal_program("Arithmetic_kernel.cpp")
@ -46,7 +43,6 @@ if(GMP_FOUND)
else()
message(
STATUS "This program requires the CGAL library, and will not be compiled.")
message("NOTICE: This project requires GMP support, and will not be compiled.")
endif()

View File

@ -1,7 +1,7 @@
#ifndef LEXICAL_CAST_HPP
#define LEXICAL_CAST_HPP
/*! This files provides lexical casts from std::string to any one of the number
/*! This file provides lexical casts from std::string to any one of the number
* types we intend to use in the benchmark, and a lexical cast does not exist.
* It is inspired by boost::lexical_cast
*/

View File

@ -12,10 +12,10 @@ if(POLICY CMP0071)
cmake_policy(SET CMP0071 NEW)
endif()
find_package(CGAL QUIET COMPONENTS Qt5 OPTIONAL_COMPONENTS Core)
find_package(CGAL REQUIRED OPTIONAL_COMPONENTS Core Qt5)
find_package(Qt5 QUIET COMPONENTS Gui Widgets)
if (CGAL_FOUND AND CGAL_Qt5_FOUND AND Qt5_FOUND)
if (CGAL_Qt5_FOUND AND Qt5_FOUND)
include(${CGAL_USE_FILE})
add_compile_definitions(QT_NO_KEYWORDS)
include_directories( BEFORE ./ )
@ -110,10 +110,10 @@ if (CGAL_FOUND AND CGAL_Qt5_FOUND AND Qt5_FOUND)
${CGAL_Qt5_RESOURCE_FILES}
${CGAL_Qt5_MOC_FILES})
target_link_libraries(arrangement_2 Qt5::Core Qt5::Gui Qt5::Widgets)
target_link_libraries(arrangement_2 CGAL::CGAL CGAL::CGAL_Qt5)
target_link_libraries(arrangement_2 PRIVATE Qt5::Core Qt5::Gui Qt5::Widgets)
target_link_libraries(arrangement_2 PRIVATE CGAL::CGAL CGAL::CGAL_Qt5)
if(CGAL_Core_FOUND)
target_link_libraries(arrangement_2 CGAL::CGAL_Core)
target_link_libraries(arrangement_2 PRIVATE CGAL::CGAL_Core)
endif()
add_to_cached_list(CGAL_EXECUTABLE_TARGETS arrangement_2)
@ -124,15 +124,11 @@ if (CGAL_FOUND AND CGAL_Qt5_FOUND AND Qt5_FOUND)
else()
set(MISSING_DEPS "")
if(NOT CGAL_FOUND)
set(MISSING_DEPS "CGAL, ${MISSING_DEPS}")
endif()
if(NOT CGAL_Qt5_FOUND)
set(MISSING_DEPS "the CGAL Qt5 library, ${MISSING_DEPS}")
endif()
if(NOT Qt5_FOUND)
set(MISSING_DEPS "Qt5, ${MISSING_DEPS}")
endif()
message(STATUS
"NOTICE: This demo requires ${MISSING_DEPS} and will not be compiled.")
message("NOTICE: This demo requires ${MISSING_DEPS} and will not be compiled.")
endif()

View File

@ -1,7 +1,7 @@
#ifndef CGAL_TEST_CONFIGURATION_H
#define CGAL_TEST_CONFIGURATION_H
/*! This files contains define statements, include statement, and typedef
/*! This file contains define statements, include statement, and typedef
* of the number types, kernel, and traits used.
*
*/

View File

@ -7,23 +7,6 @@ project(BGL_LCC_Examples)
# CGAL and its components
find_package(CGAL REQUIRED)
# Boost and its components
find_package(Boost REQUIRED)
if(NOT Boost_FOUND)
message(
STATUS "This project requires the Boost library, and will not be compiled.")
return()
endif()
# include for local directory
# Creating entries for all C++ files with "main" routine
# ##########################################################
# create a target per cppfile
file(
GLOB_RECURSE cppfiles

View File

@ -7,38 +7,11 @@ project(BGL_OpenMesh_Examples)
# CGAL and its components
find_package(CGAL REQUIRED)
# Boost and its components
find_package(Boost REQUIRED)
if(NOT Boost_FOUND)
message(
STATUS "This project requires the Boost library, and will not be compiled.")
return()
endif()
find_package(OpenMesh QUIET)
find_package(OpenMesh)
if(OpenMesh_FOUND)
include(UseOpenMesh)
else()
message(
STATUS "NOTICE: These examples require OpenMesh and will not be compiled.")
return()
endif()
# include for local directory
# include for local package
# Creating entries for all C++ files with "main" routine
# ##########################################################
if(OpenMesh_FOUND)
create_single_source_cgal_program("TriMesh.cpp")
target_link_libraries(TriMesh PRIVATE ${OPENMESH_LIBRARIES})
else()
message("NOTICE: This project requires OpenMesh and will not be compiled.")
endif()

View File

@ -8,25 +8,5 @@ project(BGL_graphcut_Examples)
# CGAL and its components
find_package(CGAL REQUIRED)
# Boost and its components
find_package(Boost REQUIRED)
if(NOT Boost_FOUND)
message(
STATUS "This project requires the Boost library, and will not be compiled.")
return()
endif()
# include for local directory
# include for local package
# Creating entries for all C++ files with "main" routine
# ##########################################################
create_single_source_cgal_program("alpha_expansion_example.cpp")
create_single_source_cgal_program(
"face_selection_borders_regularization_example.cpp")
create_single_source_cgal_program("face_selection_borders_regularization_example.cpp")

View File

@ -7,54 +7,28 @@ project(BGL_polyhedron_3_Examples)
# CGAL and its components
find_package(CGAL REQUIRED)
# Boost and its components
find_package(Boost REQUIRED)
if(NOT Boost_FOUND)
message(
STATUS "This project requires the Boost library, and will not be compiled.")
return()
endif()
# include for local directory
# include for local package
# Creating entries for all C++ files with "main" routine
# ##########################################################
create_single_source_cgal_program("distance.cpp")
create_single_source_cgal_program("incident_vertices.cpp")
create_single_source_cgal_program("kruskal.cpp")
create_single_source_cgal_program("kruskal_with_stored_id.cpp")
create_single_source_cgal_program("normals.cpp")
create_single_source_cgal_program("range.cpp")
create_single_source_cgal_program("transform_iterator.cpp")
create_single_source_cgal_program("copy_polyhedron.cpp")
find_package( OpenMesh QUIET )
find_package(OpenMesh QUIET)
if(OpenMesh_FOUND)
target_link_libraries( copy_polyhedron PRIVATE ${OPENMESH_LIBRARIES} )
target_compile_definitions( copy_polyhedron PRIVATE -DCGAL_USE_OPENMESH )
target_link_libraries(copy_polyhedron PRIVATE ${OPENMESH_LIBRARIES})
target_compile_definitions(copy_polyhedron PRIVATE -DCGAL_USE_OPENMESH)
else()
message(STATUS "Examples that use OpenMesh will not be compiled.")
message(STATUS "NOTICE: The example 'copy_polyhedron' will not use OpenMesh.")
endif()
find_package( METIS )
find_package(METIS QUIET)
include(CGAL_METIS_support)
if( TARGET CGAL::METIS_support )
create_single_source_cgal_program( "polyhedron_partition.cpp" )
target_link_libraries( polyhedron_partition PUBLIC CGAL::METIS_support)
if(TARGET CGAL::METIS_support)
create_single_source_cgal_program("polyhedron_partition.cpp")
target_link_libraries(polyhedron_partition PUBLIC CGAL::METIS_support)
else()
message( STATUS "Examples that use the METIS library will not be compiled." )
message(STATUS "NOTICE: The example 'polyhedron_partition' requires the METIS library, and will not be compiled.")
endif()

View File

@ -3,8 +3,6 @@ project(BGL_surface_mesh_Examples)
find_package(CGAL REQUIRED)
# include for local package
create_single_source_cgal_program("prim.cpp")
create_single_source_cgal_program("gwdwg.cpp")
create_single_source_cgal_program("seam_mesh.cpp")
@ -12,11 +10,11 @@ create_single_source_cgal_program("write_inp.cpp")
create_single_source_cgal_program("surface_mesh_dual.cpp")
create_single_source_cgal_program("connected_components.cpp")
find_package(METIS)
find_package(METIS QUIET)
include(CGAL_METIS_support)
if( TARGET CGAL::METIS_support )
create_single_source_cgal_program( "surface_mesh_partition.cpp" )
target_link_libraries( surface_mesh_partition PUBLIC CGAL::METIS_support )
if(TARGET CGAL::METIS_support)
create_single_source_cgal_program("surface_mesh_partition.cpp")
target_link_libraries(surface_mesh_partition PUBLIC CGAL::METIS_support)
else()
message(STATUS "Examples that use the METIS library will not be compiled.")
message(STATUS "NOTICE: Examples that use the METIS library will not be compiled.")
endif()

View File

@ -7,100 +7,44 @@ project(BGL_Tests)
# CGAL and its components
find_package(CGAL REQUIRED)
# Boost and its components
find_package(Boost)
if(NOT Boost_FOUND)
message(
STATUS "This project requires the Boost library, and will not be compiled.")
return()
endif()
create_single_source_cgal_program("test_split.cpp")
create_single_source_cgal_program("next.cpp")
create_single_source_cgal_program("test_circulator.cpp")
create_single_source_cgal_program("test_Gwdwg.cpp")
create_single_source_cgal_program("test_bgl_dual.cpp")
create_single_source_cgal_program("graph_concept_Polyhedron_3.cpp")
create_single_source_cgal_program("graph_concept_Dual.cpp")
create_single_source_cgal_program("graph_concept_Triangulation_2.cpp")
create_single_source_cgal_program("graph_concept_Surface_mesh.cpp")
create_single_source_cgal_program("graph_concept_Seam_mesh_Surface_mesh.cpp")
create_single_source_cgal_program("graph_concept_Gwdwg_Surface_mesh.cpp")
create_single_source_cgal_program("graph_concept_Linear_cell_complex.cpp")
create_single_source_cgal_program("graph_concept_Arrangement_2.cpp")
create_single_source_cgal_program("graph_concept_Derived.cpp" )
create_single_source_cgal_program("test_clear.cpp" )
create_single_source_cgal_program("test_helpers.cpp")
create_single_source_cgal_program("test_Has_member_clear.cpp")
create_single_source_cgal_program("test_Has_member_id.cpp")
create_single_source_cgal_program("test_bgl_read_write.cpp")
create_single_source_cgal_program("graph_concept_Face_filtered_graph.cpp")
create_single_source_cgal_program("test_Manifold_face_removal.cpp")
create_single_source_cgal_program("test_Regularize_face_selection_borders.cpp")
create_single_source_cgal_program("test_Face_filtered_graph.cpp")
create_single_source_cgal_program("test_Euler_operations.cpp")
create_single_source_cgal_program("test_test_face.cpp" )
create_single_source_cgal_program("test_Collapse_edge.cpp" )
create_single_source_cgal_program("test_Collapse_edge_with_constraints.cpp" )
create_single_source_cgal_program("test_graph_traits.cpp")
create_single_source_cgal_program("test_Properties.cpp")
create_single_source_cgal_program("bench_read_from_stream_vs_add_face_and_add_faces.cpp")
create_single_source_cgal_program("graph_traits_inheritance.cpp" )
create_single_source_cgal_program("test_deprecated_io.cpp")
find_package(OpenMesh QUIET)
if(OpenMesh_FOUND)
include(UseOpenMesh)
add_definitions(-DCGAL_USE_OPENMESH)
else()
message(STATUS "Tests that use OpenMesh will not be compiled.")
endif()
# include for local package
# Creating entries for all .cpp/.C files with "main" routine
# ##########################################################
if(OpenMesh_FOUND)
create_single_source_cgal_program("graph_concept_OpenMesh.cpp")
target_link_libraries(graph_concept_OpenMesh PRIVATE ${OPENMESH_LIBRARIES})
endif()
create_single_source_cgal_program("test_split.cpp")
create_single_source_cgal_program("next.cpp")
create_single_source_cgal_program("test_circulator.cpp")
create_single_source_cgal_program("test_Gwdwg.cpp")
create_single_source_cgal_program("test_bgl_dual.cpp")
create_single_source_cgal_program("graph_concept_Polyhedron_3.cpp")
create_single_source_cgal_program("graph_concept_Dual.cpp")
create_single_source_cgal_program("graph_concept_Triangulation_2.cpp")
create_single_source_cgal_program("graph_concept_Surface_mesh.cpp")
create_single_source_cgal_program("graph_concept_Seam_mesh_Surface_mesh.cpp")
create_single_source_cgal_program("graph_concept_Gwdwg_Surface_mesh.cpp")
create_single_source_cgal_program("graph_concept_Linear_cell_complex.cpp")
create_single_source_cgal_program("graph_concept_Arrangement_2.cpp")
create_single_source_cgal_program( "graph_concept_Derived.cpp" )
create_single_source_cgal_program( "test_clear.cpp" )
create_single_source_cgal_program("test_helpers.cpp")
create_single_source_cgal_program("test_Has_member_clear.cpp")
create_single_source_cgal_program("test_Has_member_id.cpp")
create_single_source_cgal_program("test_bgl_read_write.cpp")
create_single_source_cgal_program("graph_concept_Face_filtered_graph.cpp")
create_single_source_cgal_program("test_Manifold_face_removal.cpp")
create_single_source_cgal_program("test_Regularize_face_selection_borders.cpp")
create_single_source_cgal_program("test_Face_filtered_graph.cpp")
create_single_source_cgal_program("test_Euler_operations.cpp")
create_single_source_cgal_program( "test_test_face.cpp" )
create_single_source_cgal_program( "test_Collapse_edge.cpp" )
create_single_source_cgal_program( "test_Collapse_edge_with_constraints.cpp" )
create_single_source_cgal_program("test_graph_traits.cpp")
create_single_source_cgal_program("test_Properties.cpp")
create_single_source_cgal_program(
"bench_read_from_stream_vs_add_face_and_add_faces.cpp")
create_single_source_cgal_program( "graph_traits_inheritance.cpp" )
create_single_source_cgal_program("test_deprecated_io.cpp")
if(OpenMesh_FOUND)
target_link_libraries(test_clear PRIVATE ${OPENMESH_LIBRARIES})
target_compile_definitions(test_clear PRIVATE -DCGAL_USE_OPENMESH)
target_link_libraries(test_Euler_operations PRIVATE ${OPENMESH_LIBRARIES})
@ -115,6 +59,11 @@ if(OpenMesh_FOUND)
target_compile_definitions(test_Properties PRIVATE -DCGAL_USE_OPENMESH)
target_link_libraries(test_bgl_read_write PRIVATE ${OPENMESH_LIBRARIES})
target_compile_definitions(test_bgl_read_write PRIVATE -DCGAL_USE_OPENMESH)
create_single_source_cgal_program("graph_concept_OpenMesh.cpp")
target_link_libraries(graph_concept_OpenMesh PRIVATE ${OPENMESH_LIBRARIES})
else()
message(STATUS "NOTICE: Tests that use OpenMesh will not be compiled.")
endif()
find_package(VTK QUIET COMPONENTS vtkCommonCore vtkIOCore vtkIOLegacy vtkIOXML vtkFiltersCore vtkFiltersSources)
@ -150,5 +99,5 @@ if(3MF_LIBRARIES AND 3MF_INCLUDE_DIR AND EXISTS "${3MF_INCLUDE_DIR}/Model/COM/N
target_link_libraries(test_3mf_to_sm PRIVATE ${3MF_LIBRARIES})
target_compile_definitions(test_3mf_to_sm PRIVATE -DCGAL_LINKED_WITH_3MF)
else()
message(STATUS "NOTICE : This program requires the lib3MF library, and will not be compiled.")
message(STATUS "NOTICE: The test 'test_3mf_to_sm' requires the lib3MF library, and will not be compiled.")
endif()

View File

@ -6,8 +6,6 @@ project(Barycentric_coordinates_2_Benchmarks)
cmake_minimum_required(VERSION 3.1...3.23)
find_package(CGAL REQUIRED COMPONENTS Core)
include(${CGAL_USE_FILE})
include(CGAL_CreateSingleSourceCGALProgram)
create_single_source_cgal_program("benchmark_segment_coordinates.cpp")
create_single_source_cgal_program("benchmark_triangle_coordinates.cpp")
@ -19,12 +17,10 @@ create_single_source_cgal_program("benchmark_mv_34_vertices.cpp")
find_package(Eigen3 3.1.0 QUIET) # (3.1.0 or greater)
include(CGAL_Eigen3_support)
if(TARGET CGAL::Eigen3_support)
create_single_source_cgal_program("benchmark_hm_4_vertices.cpp")
target_link_libraries(benchmark_hm_4_vertices PUBLIC CGAL::Eigen3_support)
create_single_source_cgal_program("benchmark_hm_n_vertices.cpp")
target_link_libraries(benchmark_hm_n_vertices PUBLIC CGAL::Eigen3_support)
else()
message(NOTICE "Several coordinates require the Eigen library, and will not be compiled.")
message(STATUS "NOTICE: Several benchmarks require the Eigen library, and will not be compiled.")
endif()

View File

@ -20,14 +20,12 @@ create_single_source_cgal_program("deprecated_coordinates.cpp")
find_package(Eigen3 3.1.0 QUIET) # (3.1.0 or greater)
include(CGAL_Eigen3_support)
if(TARGET CGAL::Eigen3_support)
create_single_source_cgal_program("affine_coordinates.cpp")
target_link_libraries(affine_coordinates PUBLIC CGAL::Eigen3_support)
create_single_source_cgal_program("harmonic_coordinates.cpp")
target_link_libraries(harmonic_coordinates PUBLIC CGAL::Eigen3_support)
create_single_source_cgal_program("shape_deformation.cpp")
target_link_libraries(shape_deformation PUBLIC CGAL::Eigen3_support)
else()
message(NOTICE "Several coordinates require the Eigen library, and will not be compiled.")
message(STATUS "NOTICE: Several examples require the Eigen library, and will not be compiled.")
endif()

View File

@ -45,7 +45,6 @@ create_single_source_cgal_program("test_dh_deprecated_api.cpp")
find_package(Eigen3 3.1.0 QUIET) # (3.1.0 or greater)
include(CGAL_Eigen3_support)
if(TARGET CGAL::Eigen3_support)
create_single_source_cgal_program("test_hm_unit_square.cpp")
target_link_libraries(test_hm_unit_square PUBLIC CGAL::Eigen3_support)
create_single_source_cgal_program("test_hm_const_linear_precision.cpp")
@ -56,7 +55,6 @@ if(TARGET CGAL::Eigen3_support)
target_link_libraries(test_bc_projection_traits PUBLIC CGAL::Eigen3_support)
create_single_source_cgal_program("test_bc_all_coordinates.cpp")
target_link_libraries(test_bc_all_coordinates PUBLIC CGAL::Eigen3_support)
else()
message(NOTICE "Several coordinates require the Eigen library, and will not be compiled.")
message(STATUS "NOTICE: Several tests require the Eigen library, and will not be compiled.")
endif()

View File

@ -18,8 +18,5 @@ endforeach()
if(CGAL_Qt5_FOUND)
target_link_libraries(draw_polygon_set PUBLIC CGAL::CGAL_Basic_viewer)
else()
message(
STATUS
"NOTICE: The example draw_polygon_set requires Qt and drawing will be disabled."
)
message(STATUS "NOTICE: The example 'draw_polygon_set' requires Qt and drawing will be disabled.")
endif()

View File

@ -6,18 +6,16 @@ project(Box_intersection_d_Tests)
find_package(CGAL REQUIRED)
find_package(TBB)
include(CGAL_TBB_support)
create_single_source_cgal_program("automated_test.cpp")
create_single_source_cgal_program("benchmark_box_intersection.cpp")
create_single_source_cgal_program("random_set_test.cpp")
create_single_source_cgal_program("test_box_grid.cpp")
create_single_source_cgal_program("test_Has_member_report.cpp")
find_package(TBB QUIET)
include(CGAL_TBB_support)
if(TARGET CGAL::TBB_support)
target_link_libraries(test_box_grid PUBLIC CGAL::TBB_support)
else()
message(
STATUS "NOTICE: Intel TBB was not found. Sequential code will be used.")
message(STATUS "NOTICE: Intel TBB was not found. Parallel code will not be used.")
endif()

View File

@ -5,27 +5,8 @@ project(Core_Examples)
find_package(CGAL REQUIRED COMPONENTS Core)
if(NOT CGAL_Core_FOUND)
message(
STATUS
"This project requires the CGAL_Core library, and will not be compiled.")
message("NOTICE: This project requires the CGAL_Core library, and will not be compiled.")
return()
endif()
# Boost and its components
find_package(Boost)
if(NOT Boost_FOUND)
message(
STATUS "This project requires the Boost library, and will not be compiled.")
return()
endif()
# Creating entries for all .cpp/.C files with "main" routine
# ##########################################################
create_single_source_cgal_program("delaunay.cpp")

View File

@ -6,15 +6,7 @@ project(CGALimageIO_Examples)
find_package(CGAL REQUIRED COMPONENTS ImageIO)
if(CGAL_ImageIO_FOUND)
create_single_source_cgal_program("convert_raw_image_to_inr.cpp")
create_single_source_cgal_program("test_imageio.cpp")
create_single_source_cgal_program("extract_a_sub_image.cpp")
create_single_source_cgal_program("slice_image.cpp")
else()
message(
STATUS
"NOTICE: This demo needs the CGAL ImageIO library, and will not be compiled."
)
endif()
create_single_source_cgal_program("convert_raw_image_to_inr.cpp")
create_single_source_cgal_program("test_imageio.cpp")
create_single_source_cgal_program("extract_a_sub_image.cpp")
create_single_source_cgal_program("slice_image.cpp")

View File

@ -9,8 +9,5 @@ find_package(CGAL REQUIRED COMPONENTS ImageIO)
if(WITH_CGAL_ImageIO)
create_single_source_cgal_program("test_trilinear_interpolation.cpp")
else()
message(
STATUS
"NOTICE: Some tests require the CGAL_ImageIO library, and will not be compiled."
)
message("NOTICE: This project requires the CGAL_ImageIO library, and will not be compiled.")
endif()

View File

@ -22,26 +22,21 @@ find_package(CGAL REQUIRED COMPONENTS Core)
include(${CGAL_USE_FILE})
find_package(Eigen3 3.1.0) #(requires 3.1.0 or greater)
find_package(Eigen3 3.1.0 QUIET) #(requires 3.1.0 or greater)
include(CGAL_Eigen3_support)
if(NOT TARGET CGAL::Eigen3_support)
message(
STATUS
"NOTICE: This project requires the Eigen library, and will not be compiled."
)
message("NOTICE: This project requires the Eigen library, and will not be compiled.")
return()
endif()
find_package(IPE 7)
if(IPE_FOUND)
if ( NOT ${IPE_VERSION} EQUAL "7")
message("-- Error: ${IPE_VERSION} is not a supported version of IPE (only 7 is).")
if(NOT ${IPE_VERSION} EQUAL "7")
message("NOTICE: ${IPE_VERSION} is not a supported version of IPE (only 7 is).")
set(IPE_FOUND FALSE)
endif()
endif()
if(IPE_FOUND AND IPE_VERSION)
message("-- Using IPE version ${IPE_VERSION} compatibility.")
@ -119,5 +114,5 @@ if(IPE_FOUND AND IPE_VERSION)
cgal_add_compilation_test(simple_triangulation)
else()
message(STATUS "NOTICE: This program requires the Ipe include files and library, and will not be compiled.")
message("NOTICE: This project requires the Ipe include files and library, and will not be compiled.")
endif()

View File

@ -33,8 +33,6 @@ if(CGAL_Qt5_FOUND AND Qt5_FOUND)
else()
message(
STATUS "NOTICE: This demo requires CGAL, and Qt5, and will not be compiled."
)
message("NOTICE: This demo requires CGAL and Qt5, and will not be compiled.")
endif()

View File

@ -701,7 +701,13 @@ typedef Iterator_from_circulator< C, const_reference, const_pointer>
template <class Container>
class Circulator_from_container {
typedef Circulator_from_container<Container> Self;
typedef typename Container::iterator iterator;
typedef typename Container::iterator container_iterator;
typedef typename Container::const_iterator container_const_iterator;
typedef std::conditional_t<
std::is_const<Container>::value,
container_const_iterator,
container_iterator
> iterator;
typedef std::iterator_traits<iterator> iterator_traits;
public:
typedef typename iterator_traits::value_type value_type;

View File

@ -7,15 +7,6 @@ project(Classification_Examples)
# CGAL and its components
find_package(CGAL REQUIRED)
# Boost and its components
find_package(Boost REQUIRED)
if(NOT Boost_FOUND)
message(
STATUS "This project requires the Boost library, and will not be compiled.")
return()
endif()
set(Classification_dependencies_met TRUE)
find_package(Boost OPTIONAL_COMPONENTS serialization iostreams)
@ -23,44 +14,29 @@ include(CGAL_Boost_serialization_support)
include(CGAL_Boost_iostreams_support)
if(NOT TARGET CGAL::Boost_serialization_support)
message(
STATUS
"NOTICE: This project requires Boost Serialization, and will not be compiled."
)
message("NOTICE: This project requires Boost Serialization, and will not be compiled.")
set(Classification_dependencies_met FALSE)
endif()
if(NOT TARGET CGAL::Boost_iostreams_support)
message(
STATUS
"NOTICE: This project requires Boost IO Streams, and will not be compiled."
)
message("NOTICE: This project requires Boost IO Streams, and will not be compiled.")
set(Classification_dependencies_met FALSE)
endif()
find_package(OpenCV QUIET COMPONENTS core ml) # Need core + machine learning
include(CGAL_OpenCV_support)
if(NOT TARGET CGAL::OpenCV_support)
message(
STATUS
"NOTICE: OpenCV was not found. OpenCV random forest predicate for classification won't be available."
)
endif()
find_package(Eigen3 3.1.0 REQUIRED) #(3.1.0 or greater)
find_package(Eigen3 3.1.0 QUIET) #(3.1.0 or greater)
include(CGAL_Eigen3_support)
if(NOT TARGET CGAL::Eigen3_support)
message(
STATUS "This project requires the Eigen library, and will not be compiled.")
message("NOTICE: This project requires the Eigen library, and will not be compiled.")
set(Classification_dependencies_met FALSE)
endif()
find_package(TBB QUIET)
include(CGAL_TBB_support)
if(NOT Classification_dependencies_met)
return()
endif()
find_package(TBB QUIET)
include(CGAL_TBB_support)
create_single_source_cgal_program( "example_classification.cpp" )
create_single_source_cgal_program( "example_ethz_random_forest.cpp" )
create_single_source_cgal_program( "example_feature.cpp" )
@ -70,10 +46,15 @@ create_single_source_cgal_program( "example_cluster_classification.cpp" )
create_single_source_cgal_program( "gis_tutorial_example.cpp" )
create_single_source_cgal_program( "example_deprecated_conversion.cpp" )
if (TARGET CGAL::OpenCV_support)
find_package(OpenCV QUIET COMPONENTS core ml) # Need core + machine learning
include(CGAL_OpenCV_support)
if(TARGET CGAL::OpenCV_support)
message(STATUS "Found OpenCV")
create_single_source_cgal_program( "example_opencv_random_forest.cpp" )
target_link_libraries(example_opencv_random_forest
PUBLIC CGAL::OpenCV_support)
target_link_libraries(example_opencv_random_forest PUBLIC CGAL::OpenCV_support)
else()
message("NOTICE: OpenCV was not found. OpenCV random forest predicate for classification won't be available.")
endif()
foreach(target
@ -87,9 +68,9 @@ foreach(target
gis_tutorial_example
example_deprecated_conversion)
if(TARGET ${target})
target_link_libraries(
${target} PUBLIC CGAL::Eigen3_support CGAL::Boost_iostreams_support
CGAL::Boost_serialization_support)
target_link_libraries(${target} PUBLIC CGAL::Eigen3_support
CGAL::Boost_iostreams_support
CGAL::Boost_serialization_support)
if(TARGET CGAL::TBB_support)
target_link_libraries(${target} PUBLIC CGAL::TBB_support)
endif()

View File

@ -7,15 +7,6 @@ project(Classification_Tests)
# CGAL and its components
find_package(CGAL REQUIRED)
# Boost and its components
find_package(Boost REQUIRED)
if(NOT Boost_FOUND)
message(
STATUS "This project requires the Boost library, and will not be compiled.")
return()
endif()
set(Classification_dependencies_met TRUE)
find_package(Boost OPTIONAL_COMPONENTS serialization iostreams)
@ -23,42 +14,36 @@ include(CGAL_Boost_serialization_support)
include(CGAL_Boost_iostreams_support)
if(NOT TARGET CGAL::Boost_serialization_support)
message(
STATUS
"NOTICE: This project requires Boost Serialization, and will not be compiled."
)
set(Classification_dependencies_met FALSE)
endif()
if(NOT TARGET CGAL::Boost_iostreams_support)
message(
STATUS
"NOTICE: This project requires Boost IO Streams, and will not be compiled."
)
message("NOTICE: This project requires Boost Serialization, and will not be compiled.")
set(Classification_dependencies_met FALSE)
endif()
find_package(Eigen3 3.1.0 REQUIRED) #(3.1.0 or greater)
if(NOT TARGET CGAL::Boost_iostreams_support)
message("NOTICE: This project requires Boost IO Streams, and will not be compiled.")
set(Classification_dependencies_met FALSE)
endif()
find_package(Eigen3 3.1.0 QUIET) #(3.1.0 or greater)
include(CGAL_Eigen3_support)
if(NOT TARGET CGAL::Eigen3_support)
message(
STATUS "This project requires the Eigen library, and will not be compiled.")
message("NOTICE: This project requires the Eigen library, and will not be compiled.")
set(Classification_dependencies_met FALSE)
endif()
find_package(TBB QUIET)
include(CGAL_TBB_support)
if(NOT Classification_dependencies_met)
return()
endif()
find_package(TBB QUIET)
include(CGAL_TBB_support)
create_single_source_cgal_program("test_classification_point_set.cpp")
create_single_source_cgal_program("test_classification_io.cpp")
foreach(target test_classification_point_set test_classification_io)
target_link_libraries(
${target} PUBLIC CGAL::Eigen3_support CGAL::Boost_iostreams_support
CGAL::Boost_serialization_support)
target_link_libraries(${target} PUBLIC CGAL::Eigen3_support
CGAL::Boost_iostreams_support
CGAL::Boost_serialization_support)
if(TARGET CGAL::TBB_support)
target_link_libraries(${target} PUBLIC CGAL::TBB_support)
endif()

View File

@ -27,6 +27,12 @@ cgal_add_compilation_test(Combinatorial_map_copy_test_index)
# Link with OpenMesh if possible
find_package(OpenMesh QUIET)
if(TARGET OpenMesh::OpenMesh)
message(STATUS "Found OpenMesh")
target_link_libraries(Combinatorial_map_copy_test PRIVATE OpenMesh::OpenMesh)
target_compile_definitions(Combinatorial_map_copy_test PRIVATE -DCGAL_USE_OPENMESH)
target_link_libraries(Combinatorial_map_copy_test_index PRIVATE OpenMesh::OpenMesh)
target_compile_definitions(Combinatorial_map_copy_test_index PRIVATE -DCGAL_USE_OPENMESH)
else()
message(STATUS "NOTICE: Tests will not use OpenMesh.")
endif()

View File

@ -1,7 +1,7 @@
cmake_minimum_required(VERSION 3.1...3.23)
project(Cone_spanners_2_Examples)
find_package(CGAL REQUIRED QUIET OPTIONAL_COMPONENTS Core)
find_package(CGAL REQUIRED OPTIONAL_COMPONENTS Core)
find_package(LEDA QUIET)
if(CGAL_Core_FOUND OR LEDA_FOUND)
@ -20,12 +20,6 @@ if(CGAL_Core_FOUND OR LEDA_FOUND)
foreach(cppfile ${cppfiles})
create_single_source_cgal_program("${cppfile}")
endforeach()
else()
message(
STATUS
"This program requires the CGAL_Core library (or LEDA), and will not be compiled."
)
message("NOTICE: This program requires the CGAL_Core library (or LEDA), and will not be compiled.")
endif()

View File

@ -6,23 +6,11 @@ project(Cone_spanners_2_Tests)
find_package(CGAL REQUIRED COMPONENTS Core)
if(CGAL_Core_FOUND)
include_directories(BEFORE "include")
# create a target per cppfile
file(
GLOB cppfiles
RELATIVE ${CMAKE_CURRENT_SOURCE_DIR}
${CMAKE_CURRENT_SOURCE_DIR}/*.cpp)
foreach(cppfile ${cppfiles})
create_single_source_cgal_program("${cppfile}")
endforeach()
else()
message(
STATUS
"This program requires the CGAL and CGAL_Core libraries, and will not be compiled."
)
endif()
# create a target per cppfile
file(
GLOB cppfiles
RELATIVE ${CMAKE_CURRENT_SOURCE_DIR}
${CMAKE_CURRENT_SOURCE_DIR}/*.cpp)
foreach(cppfile ${cppfiles})
create_single_source_cgal_program("${cppfile}")
endforeach()

View File

@ -7,59 +7,27 @@ project(Convex_hull_3_Examples)
# CGAL and its components
find_package(CGAL REQUIRED)
# Boost and its components
find_package(Boost REQUIRED)
if(NOT Boost_FOUND)
message(
STATUS "This project requires the Boost library, and will not be compiled.")
return()
endif()
find_package(OpenMesh QUIET)
if(OpenMesh_FOUND)
include(UseOpenMesh)
else()
message(STATUS "Examples that use OpenMesh will not be compiled.")
endif()
# include for local directory
# include for local package
# Creating entries for all C++ files with "main" routine
# ##########################################################
create_single_source_cgal_program("quickhull_indexed_triangle_set_3.cpp")
create_single_source_cgal_program("dynamic_hull_3.cpp")
create_single_source_cgal_program("dynamic_hull_LCC_3.cpp")
create_single_source_cgal_program("dynamic_hull_SM_3.cpp")
create_single_source_cgal_program("halfspace_intersection_3.cpp")
create_single_source_cgal_program("lloyd_algorithm.cpp")
create_single_source_cgal_program("quickhull_3.cpp")
create_single_source_cgal_program("graph_hull_3.cpp")
create_single_source_cgal_program("quickhull_any_dim_3.cpp")
create_single_source_cgal_program("extreme_points_3_sm.cpp")
create_single_source_cgal_program("extreme_indices_3.cpp")
find_package(OpenMesh QUIET)
if(OpenMesh_FOUND)
create_single_source_cgal_program("quickhull_OM_3.cpp")
create_single_source_cgal_program("dynamic_hull_OM_3.cpp")
include(UseOpenMesh)
message(STATUS "Found OpenMesh")
create_single_source_cgal_program("quickhull_OM_3.cpp")
target_link_libraries(quickhull_OM_3 PRIVATE ${OPENMESH_LIBRARIES})
create_single_source_cgal_program("dynamic_hull_OM_3.cpp")
target_link_libraries(dynamic_hull_OM_3 PRIVATE ${OPENMESH_LIBRARIES})
else()
message(STATUS "NOTICE: Examples that use OpenMesh will not be compiled.")
endif()

View File

@ -6,14 +6,6 @@ project(Convex_hull_3_Tests)
find_package(CGAL REQUIRED)
find_package(OpenMesh QUIET)
if(OpenMesh_FOUND)
include(UseOpenMesh)
else()
message(STATUS "Examples that use OpenMesh will not be compiled.")
endif()
include_directories(BEFORE "include")
# create a target per cppfile

View File

@ -6,7 +6,7 @@ A base can be created using the script `cgal_create_CMakeLists`. Its usage is de
\section seclink Linking with CGAL
To link with the \cgal library, use the following:
\code
find_package(CGAL)
find_package(CGAL REQUIRED)
add_executable(my_executable my_source_file.cpp)
target_link_libraries(my_executable CGAL::CGAL)
\endcode

View File

@ -8,8 +8,6 @@ add_executable(bench_simple_comparisons bench_simple_comparisons.cpp)
find_package(CGAL REQUIRED COMPONENTS Core)
include(${CGAL_USE_FILE})
add_executable(bench_orientation_3 "orientation_3.cpp")
target_link_libraries(bench_orientation_3 ${CGAL_LIBRARIES}
${CGAL_3RD_PARTY_LIBRARIES})

View File

@ -7,20 +7,10 @@ project(Generalized_map_Tests)
# CGAL and its components
find_package(CGAL REQUIRED)
# Boost and its components
find_package(Boost REQUIRED)
if(NOT Boost_FOUND)
message(
STATUS "This project requires the Boost library, and will not be compiled.")
return()
endif()
set(hfiles Generalized_map_2_test.h Generalized_map_3_test.h
Generalized_map_4_test.h GMap_test_insertions.h)
set(hfiles Generalized_map_2_test.h
Generalized_map_3_test.h
Generalized_map_4_test.h
GMap_test_insertions.h)
create_single_source_cgal_program("Generalized_map_test.cpp" ${hfiles})

View File

@ -6,12 +6,17 @@ project(Generator_example)
find_package(CGAL REQUIRED COMPONENTS Core)
include(${CGAL_USE_FILE})
find_package(Boost REQUIRED program_options)
include_directories(${Boost_PROGRAM_OPTIONS_INCLUDE_DIR})
add_definitions("-DCGAL_USE_BOOST_PROGRAM_OPTIONS")
list(APPEND CGAL_3RD_PARTY_LIBRARIES ${Boost_PROGRAM_OPTIONS_LIBRARY})
create_single_source_cgal_program("random_grid.cpp")
create_single_source_cgal_program("random_disc_2.cpp")
find_package(Boost COMPONENTS program_options)
if(Boost_PROGRAM_OPTIONS_FOUND)
create_single_source_cgal_program("random_grid.cpp")
create_single_source_cgal_program("random_disc_2.cpp")
if(TARGET Boost::program_options)
target_link_libraries(random_grid PRIVATE Boost::program_options)
target_link_libraries(random_disc_2 PRIVATE Boost::program_options)
else()
target_link_libraries(random_grid PRIVATE ${Boost_PROGRAM_OPTIONS_LIBRARY})
target_link_libraries(random_disc_2 PRIVATE ${Boost_PROGRAM_OPTIONS_LIBRARY})
endif()
else()
message("NOTICE: The benchmarks requires Boost Program Options, and will not be compiled.")
endif()

View File

@ -6,23 +6,34 @@ project(Generator_Examples)
find_package(CGAL REQUIRED)
# Use Eigen
create_single_source_cgal_program("ball_d.cpp")
create_single_source_cgal_program("combination_enumerator.cpp")
create_single_source_cgal_program("cube_d.cpp")
create_single_source_cgal_program("grid_d.cpp")
create_single_source_cgal_program("name_pairs.cpp")
create_single_source_cgal_program("random_convex_hull_2.cpp")
create_single_source_cgal_program("random_convex_set.cpp")
create_single_source_cgal_program("random_degenerate_point_set.cpp")
create_single_source_cgal_program("random_grid.cpp")
create_single_source_cgal_program("random_points_in_triangles_2.cpp")
create_single_source_cgal_program("random_points_in_triangles_3.cpp")
create_single_source_cgal_program("random_points_on_triangle_mesh_2.cpp")
create_single_source_cgal_program("random_points_on_triangle_mesh_3.cpp")
create_single_source_cgal_program("random_points_tetrahedron_and_triangle_3.cpp")
create_single_source_cgal_program("random_points_triangle_2.cpp")
create_single_source_cgal_program("random_polygon2.cpp")
create_single_source_cgal_program("random_polygon.cpp")
create_single_source_cgal_program("random_segments1.cpp")
create_single_source_cgal_program("random_segments2.cpp")
create_single_source_cgal_program("sphere_d.cpp")
find_package(Eigen3 3.1.0 QUIET) #(3.1.0 or greater)
include(CGAL_Eigen3_support)
# create a target per cppfile
file(
GLOB cppfiles
RELATIVE ${CMAKE_CURRENT_SOURCE_DIR}
${CMAKE_CURRENT_SOURCE_DIR}/*.cpp)
foreach(cppfile ${cppfiles})
if(NOT (${cppfile} STREQUAL "random_points_in_tetrahedral_mesh_3.cpp")
OR NOT (${cppfile} STREQUAL "random_points_on_tetrahedral_mesh_3.cpp")
OR TARGET CGAL::Eigen3_support)
create_single_source_cgal_program("${cppfile}")
if(TARGET CGAL::Eigen3_support)
get_filename_component(target ${cppfile} NAME_WE)
target_link_libraries(${target} PUBLIC CGAL::Eigen3_support)
endif()
endif()
endforeach()
if(TARGET CGAL::Eigen3_support)
create_single_source_cgal_program("random_points_in_tetrahedral_mesh_3.cpp")
target_link_libraries(random_points_in_tetrahedral_mesh_3 PRIVATE CGAL::Eigen3_support)
create_single_source_cgal_program("random_points_on_tetrahedral_mesh_3.cpp")
target_link_libraries(random_points_on_tetrahedral_mesh_3 PRIVATE CGAL::Eigen3_support)
else()
message(STATUS "NOTICE: Some examples use Eigen, and will not be compiled.")
endif()

View File

@ -6,22 +6,20 @@ project(Generator_Tests)
find_package(CGAL REQUIRED)
# Use Eigen
create_single_source_cgal_program("random_hull_test.cpp")
create_single_source_cgal_program("random_poly_test.cpp")
create_single_source_cgal_program("rcs_test.cpp")
create_single_source_cgal_program("test_combination_enumerator.cpp")
create_single_source_cgal_program("test_generators.cpp")
create_single_source_cgal_program("test_tetrahedron_3.cpp")
create_single_source_cgal_program("test_triangle_2.cpp")
create_single_source_cgal_program("test_triangle_3.cpp")
find_package(Eigen3 3.1.0 QUIET) #(3.1.0 or greater)
include(CGAL_Eigen3_support)
# create a target per cppfile
file(
GLOB cppfiles
RELATIVE ${CMAKE_CURRENT_SOURCE_DIR}
${CMAKE_CURRENT_SOURCE_DIR}/*.cpp)
foreach(cppfile ${cppfiles})
if(NOT (${cppfile} STREQUAL "generic_random_test.cpp") OR TARGET
CGAL::Eigen3_support)
create_single_source_cgal_program("${cppfile}")
if(TARGET CGAL::Eigen3_support)
get_filename_component(target ${cppfile} NAME_WE)
target_link_libraries(${target} PUBLIC CGAL::Eigen3_support)
endif()
endif()
endforeach()
if(TARGET CGAL::Eigen3_support)
create_single_source_cgal_program("generic_random_test.cpp")
target_link_libraries(generic_random_test PRIVATE CGAL::Eigen3_support)
else()
message(STATUS "NOTICE: The test 'generic_random_test' uses Eigen, and will not be compiled.")
endif()

View File

@ -22,9 +22,7 @@ if(CGAL_Qt5_FOUND AND Qt5_FOUND)
add_definitions(-DQT_NO_KEYWORDS)
set(CMAKE_INCLUDE_CURRENT_DIR ON)
set(CMAKE_AUTOMOC ON)
#--------------------------------
# The "Delaunay" demo: Alpha_shapes_2
#--------------------------------
# UI files (Qt Designer files)
qt5_wrap_ui(DT_UI_FILES Alpha_shapes_2.ui)
@ -46,10 +44,6 @@ if(CGAL_Qt5_FOUND AND Qt5_FOUND)
include(${CGAL_MODULES_DIR}/CGAL_add_test.cmake)
cgal_add_compilation_test(Alpha_shapes_2)
else()
message(
STATUS "NOTICE: This demo requires CGAL and Qt5, and will not be compiled.")
message("NOTICE: This demo requires CGAL and Qt5, and will not be compiled.")
endif()

View File

@ -45,10 +45,6 @@ if(CGAL_Qt5_FOUND AND Qt5_FOUND)
include(${CGAL_MODULES_DIR}/CGAL_add_test.cmake)
cgal_add_compilation_test(Apollonius_graph_2)
else()
message(
STATUS "NOTICE: This demo requires CGAL and Qt5, and will not be compiled.")
message("NOTICE: This demo requires CGAL and Qt5, and will not be compiled.")
endif()

View File

@ -24,9 +24,6 @@ if(CGAL_Qt5_FOUND AND Qt5_FOUND)
add_definitions(-DQT_NO_KEYWORDS)
set(CMAKE_AUTOMOC ON)
#----------------------------------------------
# The "Bounding volumes" demo: Bounding_volumes
#----------------------------------------------
# UI files (Qt Designer files)
qt5_wrap_ui(DT_UI_FILES Bounding_volumes.ui)
@ -53,7 +50,6 @@ if(CGAL_Qt5_FOUND AND Qt5_FOUND)
else()
message(
STATUS "NOTICE: This demo requires CGAL and Qt5, and will not be compiled.")
message("NOTICE: This demo requires CGAL and Qt5, and will not be compiled.")
endif()

View File

@ -22,9 +22,6 @@ if(CGAL_Qt5_FOUND AND Qt5_FOUND)
set(CMAKE_INCLUDE_CURRENT_DIR ON)
set(CMAKE_AUTOMOC ON)
#--------------------------------
# The demo: Circular_kernel_2
#--------------------------------
# UI files (Qt Designer files)
qt5_wrap_ui(DT_UI_FILES Circular_kernel_2.ui)
@ -51,7 +48,6 @@ if(CGAL_Qt5_FOUND AND Qt5_FOUND)
else()
message(
STATUS "NOTICE: This demo requires CGAL and Qt5, and will not be compiled.")
message("NOTICE: This demo requires CGAL and Qt5, and will not be compiled.")
endif()

View File

@ -22,9 +22,6 @@ if(CGAL_Qt5_FOUND AND Qt5_FOUND)
set(CMAKE_INCLUDE_CURRENT_DIR ON)
set(CMAKE_AUTOMOC ON)
#--------------------------------
# Demo: Generator_2
#--------------------------------
# UI files (Qt Designer files)
qt5_wrap_ui(DT_UI_FILES Generator_2.ui)
@ -45,8 +42,6 @@ if(CGAL_Qt5_FOUND AND Qt5_FOUND)
cgal_add_compilation_test(Generator_2)
else()
message(
STATUS "NOTICE: This demo requires CGAL, and Qt5, and will not be compiled."
)
message("NOTICE: This demo requires CGAL and Qt5, and will not be compiled.")
endif()

View File

@ -31,7 +31,6 @@ if(CGAL_Qt5_FOUND AND Qt5_FOUND)
cgal_add_compilation_test(min)
else()
message(
STATUS "NOTICE: This demo requires CGAL and Qt5, and will not be compiled.")
message("NOTICE: This demo requires CGAL and Qt5, and will not be compiled.")
endif()

View File

@ -24,9 +24,6 @@ if(CGAL_Qt5_FOUND AND Qt5_FOUND)
set(CMAKE_INCLUDE_CURRENT_DIR ON)
set(CMAKE_AUTOMOC ON)
#--------------------------------
# The "L1 Voronoi diagram" demo: L1_voronoi_diagram_2
#--------------------------------
# UI files (Qt Designer files)
qt5_wrap_ui(DT_UI_FILES L1_voronoi_diagram_2.ui)
@ -51,7 +48,6 @@ if(CGAL_Qt5_FOUND AND Qt5_FOUND)
else()
message(
STATUS "NOTICE: This demo requires CGAL and Qt5, and will not be compiled.")
message("NOTICE: This demo requires CGAL and Qt5, and will not be compiled.")
endif()

View File

@ -23,9 +23,6 @@ if(CGAL_Qt5_FOUND AND Qt5_FOUND)
set(CMAKE_INCLUDE_CURRENT_DIR ON)
set(CMAKE_AUTOMOC ON)
#--------------------------------
# Demo: Largest_empty_rectangle_2
#--------------------------------
# UI files (Qt Designer files)
qt5_wrap_ui(DT_UI_FILES Largest_empty_rectangle_2.ui)
@ -46,8 +43,6 @@ if(CGAL_Qt5_FOUND AND Qt5_FOUND)
cgal_add_compilation_test(Largest_empty_rectangle_2)
else()
message(
STATUS "NOTICE: This demo requires CGAL, and Qt5, and will not be compiled."
)
message("NOTICE: This demo requires CGAL and Qt5, and will not be compiled.")
endif()

View File

@ -98,6 +98,8 @@ public Q_SLOTS:
void on_actionClear_triggered();
void on_actionOpen_triggered();
void processInput(CGAL::Object);
void on_actionRecenter_triggered();
@ -105,7 +107,7 @@ public Q_SLOTS:
void on_actionGeneratePointsInSquare_triggered();
void on_actionGeneratePointsInDisc_triggered();
void clear();
void open(QString fileName);
void update_largest_empty_rectangle();
Q_SIGNALS:
@ -229,6 +231,50 @@ MainWindow::on_actionClear_triggered()
Q_EMIT( changed());
}
void
MainWindow::on_actionOpen_triggered()
{
QString fileName = QFileDialog::getOpenFileName(this,
tr("Open points file"),
"."
,tr("xy files (*.xy)")
);
if(! fileName.isEmpty()){
open(fileName);
}
}
void
MainWindow::open(QString fileName)
{
// wait cursor
QApplication::setOverrideCursor(Qt::WaitCursor);
std::ifstream ifs(qPrintable(fileName));
clear();
Point_2 p;
while(ifs >> p){
points.push_back(p);
}
CGAL::Bbox_2 bbox = CGAL::bbox_2(points.begin(), points.end());
square = Iso_rectangle_2(bbox);
ler = Largest_empty_iso_rectangle_2(square);
ler.insert(points.begin(), points.end());
frame[0]->setLine(convert(Segment_2(square.vertex(0),square.vertex(1))));
frame[1]->setLine(convert(Segment_2(square.vertex(1), square.vertex(2))));
frame[2]->setLine(convert(Segment_2(square.vertex(2), square.vertex(3))));
frame[3]->setLine(convert(Segment_2(square.vertex(3), square.vertex(0))));
QApplication::restoreOverrideCursor();
on_actionRecenter_triggered();
Q_EMIT( changed());
}
void
MainWindow::on_actionRecenter_triggered()
{

View File

@ -80,7 +80,7 @@
<x>0</x>
<y>0</y>
<width>500</width>
<height>26</height>
<height>22</height>
</rect>
</property>
<widget class="QMenu" name="menuFile">
@ -90,6 +90,7 @@
<addaction name="separator"/>
<addaction name="actionClear"/>
<addaction name="separator"/>
<addaction name="actionOpen"/>
<addaction name="actionQuit"/>
</widget>
<widget class="QMenu" name="menuTools">
@ -199,6 +200,11 @@
<string>Generate Segment Fans</string>
</property>
</action>
<action name="actionOpen">
<property name="text">
<string>Open</string>
</property>
</action>
</widget>
<resources>
<include location="Largest_empty_rectangle_2.qrc"/>

View File

@ -21,9 +21,6 @@ if(CGAL_Qt5_FOUND AND Qt5_FOUND)
set(CMAKE_INCLUDE_CURRENT_DIR ON)
set(CMAKE_AUTOMOC ON)
#--------------------------------
# The "2D Periodic triangulation" demo: Periodic_2_triangulation_2
#--------------------------------
# UI files (Qt Designer files)
qt5_wrap_ui(DT_UI_FILES Periodic_2_triangulation_2.ui)
@ -58,7 +55,6 @@ if(CGAL_Qt5_FOUND AND Qt5_FOUND)
cgal_add_compilation_test(Periodic_2_Delaunay_triangulation_2)
else()
message(
STATUS "NOTICE: This demo requires CGAL and Qt5, and will not be compiled.")
message("NOTICE: This demo requires CGAL and Qt5, and will not be compiled.")
endif()

View File

@ -15,13 +15,10 @@ endif()
find_package(CGAL REQUIRED OPTIONAL_COMPONENTS Qt5 Core)
find_package(Eigen3 3.1.0) #(requires 3.1.0 or greater)
find_package(Eigen3 3.1.0 QUIET) #(requires 3.1.0 or greater)
include(CGAL_Eigen3_support)
if(NOT TARGET CGAL::Eigen3_support)
message(
STATUS
"NOTICE: This project requires the Eigen library, and will not be compiled."
)
message("NOTICE: This demo requires the Eigen library, and will not be compiled.")
return()
endif()
@ -36,9 +33,6 @@ if(CGAL_Qt5_FOUND AND Qt5_FOUND)
add_definitions(-DCGAL_USE_CORE)
endif()
#--------------------------------
# Demo: Polygon_2
#--------------------------------
# UI files (Qt Designer files)
qt5_wrap_ui(DT_UI_FILES Polygon_2.ui)
@ -60,10 +54,5 @@ if(CGAL_Qt5_FOUND AND Qt5_FOUND)
include(${CGAL_MODULES_DIR}/CGAL_add_test.cmake)
cgal_add_compilation_test(Polygon_2)
else()
message(
STATUS
"NOTICE: This demo requires CGAL, CGAL_Core, and Qt5, and will not be compiled."
)
message("NOTICE: This demo requires CGAL, CGAL_Core, and Qt5, and will not be compiled.")
endif()

View File

@ -29,9 +29,6 @@ if(CGAL_Qt5_FOUND AND Qt5_FOUND)
include(${CGAL_USE_FILE})
add_definitions(-DQT_NO_KEYWORDS)
#--------------------------------
# The "Segment Voronoi" demo: Segment_voronoi_2
#--------------------------------
# UI files (Qt Designer files)
qt5_wrap_ui(CDT_UI_FILES Segment_voronoi_2.ui)
@ -50,10 +47,6 @@ if(CGAL_Qt5_FOUND AND Qt5_FOUND)
include(${CGAL_MODULES_DIR}/CGAL_add_test.cmake)
cgal_add_compilation_test(Segment_voronoi_2)
else()
message(
STATUS "NOTICE: This demo requires CGAL and Qt5, and will not be compiled.")
message("NOTICE: This demo requires CGAL and Qt5, and will not be compiled.")
endif()

View File

@ -28,9 +28,6 @@ if(CGAL_Qt5_FOUND AND Qt5_FOUND)
include(${CGAL_USE_FILE})
add_definitions(-DQT_NO_KEYWORDS)
#--------------------------------
# The "Segment Voronoi Linf" demo: Segment_voronoi_linf_2
#--------------------------------
# UI files (Qt Designer files)
qt5_wrap_ui(CDT_UI_FILES Segment_voronoi_2.ui)
@ -50,8 +47,5 @@ if(CGAL_Qt5_FOUND AND Qt5_FOUND)
include(${CGAL_MODULES_DIR}/CGAL_add_test.cmake)
cgal_add_compilation_test(Segment_voronoi_linf_2)
else()
message(
STATUS "NOTICE: This demo requires CGAL and Qt5, and will not be compiled.")
message("NOTICE: This demo requires CGAL and Qt5, and will not be compiled.")
endif()

View File

@ -22,7 +22,6 @@ if(CGAL_Qt5_FOUND AND Qt5_FOUND)
add_definitions(-DQT_NO_KEYWORDS)
set(CMAKE_INCLUDE_CURRENT_DIR ON)
#--------------------------------
# UI files (Qt Designer files)
qt5_wrap_ui(DT_UI_FILES Snap_rounding_2.ui)
@ -44,10 +43,6 @@ if(CGAL_Qt5_FOUND AND Qt5_FOUND)
include(${CGAL_MODULES_DIR}/CGAL_add_test.cmake)
cgal_add_compilation_test(Snap_rounding_2)
else()
message(
STATUS "NOTICE: This demo requires CGAL and Qt5, and will not be compiled.")
message("NOTICE: This demo requires CGAL and Qt5, and will not be compiled.")
endif()

View File

@ -23,9 +23,6 @@ if(CGAL_Qt5_FOUND AND Qt5_FOUND)
set(CMAKE_INCLUDE_CURRENT_DIR ON)
set(CMAKE_AUTOMOC ON)
#--------------------------------
# Demo: Spatial_searching_2
#--------------------------------
# UI files (Qt Designer files)
qt5_wrap_ui(DT_UI_FILES Spatial_searching_2.ui)
@ -46,8 +43,6 @@ if(CGAL_Qt5_FOUND AND Qt5_FOUND)
cgal_add_compilation_test(Spatial_searching_2)
else()
message(
STATUS "NOTICE: This demo requires CGAL, and Qt5, and will not be compiled."
)
message("NOTICE: This demo requires CGAL and Qt5, and will not be compiled.")
endif()

View File

@ -23,7 +23,6 @@ if(CGAL_Qt5_FOUND AND Qt5_FOUND)
set(CMAKE_INCLUDE_CURRENT_DIR ON)
set(CMAKE_AUTOMOC ON)
#--------------------------------
# UI files (Qt Designer files)
qt5_wrap_ui(DT_UI_FILES Stream_lines_2.ui)
@ -48,7 +47,6 @@ if(CGAL_Qt5_FOUND AND Qt5_FOUND)
else()
message(
STATUS "NOTICE: This demo requires CGAL and Qt5, and will not be compiled.")
message("NOTICE: This demo requires CGAL and Qt5, and will not be compiled.")
endif()

View File

@ -19,10 +19,8 @@ set(CMAKE_INCLUDE_CURRENT_DIR TRUE)
find_package(CGAL REQUIRED OPTIONAL_COMPONENTS Qt5)
find_package(Qt5 QUIET COMPONENTS Widgets)
if(NOT CGAL_Qt5_FOUND
OR NOT Qt5_FOUND)
message(
STATUS "NOTICE: This demo requires CGAL and Qt5, and will not be compiled.")
if(NOT CGAL_Qt5_FOUND OR NOT Qt5_FOUND)
message("NOTICE: This demo requires CGAL and Qt5, and will not be compiled.")
return()
endif()

View File

@ -7,25 +7,6 @@ project(Hash_map)
# CGAL and its components
find_package(CGAL REQUIRED)
# Boost and its components
find_package(Boost REQUIRED)
if(NOT Boost_FOUND)
message(
STATUS "This project requires the Boost library, and will not be compiled.")
return()
endif()
# include for local directory
# include for local package
# Creating entries for all .cpp/.C files with "main" routine
# ##########################################################
create_single_source_cgal_program("hm.cpp")
create_single_source_cgal_program("foreach.cpp")
create_single_source_cgal_program("triangulation.cpp")

View File

@ -7,35 +7,16 @@ project(Heat_method_3_Examples)
# CGAL and its components
find_package(CGAL REQUIRED)
# Boost and its components
find_package(Boost REQUIRED)
if(NOT Boost_FOUND)
message(
STATUS "This project requires the Boost library, and will not be compiled.")
return()
endif()
find_package(Eigen3 3.3.0)
find_package(Eigen3 3.3.0 QUIET)
include(CGAL_Eigen3_support)
if(NOT TARGET CGAL::Eigen3_support)
message(
STATUS
"This project requires the Eigen library (3.3 or greater), and will not be compiled."
)
message("NOTICE: These examples require the Eigen library (3.3 or greater), and will not be compiled.")
return()
endif()
# include for local directory
include_directories(BEFORE include)
# Creating entries for all C++ files with "main" routine
# ##########################################################
create_single_source_cgal_program("heat_method.cpp")
target_link_libraries(heat_method PUBLIC CGAL::Eigen3_support)
create_single_source_cgal_program("heat_method_polyhedron.cpp")
@ -43,5 +24,4 @@ target_link_libraries(heat_method_polyhedron PUBLIC CGAL::Eigen3_support)
create_single_source_cgal_program("heat_method_surface_mesh.cpp")
target_link_libraries(heat_method_surface_mesh PUBLIC CGAL::Eigen3_support)
create_single_source_cgal_program("heat_method_surface_mesh_direct.cpp")
target_link_libraries(heat_method_surface_mesh_direct
PUBLIC CGAL::Eigen3_support)
target_link_libraries(heat_method_surface_mesh_direct PUBLIC CGAL::Eigen3_support)

View File

@ -7,42 +7,21 @@ project(Heat_method_3_Tests)
# CGAL and its components
find_package(CGAL REQUIRED)
# Boost and its components
find_package(Boost REQUIRED)
if(NOT Boost_FOUND)
message(
STATUS "This project requires the Boost library, and will not be compiled.")
return()
endif()
find_package(Eigen3 3.3.0)
find_package(Eigen3 3.3.0 QUIET)
include(CGAL_Eigen3_support)
if(NOT TARGET CGAL::Eigen3_support)
message(
STATUS
"This project requires the Eigen library (3.3 or greater), and will not be compiled."
)
message("NOTICE: These tests require the Eigen library (3.3 or greater), and will not be compiled.")
return()
endif()
# include for local directory
include_directories(BEFORE include)
# Creating entries for all C++ files with "main" routine
# ##########################################################
create_single_source_cgal_program("heat_method_concept.cpp")
target_link_libraries(heat_method_concept PUBLIC CGAL::Eigen3_support)
create_single_source_cgal_program("heat_method_surface_mesh_test.cpp")
target_link_libraries(heat_method_surface_mesh_test PUBLIC CGAL::Eigen3_support)
create_single_source_cgal_program("heat_method_surface_mesh_direct_test.cpp")
target_link_libraries(heat_method_surface_mesh_direct_test
PUBLIC CGAL::Eigen3_support)
target_link_libraries(heat_method_surface_mesh_direct_test PUBLIC CGAL::Eigen3_support)
create_single_source_cgal_program("heat_method_surface_mesh_intrinsic_test.cpp")
target_link_libraries(heat_method_surface_mesh_intrinsic_test
PUBLIC CGAL::Eigen3_support)
target_link_libraries(heat_method_surface_mesh_intrinsic_test PUBLIC CGAL::Eigen3_support)

View File

@ -6,8 +6,4 @@ project(Hyperbolic_triangulation_2_benchmark)
find_package(CGAL REQUIRED COMPONENTS Core)
include(${CGAL_USE_FILE})
include(CGAL_CreateSingleSourceCGALProgram)
create_single_source_cgal_program("bench_insertion_with_different_kernels.cpp")

View File

@ -11,13 +11,12 @@ if(POLICY CMP0071)
cmake_policy(SET CMP0071 NEW)
endif()
find_package(CGAL REQUIRED QUIET OPTIONAL_COMPONENTS Core Qt5)
find_package(CGAL REQUIRED OPTIONAL_COMPONENTS Core Qt5)
find_package(LEDA QUIET)
# Find Qt5 itself
find_package(Qt5 QUIET COMPONENTS OpenGL Gui)
if(CGAL_Qt5_FOUND
AND Qt5_FOUND
AND (CGAL_Core_FOUND OR LEDA_FOUND))
@ -40,8 +39,5 @@ if(CGAL_Qt5_FOUND
include(${CGAL_MODULES_DIR}/CGAL_add_test.cmake)
cgal_add_compilation_test( HDT2 )
else()
message(
STATUS
"NOTICE: This demo requires CGAL, CGAL_Core (or LEDA), and Qt5 and will not be compiled."
)
message("NOTICE: This demo requires CGAL_Core (or LEDA), and Qt5 and will not be compiled.")
endif()

View File

@ -142,9 +142,11 @@ Iso_rectangle_2 get_bounding_box();
/// @{
/*!
Inserts point `p` in the point set, if it is not already in the set.
Inserts point `p` in the point set, if it is not already in the set
and on the bounded side of the bounding rectangle.
\note Points on the boundary can be ignored as they lead to the same result.
*/
void
bool
insert(const Point_2& p);
/*!

View File

@ -1,8 +1,7 @@
#include <CGAL/Simple_cartesian.h>
#include <CGAL/Iso_rectangle_2.h>
#include <CGAL/Largest_empty_iso_rectangle_2.h>
#include <fstream>
#include <iostream>
typedef double Number_Type;
typedef CGAL::Simple_cartesian<Number_Type> K;

View File

@ -762,7 +762,7 @@ bool
Largest_empty_iso_rectangle_2<T>::insert(const Point_2& _p)
{
// check that the point is inside the bounding box
if(bbox_p.has_on_unbounded_side(_p)) {
if(! bbox_p.has_on_bounded_side(_p)) {
return(false);
}

View File

@ -14,6 +14,9 @@ Release date: June 2023
- Added a version that uses indices instead of handles as dart and attribute descriptors. As the indices are integers convertible from and to `std::size_t`, they can be used as index into vectors which store properties. To use the index version, `Use_index` must be defined and be equal to `CGAL::Tag_true` in the item class.
### [Linear Cell Complex](https://doc.cgal.org/5.6/Manual/packages.html#PkgLinearCellComplex)
- Added the class `Linear_cell_complex_incremental_builder_3`.
### [Polygon Mesh Processing](https://doc.cgal.org/5.6/Manual/packages.html#PkgPolygonMeshProcessing)
- **Breaking change**: Deprecated the overloads of functions `CGAL::Polygon_mesh_processing::triangulate_hole()`,
@ -26,6 +29,9 @@ Release date: June 2023
- Added the function `CGAL::Polygon_mesh_processing::surface_Delaunay_remeshing()`, that remeshes a surface triangle mesh following the
CGAL tetrahedral Delaunay refinement algorithm.
- Added the function `CGAL::Polygon_mesh_processing::surface_Delaunay_remeshing()`, that remeshes a surface triangle mesh using
the Delaunay refinement algorithm from the 3D Mesh Generation package.
- Added the function `CGAL::Polygon_mesh_processing::remove_almost_degenerate_faces()` to remove badly shaped triangles faces in a mesh.
### [3D Simplicial Mesh Data Structure](https://doc.cgal.org/5.6/Manual/packages.html#PkgSMDS3) (new package)

View File

@ -24,8 +24,7 @@ include(GNUInstallDirs)
if(CGAL_BRANCH_BUILD)
message(
STATUS "Build CGAL from ${CGAL_SCM_NAME}-branch: ${CGAL_SCM_BRANCH_NAME}")
message(STATUS "Build CGAL from ${CGAL_SCM_NAME}-branch: ${CGAL_SCM_BRANCH_NAME}")
# list packages
file(
@ -75,10 +74,8 @@ if(CGAL_BRANCH_BUILD)
"${CGAL_SOURCE_DIR}/GraphicsView"
CACHE INTERNAL "Directory containing the GraphicsView package")
message(
STATUS "Installation package directory: ${CGAL_INSTALLATION_PACKAGE_DIR}")
message(
STATUS "Maintenance package directory: ${CGAL_MAINTENANCE_PACKAGE_DIR}")
message(STATUS "Installation package directory: ${CGAL_INSTALLATION_PACKAGE_DIR}")
message(STATUS "Maintenance package directory: ${CGAL_MAINTENANCE_PACKAGE_DIR}")
message(STATUS "Core package directory: ${CGAL_CORE_PACKAGE_DIR}")
else(CGAL_BRANCH_BUILD)

View File

@ -360,7 +360,7 @@ if( NOT CGAL_MACROS_FILE_INCLUDED )
VERSION "${CGAL_MAJOR_VERSION}.${CGAL_MINOR_VERSION}.${CGAL_BUGFIX_VERSION}"
COMPATIBILITY SameMajorVersion)
# There is also a version of CGALConfig.cmake that is prepared in case CGAL in installed in CMAKE_INSTALL_PREFIX.
# There is also a version of CGALConfig.cmake that is prepared in case CGAL is installed in CMAKE_INSTALL_PREFIX.
configure_file("${CGAL_MODULES_DIR}/CGALConfig_install.cmake.in" "${CMAKE_BINARY_DIR}/config/CGALConfig.cmake" @ONLY)
#write prefix exceptions

View File

@ -11,6 +11,6 @@ if(libpointmatcher_FOUND AND NOT TARGET CGAL::pointmatcher_support)
target_include_directories(CGAL::pointmatcher_support INTERFACE "${libpointmatcher_INCLUDE_DIR}")
target_link_libraries(CGAL::pointmatcher_support INTERFACE ${libpointmatcher_LIBRARIES})
else()
message(STATUS "NOTICE : the libpointmatcher library requires the following boost components: thread filesystem system program_options date_time chrono.")
message(STATUS "NOTICE: the libpointmatcher library requires the following boost components: thread filesystem system program_options date_time chrono.")
endif()
endif()

View File

@ -115,6 +115,18 @@ include(${CGAL_MODULES_DIR}/CGAL_enable_end_of_configuration_hook.cmake)
set(CGAL_USE_FILE ${CGAL_MODULES_DIR}/UseCGAL.cmake)
include(${CGAL_CONFIG_DIR}/CGALConfigVersion.cmake)
# Temporary? Change the CMAKE module path
cgal_setup_module_path()
include(${CGAL_MODULES_DIR}/CGAL_target_use_TBB.cmake)
if( CGAL_DEV_MODE OR RUNNING_CGAL_AUTO_TEST OR CGAL_TEST_SUITE )
# Do not use -isystem for CGAL include paths
set(CMAKE_NO_SYSTEM_FROM_IMPORTED TRUE)
endif()
foreach(comp ${CGAL_FIND_COMPONENTS})
if(NOT comp MATCHES "Core|ImageIO|Qt5")
message(FATAL_ERROR "The requested CGAL component ${comp} does not exist!")
@ -184,19 +196,3 @@ if (NOT TARGET CGAL::CGAL_Basic_viewer)
INTERFACE_LINK_LIBRARIES CGAL::CGAL_Qt5)
endif()
include(${CGAL_CONFIG_DIR}/CGALConfigVersion.cmake)
#
#
#
# Temporary? Change the CMAKE module path
cgal_setup_module_path()
set(CGAL_USE_FILE ${CGAL_MODULES_DIR}/UseCGAL.cmake)
include(${CGAL_MODULES_DIR}/CGAL_target_use_TBB.cmake)
if( CGAL_DEV_MODE OR RUNNING_CGAL_AUTO_TEST OR CGAL_TEST_SUITE )
# Do not use -isystem for CGAL include paths
set(CMAKE_NO_SYSTEM_FROM_IMPORTED TRUE)
endif()

View File

@ -435,6 +435,22 @@ Segment_2_Segment_2_pair<K>::intersection_type() const
: CGAL::make_array( _seg2->point(s2s2_id[c][2]), _seg2->point(s2s2_id[c][3]),
_seg1->point(s2s2_id[c][0]), _seg1->point(s2s2_id[c][1]) );
// special case for vertical and horizontal segments
if (std::is_floating_point<typename K::FT>::value &&
std::is_same<typename K::Kernel_tag, Cartesian_tag>::value)
{
if (pts[0].x()==pts[1].x() && pts[2].y()==pts[3].y())
{
_intersection_point = K().construct_point_2_object()(pts[0].x(), pts[2].y());
return _result;
}
if (pts[0].y()==pts[1].y() && pts[2].x()==pts[3].x())
{
_intersection_point = K().construct_point_2_object()(pts[2].x(), pts[0].y());
return _result;
}
}
typename K::FT alpha = s2s2_alpha(pts[0].x(), pts[0].y(), pts[1].x(), pts[1].y(), pts[2].x(), pts[2].y(), pts[3].x(), pts[3].y());
_intersection_point = K().construct_barycenter_2_object()(pts[0], alpha, pts[1]);

View File

@ -7,33 +7,27 @@ project(Jet_fitting_3_Examples)
find_package(CGAL REQUIRED)
# use Eigen
find_package(Eigen3 3.1.0) #(requires 3.1.0 or greater)
find_package(Eigen3 3.1.0 QUIET) #(requires 3.1.0 or greater)
include(CGAL_Eigen3_support)
if(TARGET CGAL::Eigen3_support)
# Link with Boost.ProgramOptions (optional)
find_package(Boost QUIET COMPONENTS program_options)
if(Boost_PROGRAM_OPTIONS_FOUND)
create_single_source_cgal_program("Mesh_estimation.cpp")
target_link_libraries(Mesh_estimation PUBLIC CGAL::Eigen3_support)
if(TARGET Boost::filesystem)
if(TARGET Boost::program_options)
target_link_libraries(Mesh_estimation PRIVATE Boost::program_options)
else()
target_link_libraries(Mesh_estimation PRIVATE ${Boost_PROGRAM_OPTIONS_LIBRARY})
endif()
else()
message(
STATUS
"NOTICE: This program requires Boost Program Options and will not be compiled."
)
message(STATUS "NOTICE: The example 'Mesh_estimation' requires Boost Program Options, and will not be compiled.")
endif()
create_single_source_cgal_program("Single_estimation.cpp")
target_link_libraries(Single_estimation PUBLIC CGAL::Eigen3_support)
else()
message(
STATUS
"NOTICE: This program requires Eigen 3.1 (or greater) and will not be compiled."
)
message("NOTICE: These examples require Eigen 3.1 (or greater), and will not be compiled.")
endif()

View File

@ -7,14 +7,11 @@ project(Jet_fitting_3_Tests)
find_package(CGAL REQUIRED)
# use Eigen
find_package(Eigen3 3.1.0) #(requires 3.1.0 or greater)
find_package(Eigen3 3.1.0 QUIET) #(requires 3.1.0 or greater)
include(CGAL_Eigen3_support)
if(TARGET CGAL::Eigen3_support)
create_single_source_cgal_program("blind_1pt.cpp")
target_link_libraries(blind_1pt PUBLIC CGAL::Eigen3_support)
else()
message(
STATUS
"NOTICE: This program requires Eigen 3.1 (or greater) and will not be compiled."
)
message("NOTICE: This project requires Eigen 3.1 (or greater), and will not be compiled.")
endif()

View File

@ -2,11 +2,8 @@
# This is the CMake script for compiling a CGAL application.
cmake_minimum_required(VERSION 3.1...3.23)
project( benchmark )
project(Kernel_23_benchmark)
find_package(CGAL REQUIRED QUIET OPTIONAL_COMPONENTS Core )
include_directories (BEFORE "../include")
find_package(CGAL QUIET OPTIONAL_COMPONENTS Core)
create_single_source_cgal_program( "cmp_epeck_points.cpp" )

View File

@ -8,13 +8,6 @@ endif()
find_package(CGAL REQUIRED)
find_package(Boost 1.43.0)
if(Boost_FOUND)
include_directories(${Boost_INCLUDE_DIRS})
else()
set(USE_IN_SOURCE_TREE_BOOST true)
endif()
add_subdirectory(openvolumemesh)
include_directories(BEFORE openvolumemesh/src)

View File

@ -48,8 +48,7 @@ if(NOT
(CGAL_Qt5_FOUND
AND Qt5_FOUND))
message(STATUS "NOTICE: This demo requires CGAL, "
"and Qt5, and will not be compiled.")
message("NOTICE: This demo requires CGAL and Qt5, and will not be compiled.")
else()

View File

@ -0,0 +1,99 @@
namespace CGAL {
/*!
\ingroup PkgLinearCellComplexClasses
The auxiliary class `Linear_cell_complex_incremental_builder_3` supports the incremental
construction of linear cell complexes.
\tparam LCC must be a model of the concept `LinearCellComplex`
*/
template < class LCC >
class Linear_cell_complex_incremental_builder_3
{
public:
typedef LCC_ LCC;
typedef typename LCC::Dart_descriptor DH;
typedef typename LCC::Vertex_attribute_descriptor VAH;
typedef typename LCC::Point Point_3;
typedef typename LCC::size_type size_type;
/// \name Creation
/// @{
/*!
* Constructor
*/
Linear_cell_complex_incremental_builder_3(LCC & alcc);
/// @}
/*!
\name Surface Creation
To build a linear cell complex, the following regular expression gives
the correct and allowed order and nesting of method calls from this
section:
\code
begin_surface ( add_vertex | ( begin_facet add_vertex_to_facet end_facet ) ) end_surface
\endcode
When an edge is added in a facet, if the same edge exists in another facet of the same surface, then the two facets are glued along this edge.
When a facet is added, if the same facet exists in another surface, the two surfaces are glued along this facet.
*/
/// @{
/*!
* starts a new surface.
*/
void begin_surface();
/*!
* adds a new vertex for `p` and returns its handle.
*/
VAH add_vertex(const Point_3& p);
/*!
* starts a new facet.
*/
void begin_facet();
/*!
* adds vertex `i` at the end of the current facet.
*/
void add_vertex_to_facet(size_type i);
/*!
* ends the construction of the facet and returns the first dart of this facet.
*/
DH end_facet();
/*!
* ends the construction of the surface and returns one dart of the created surface.
*/
DH end_surface();
/// @}
/// \name Additional Operations
/// @{
/*!
* is a synonym for `begin_facet()`, a call to `add_vertex_to_facet()` for each
* value in the range `[first,beyond)`, and a call to `end_facet()`.
*/
DH add_facet(std::initializer_list<size_type> l);
/// @}
};
} // namespace CGAL

View File

@ -141,6 +141,14 @@ Some examples of use of these operations are given in Section \ref ssec5dexample
If \link GenericMap::set_automatic_attributes_management `set_automatic_attributes_management(false)`\endlink is called, all the future insertion or removal operations will not update non void attributes. These attributes will be updated latter by the call to \link GenericMap::set_automatic_attributes_management `set_automatic_attributes_management(true)`\endlink. This can be useful to speed up an algorithm which uses several successive insertion and removal operations. See example \ref ssecAttributesManagement "Automatic attributes management".
\cgalAdvancedEnd
\subsection Linear_cell_complexIncrementalBuilder Incremental Builder
A utility class `Linear_cell_complex_incremental_builder_3` helps in creating 2D and 3D linear cell complexes
from a list of points followed by a list of facets that are represented as indices into the point list.
Note that, compared to `Polyhedron_incremental_builder_3` it has only absolute indexing and no rollback
mechanism.
\section Linear_cell_complexExamples Examples
\subsection Linear_cell_complexA3DLinearCellComplex A 3D Linear Cell Complex
@ -264,10 +272,16 @@ Linking with the cmake target `CGAL::CGAL_Basic_viewer` will link with `CGAL_Qt5
Result of the run of the draw_linear_cell_complex program. A window shows two 3D cubes and allows to navigate through the 3D scene.
\cgalFigureEnd
\subsection Linear_cell_complexIncrementalBuilderExample Incremental Builder
The following example shows the incremental builder.
\cgalExample{Linear_cell_complex/linear_cell_complex_3_incremental_builder.cpp}
\section Linear_cell_complexDesign Design and Implementation History
This package was developed by Guillaume Damiand, with the help of Andreas Fabri, S&eacute;bastien Loriot and Laurent Rineau. Monique Teillaud and Bernd G&auml;rtner contributed to the manual.
*/
} /* namespace CGAL */

View File

@ -62,7 +62,7 @@
- `CGAL::Linear_cell_complex_traits<d,K>`
- `CGAL::Cell_attribute_with_point<LCC,Info_,Tag,OnMerge,OnSplit>`
- `CGAL::Cell_attribute_with_point_and_id<LCC,Info_,Tag,OnMerge,OnSplit>`
- `CGAL::Linear_cell_complex<d,d2,LCCTraits,Items,Alloc>`
- `CGAL::Linear_cell_complex_incremental_builder_3<LCC>`
\cgalCRPSection{Global Functions}
\cgalCRPSubsection{Constructions for Linear Cell Complex}
@ -78,4 +78,3 @@
- \link PkgDrawLinearCellComplex CGAL::draw<LCC>() \endlink
*/

View File

@ -3,5 +3,6 @@
\example Linear_cell_complex/linear_cell_complex_3.cpp
\example Linear_cell_complex/linear_cell_complex_4.cpp
\example Linear_cell_complex/linear_cell_complex_3_attributes_management.cpp
\example Linear_cell_complex/linear_cell_complex_3_incremental_builder.cpp
\example Linear_cell_complex/draw_linear_cell_complex.cpp
*/

View File

@ -21,6 +21,7 @@ create_single_source_cgal_program("linear_cell_complex_3_operations.cpp")
create_single_source_cgal_program(
"linear_cell_complex_3_with_colored_vertices.cpp")
create_single_source_cgal_program("linear_cell_complex_3_with_mypoint.cpp")
create_single_source_cgal_program("linear_cell_complex_3_incremental_builder.cpp")
create_single_source_cgal_program("linear_cell_complex_4.cpp")
create_single_source_cgal_program("plane_graph_to_lcc_2.cpp")
create_single_source_cgal_program("voronoi_2.cpp")
@ -29,4 +30,5 @@ create_single_source_cgal_program("voronoi_3.cpp")
create_single_source_cgal_program("draw_linear_cell_complex.cpp")
if(CGAL_Qt5_FOUND)
target_link_libraries(draw_linear_cell_complex PUBLIC CGAL::CGAL_Basic_viewer)
target_link_libraries(linear_cell_complex_3_incremental_builder PUBLIC CGAL::CGAL_Basic_viewer)
endif()

View File

@ -0,0 +1,71 @@
#include <CGAL/Linear_cell_complex_for_combinatorial_map.h>
#include <CGAL/Linear_cell_complex_incremental_builder_3.h>
#include <CGAL/draw_linear_cell_complex.h>
typedef CGAL::Linear_cell_complex_for_combinatorial_map<3, 3> LCC_3;
using Point=LCC_3::Point;
int main()
{
LCC_3 lcc;
CGAL::Linear_cell_complex_incremental_builder_3<LCC_3> ib(lcc);
ib.add_vertex(Point(0,0,0)); // vertex 0
ib.add_vertex(Point(1,0,0)); // vertex 1
ib.add_vertex(Point(1,1,0)); // vertex 2
ib.add_vertex(Point(0,1,0)); // vertex 3
ib.add_vertex(Point(0,1,1)); // vertex 4
ib.add_vertex(Point(0,0,1)); // vertex 5
ib.add_vertex(Point(1,0,1)); // vertex 6
ib.add_vertex(Point(1,1,1)); // vertex 7
// Create a cube
ib.begin_surface();
ib.add_facet({0,1,2,3}); // Create a new facet version 1: given all of its indices
ib.add_facet({1,0,5,6});
ib.add_facet({2,1,6,7});
ib.add_facet({3,2,7,4});
ib.add_facet({5,4,7,6});
ib.begin_facet(); // Create a new facet version 2: begin facet
ib.add_vertex_to_facet(0); // add sucessively its indices
ib.add_vertex_to_facet(3);
ib.add_vertex_to_facet(4);
ib.add_vertex_to_facet(5);
ib.end_facet();
ib.end_surface();
ib.add_vertex(Point(-1, 0.5, 0.5)); // vertex 8
// Create a pyramid, sharing one of its facets with a facet of the cube
ib.begin_surface();
ib.add_facet({3,0,5,4});
ib.add_facet({0,3,8});
ib.add_facet({3,4,8});
ib.add_facet({4,5,8});
ib.add_facet({5,0,8});
ib.end_surface();
LCC_3::One_dart_per_cell_range<3,3> cells = lcc.one_dart_per_cell<3>();
for (auto c = cells.begin(); c != cells.end(); ++c) {
std::cout << "a cell"<< std::endl;
LCC_3::One_dart_per_incident_cell_range<2,3> faces = lcc.one_dart_per_incident_cell<2,3>(c);
for (auto f = faces.begin(); f != faces.end(); ++f) {
std::cout << " a face"<< std::endl;
LCC_3::One_dart_per_incident_cell_range<0,2> vertices = lcc.one_dart_per_incident_cell<0,2>(f);
for(auto v = vertices.begin(); v!= vertices.end(); ++v){
std::cout << " " << lcc.point(v) << std::endl;
}
}
}
// Draw the lcc and display its characteristics
lcc.display_characteristics(std::cout)<<std::endl;
CGAL::draw(lcc);
return EXIT_SUCCESS;
}

View File

@ -13,7 +13,7 @@
#define CGAL_LINEAR_CELL_COMPLEX_CONSTRUCTORS_H 1
#include <CGAL/IO/OFF.h>
#include <CGAL/Linear_cell_complex_incremental_builder.h>
#include <CGAL/Linear_cell_complex_incremental_builder_3.h>
#include <CGAL/Unique_hash_map.h>
#include <CGAL/assertions.h>

View File

@ -9,8 +9,8 @@
//
// Author(s) : Guillaume Damiand <guillaume.damiand@liris.cnrs.fr>
//
#ifndef CGAL_LINEAR_CELL_COMPLEX_INCREMENTAL_BUILDER_H
#define CGAL_LINEAR_CELL_COMPLEX_INCREMENTAL_BUILDER_H 1
#ifndef CGAL_LINEAR_CELL_COMPLEX_INCREMENTAL_BUILDER_3_H
#define CGAL_LINEAR_CELL_COMPLEX_INCREMENTAL_BUILDER_3_H 1
#include <vector>
#include <cstddef>
@ -127,7 +127,7 @@ struct Find_opposite_2_with_control<LCC, CGAL::Combinatorial_map_tag>
{
if (!lcc.template is_free<2>(res))
{ // Here a dart vah1->vah2 already exists, and it was already 2-sewn.
std::cerr<<"ERROR in My_linear_cell_complex_incremental_builder_3: try to use a same oriented edge twice."<<std::endl;
std::cerr<<"ERROR in Linear_cell_complex_incremental_builder_3: try to use a same oriented edge twice."<<std::endl;
return lcc.null_descriptor;
}
}
@ -135,7 +135,7 @@ struct Find_opposite_2_with_control<LCC, CGAL::Combinatorial_map_tag>
vertex_to_dart_map_in_surface,
vah2, vah1)!=lcc.null_descriptor)
{ // Here a dart vah1->vah2 already exists (but it was not already 2-sewn).
std::cerr<<"ERROR in My_linear_cell_complex_incremental_builder_3: try to use a same oriented edge twice."<<std::endl;
std::cerr<<"ERROR in Linear_cell_complex_incremental_builder_3: try to use a same oriented edge twice."<<std::endl;
return lcc.null_descriptor;
}
@ -159,7 +159,7 @@ struct Find_opposite_2_with_control<LCC, CGAL::Generalized_map_tag>
{
if (!lcc.template is_free<2>(res))
{ // Here a dart vah1->vah2 already exists, and it was already 2-sewn.
std::cerr<<"ERROR in My_linear_cell_complex_incremental_builder_3: try to use a same oriented edge twice."<<std::endl;
std::cerr<<"ERROR in Linear_cell_complex_incremental_builder_3: try to use a same oriented edge twice."<<std::endl;
return lcc.null_descriptor;
}
}
@ -209,7 +209,7 @@ struct Add_edge_in_associative_array<LCC, CGAL::Generalized_map_tag>
};
///////////////////////////////////////////////////////////////////////////////
template<class LCC_, unsigned int dim=LCC_::dimension>
struct Sew3_for_LCC_incremental_builder
struct Sew3_for_LCC_incremental_builder_3
{
static void run(LCC_& lcc,
typename LCC_::Dart_descriptor dh1, typename LCC_::Dart_descriptor dh2)
@ -218,8 +218,8 @@ struct Sew3_for_LCC_incremental_builder
{
if(!lcc.template is_free<3>(dh1))
{
std::cerr<<"ERROR in My_linear_cell_complex_incremental_builder_3: "
<<"it exists more than 2 faces with same indices."<<std::endl;
std::cerr<<"ERROR in Linear_cell_complex_incremental_builder_3: "
<<"it exist more than 2 faces with same indices."<<std::endl;
}
else
{ lcc.template sew<3>(lcc.other_orientation(dh1), dh2); }
@ -227,7 +227,7 @@ struct Sew3_for_LCC_incremental_builder
}
};
template<class LCC_>
struct Sew3_for_LCC_incremental_builder<LCC_, 2>
struct Sew3_for_LCC_incremental_builder_3<LCC_, 2>
{
static void run(LCC_&, typename LCC_::Dart_descriptor, typename LCC_::Dart_descriptor)
{}
@ -319,7 +319,7 @@ public:
if(LCC::dimension>2)
{
opposite=opposite_face();
Sew3_for_LCC_incremental_builder<LCC>::run(lcc, opposite, min_dart);
Sew3_for_LCC_incremental_builder_3<LCC>::run(lcc, opposite, min_dart);
add_face_in_array();
}
return first_dart;
@ -404,5 +404,5 @@ private:
} //namespace CGAL
#endif // CGAL_LINEAR_CELL_COMPLEX_INCREMENTAL_BUILDER_H //
#endif // CGAL_LINEAR_CELL_COMPLEX_INCREMENTAL_BUILDER_3_H //
// EOF //

View File

@ -1,6 +1,6 @@
#include <CGAL/Linear_cell_complex_for_combinatorial_map.h>
#include <CGAL/Linear_cell_complex_for_generalized_map.h>
#include <CGAL/Linear_cell_complex_incremental_builder.h>
#include <CGAL/Linear_cell_complex_incremental_builder_3.h>
#include <CGAL/Combinatorial_map_save_load.h>
#include "Linear_cell_complex_3_test.h"

View File

@ -21,11 +21,11 @@ LC_CTYPE=en_US.UTF-8
# "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 --do-it --public || 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 --do-it || echo ERROR
0 21 * * Mon,Tue,Wed 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.5
0 21 * * Fri cd $HOME/CGAL/create_internal_release-5.5-branch && /usr/bin/time scl enable rh-git29 -- $HOME/bin/create_release $HOME/CGAL/branches/CGAL-5.5-branch.git --public --do-it || echo ERROR
# from branch 5.4
0 21 * * Sat cd $HOME/CGAL/create_internal_release-5.4-branch && /usr/bin/time scl enable rh-git29 -- $HOME/bin/create_release $HOME/CGAL/branches/CGAL-5.4-branch.git --public --do-it || echo ERROR
0 21 * * Sat,Thu cd $HOME/CGAL/create_internal_release-5.4-branch && /usr/bin/time scl enable rh-git29 -- $HOME/bin/create_release $HOME/CGAL/branches/CGAL-5.4-branch.git --public --do-it || echo ERROR
## Older stuff

View File

@ -66,31 +66,20 @@ else()
endif(LINK_WITH_TBB)
endif()
# Compilable benchmark
set(BENCHMARK_SOURCE_FILES "concurrency.cpp")
add_msvc_precompiled_header("StdAfx.h" "StdAfx.cpp" BENCHMARK_SOURCE_FILES)
create_single_source_cgal_program(${BENCHMARK_SOURCE_FILES})
if(TARGET CGAL::TBB_support)
target_link_libraries(concurrency PUBLIC CGAL::TBB_support)
endif()
# Link with Boost.ProgramOptions (optional)
find_package(Boost QUIET COMPONENTS program_options)
if(Boost_PROGRAM_OPTIONS_FOUND)
if(CGAL_AUTO_LINK_ENABLED)
message(STATUS "Boost.ProgramOptions library: found")
if(TARGET Boost::program_options)
target_link_libraries(concurrency PRIVATE Boost::program_options)
else()
message(
STATUS "Boost.ProgramOptions library: ${Boost_PROGRAM_OPTIONS_LIBRARY}")
target_link_libraries(concurrency PRIVATE ${Boost_PROGRAM_OPTIONS_LIBRARY})
endif()
add_definitions("-DCGAL_USE_BOOST_PROGRAM_OPTIONS")
list(APPEND CGAL_3RD_PARTY_LIBRARIES ${Boost_LIBRARIES})
endif()
if(Boost_FOUND )
# Compilable benchmark
set(BENCHMARK_SOURCE_FILES "concurrency.cpp")
add_msvc_precompiled_header("StdAfx.h" "StdAfx.cpp" BENCHMARK_SOURCE_FILES)
create_single_source_cgal_program(${BENCHMARK_SOURCE_FILES})
if(TARGET CGAL::TBB_support)
target_link_libraries(concurrency PUBLIC CGAL::TBB_support)
endif()
else()
message(
STATUS
"NOTICE: This program requires Boost >= 1.34.1, and will not be compiled."
)
endif()

View File

@ -9,7 +9,6 @@ if(CGAL_MESH_3_VERBOSE)
endif()
find_package(CGAL REQUIRED COMPONENTS ImageIO)
find_package(Boost)
option(CGAL_ACTIVATE_CONCURRENT_MESH_3 "Activate parallelism in Mesh_3" OFF)
@ -23,9 +22,9 @@ endif()
find_package(Eigen3 3.1.0 QUIET) #(3.1.0 or greater)
include(CGAL_Eigen3_support)
if(NOT TARGET CGAL::Eigen3_support)
message( STATUS "NOTICE: All examples need the Eigen3 library, and will not be compiled." )
message("NOTICE: All examples require the Eigen3 library, and will not be compiled.")
return()
endif() #CGAL::Eigen_3_support
endif()
find_package(VTK QUIET COMPONENTS vtkImagingGeneral vtkIOImage NO_MODULE)
if(VTK_FOUND)
@ -51,12 +50,10 @@ create_single_source_cgal_program("mesh_implicit_sphere.cpp")
target_link_libraries(mesh_implicit_sphere PUBLIC CGAL::Eigen3_support)
create_single_source_cgal_program("mesh_implicit_sphere_variable_size.cpp")
target_link_libraries(mesh_implicit_sphere_variable_size
PUBLIC CGAL::Eigen3_support)
target_link_libraries(mesh_implicit_sphere_variable_size PUBLIC CGAL::Eigen3_support)
create_single_source_cgal_program("mesh_two_implicit_spheres_with_balls.cpp")
target_link_libraries(mesh_two_implicit_spheres_with_balls
PUBLIC CGAL::Eigen3_support)
target_link_libraries(mesh_two_implicit_spheres_with_balls PUBLIC CGAL::Eigen3_support)
create_single_source_cgal_program("mesh_implicit_domains_2.cpp"
"implicit_functions.cpp")
@ -66,8 +63,7 @@ create_single_source_cgal_program("mesh_cubes_intersection.cpp")
target_link_libraries(mesh_cubes_intersection PUBLIC CGAL::Eigen3_support)
create_single_source_cgal_program("mesh_cubes_intersection_with_features.cpp")
target_link_libraries(mesh_cubes_intersection_with_features
PUBLIC CGAL::Eigen3_support)
target_link_libraries(mesh_cubes_intersection_with_features PUBLIC CGAL::Eigen3_support)
create_single_source_cgal_program("mesh_implicit_domains.cpp"
"implicit_functions.cpp")
@ -169,21 +165,15 @@ if(TARGET CGAL::CGAL_ImageIO)
target_link_libraries(mesh_3D_weighted_image
PUBLIC CGAL::Eigen3_support CGAL::ITK_support)
else(ITK_FOUND)
message(STATUS "NOTICE: The examples that need ITK will not be compiled.")
message(STATUS "NOTICE: The examples that need ITK will not be compiled.")
endif(ITK_FOUND)
else()
message(
STATUS
"NOTICE: The examples mesh_3D_image.cpp, mesh_3D_weighted_image.cpp, mesh_3D_image_variable_size.cpp, mesh_optimization_example.cpp and mesh_optimization_lloyd_example.cpp need CGAL_ImageIO to be configured with ZLIB support, and will not be compiled."
)
message(STATUS "NOTICE: The examples mesh_3D_image.cpp, mesh_3D_weighted_image.cpp, mesh_3D_image_variable_size.cpp, mesh_optimization_example.cpp and mesh_optimization_lloyd_example.cpp need CGAL_ImageIO to be configured with ZLIB support, and will not be compiled.")
endif()
else()
message(
STATUS
"NOTICE: Some examples need the CGAL_ImageIO library, and will not be compiled."
)
message(STATUS "NOTICE: Some examples need the CGAL_ImageIO library, and will not be compiled.")
endif()
if(CGAL_ACTIVATE_CONCURRENT_MESH_3 AND TARGET CGAL::TBB_support)

View File

@ -1,151 +1,146 @@
# Created by the script cgal_create_cmake_script
# This is the CMake script for compiling a CGAL application.
cmake_minimum_required(VERSION 3.1...3.23)
project( Mesh_3_Tests )
find_package(CGAL QUIET COMPONENTS ImageIO)
find_package(CGAL REQUIRED COMPONENTS ImageIO)
if ( CGAL_FOUND )
# Use Eigen
find_package(Eigen3 3.1.0 QUIET) #(3.1.0 or greater)
include(CGAL_Eigen3_support)
if (NOT TARGET CGAL::Eigen3_support)
message("NOTICE: This project requires the Eigen library, and will not be compiled.")
return()
endif()
find_package( TBB QUIET )
include(CGAL_TBB_support)
find_package(TBB QUIET)
include(CGAL_TBB_support)
find_package( ITT QUIET )
find_package(ITT QUIET)
# Use Eigen
find_package(Eigen3 3.1.0 REQUIRED) #(3.1.0 or greater)
include(CGAL_Eigen3_support)
if (NOT TARGET CGAL::Eigen3_support)
message(STATUS "This project requires the Eigen library, and will not be compiled.")
return()
create_single_source_cgal_program( "test_boost_has_xxx.cpp" )
create_single_source_cgal_program( "test_mesh_capsule_var_distance_bound.cpp" )
create_single_source_cgal_program( "test_implicit_multi_domain_to_labeling_function_wrapper.cpp" )
create_single_source_cgal_program( "test_criteria.cpp" )
create_single_source_cgal_program( "test_domain_with_polyline_features.cpp" )
create_single_source_cgal_program( "test_labeled_mesh_domain_3.cpp" )
create_single_source_cgal_program( "test_mesh_criteria_creation.cpp" )
create_single_source_cgal_program( "test_without_detect_features.cpp" )
if(CGAL_ImageIO_USE_ZLIB)
create_single_source_cgal_program( "test_meshing_3D_image.cpp" )
create_single_source_cgal_program( "test_meshing_3D_image_deprecated.cpp" )
create_single_source_cgal_program( "test_meshing_3D_gray_image.cpp" )
create_single_source_cgal_program( "test_meshing_3D_gray_image_deprecated.cpp" )
else()
message(STATUS "NOTICE: The test 'test_meshing_3D_image' requires the ZLIB library, and will not be compiled.")
endif()
create_single_source_cgal_program( "test_meshing_implicit_function.cpp" )
create_single_source_cgal_program( "test_meshing_implicit_function_deprecated.cpp" )
create_single_source_cgal_program( "test_meshing_polyhedral_complex.cpp" )
create_single_source_cgal_program( "test_meshing_polyhedron.cpp" )
create_single_source_cgal_program( "test_meshing_polylines_only.cpp" )
create_single_source_cgal_program( "test_meshing_polyhedron_with_features.cpp" )
create_single_source_cgal_program( "test_meshing_verbose.cpp" )
create_single_source_cgal_program( "test_meshing_unit_tetrahedron.cpp" )
create_single_source_cgal_program( "test_meshing_with_default_edge_size.cpp" )
create_single_source_cgal_program( "test_meshing_determinism.cpp" )
create_single_source_cgal_program( "test_meshing_without_features_determinism.cpp" )
create_single_source_cgal_program( "test_mesh_3_issue_1554.cpp" )
create_single_source_cgal_program( "test_mesh_polyhedral_domain_with_features_deprecated.cpp" )
create_single_source_cgal_program( "test_meshing_with_one_step.cpp" )
create_single_source_cgal_program( "test_mesh_cell_base_3.cpp")
foreach(target
test_boost_has_xxx
test_mesh_capsule_var_distance_bound
test_implicit_multi_domain_to_labeling_function_wrapper
test_criteria
test_domain_with_polyline_features
test_labeled_mesh_domain_3
test_mesh_criteria_creation
test_without_detect_features
test_meshing_3D_image
test_meshing_3D_image_deprecated
test_meshing_3D_gray_image
test_meshing_3D_gray_image_deprecated
test_meshing_implicit_function
test_meshing_implicit_function_deprecated
test_meshing_polyhedral_complex
test_meshing_polyhedron
test_meshing_polylines_only
test_meshing_polyhedron_with_features
test_meshing_verbose
test_meshing_unit_tetrahedron
test_meshing_with_default_edge_size
test_meshing_determinism
test_meshing_without_features_determinism
test_mesh_3_issue_1554
test_mesh_polyhedral_domain_with_features_deprecated
test_mesh_cell_base_3
test_meshing_with_one_step.cpp)
if(TARGET ${target})
target_link_libraries(${target} PUBLIC CGAL::Eigen3_support)
endif()
endforeach()
create_single_source_cgal_program( "test_boost_has_xxx.cpp" )
create_single_source_cgal_program( "test_mesh_capsule_var_distance_bound.cpp" )
create_single_source_cgal_program( "test_implicit_multi_domain_to_labeling_function_wrapper.cpp" )
create_single_source_cgal_program( "test_criteria.cpp" )
create_single_source_cgal_program( "test_domain_with_polyline_features.cpp" )
create_single_source_cgal_program( "test_labeled_mesh_domain_3.cpp" )
create_single_source_cgal_program( "test_mesh_criteria_creation.cpp" )
create_single_source_cgal_program( "test_without_detect_features.cpp" )
if(CGAL_ImageIO_USE_ZLIB)
create_single_source_cgal_program( "test_meshing_3D_image.cpp" )
create_single_source_cgal_program( "test_meshing_3D_image_deprecated.cpp" )
create_single_source_cgal_program( "test_meshing_3D_gray_image.cpp" )
create_single_source_cgal_program( "test_meshing_3D_gray_image_deprecated.cpp" )
else()
message(STATUS "test_meshing_3D_image requires the ZLIB library, and will not be compiled.")
endif()
create_single_source_cgal_program( "test_meshing_implicit_function.cpp" )
create_single_source_cgal_program( "test_meshing_implicit_function_deprecated.cpp" )
create_single_source_cgal_program( "test_meshing_polyhedral_complex.cpp" )
create_single_source_cgal_program( "test_meshing_polyhedron.cpp" )
create_single_source_cgal_program( "test_meshing_polylines_only.cpp" )
create_single_source_cgal_program( "test_meshing_polyhedron_with_features.cpp" )
create_single_source_cgal_program( "test_meshing_verbose.cpp" )
create_single_source_cgal_program( "test_meshing_unit_tetrahedron.cpp" )
create_single_source_cgal_program( "test_meshing_with_default_edge_size.cpp" )
create_single_source_cgal_program( "test_meshing_determinism.cpp" )
create_single_source_cgal_program( "test_meshing_without_features_determinism.cpp" )
create_single_source_cgal_program( "test_mesh_3_issue_1554.cpp" )
create_single_source_cgal_program( "test_mesh_polyhedral_domain_with_features_deprecated.cpp" )
create_single_source_cgal_program( "test_meshing_with_one_step.cpp" )
create_single_source_cgal_program( "test_mesh_cell_base_3.cpp")
if(TARGET CGAL::TBB_support)
foreach(target
test_boost_has_xxx
test_mesh_capsule_var_distance_bound
test_implicit_multi_domain_to_labeling_function_wrapper
test_criteria
test_domain_with_polyline_features
test_labeled_mesh_domain_3
test_mesh_criteria_creation
test_without_detect_features
test_meshing_3D_image
test_meshing_3D_image_deprecated
test_meshing_3D_gray_image
test_meshing_3D_gray_image_deprecated
test_meshing_implicit_function
test_meshing_implicit_function_deprecated
test_meshing_polyhedral_complex
test_meshing_polyhedron
test_meshing_polylines_only
test_meshing_polyhedron_with_features
test_meshing_verbose
test_meshing_polyhedron_with_features
test_meshing_utilities.h
test_meshing_implicit_function
test_meshing_3D_image
test_meshing_3D_gray_image
test_meshing_unit_tetrahedron
test_meshing_with_default_edge_size
test_meshing_polyhedron
test_meshing_polyhedral_complex
test_mesh_capsule_var_distance_bound
test_meshing_determinism
test_meshing_without_features_determinism
test_mesh_3_issue_1554
test_mesh_polyhedral_domain_with_features_deprecated
test_mesh_cell_base_3
test_meshing_with_one_step.cpp)
)
if(TARGET ${target})
target_link_libraries(${target} PUBLIC CGAL::Eigen3_support)
target_link_libraries(${target} PUBLIC CGAL::TBB_support)
endif()
endforeach()
if(TARGET CGAL::TBB_support)
foreach(target
test_meshing_verbose
test_meshing_polyhedron_with_features
test_meshing_utilities.h
test_meshing_implicit_function
test_meshing_3D_image
test_meshing_3D_gray_image
test_meshing_unit_tetrahedron
test_meshing_polyhedron
test_meshing_polyhedral_complex
test_mesh_capsule_var_distance_bound
test_meshing_determinism
test_meshing_without_features_determinism
test_mesh_3_issue_1554
test_mesh_polyhedral_domain_with_features_deprecated
test_mesh_cell_base_3
)
if(TARGET ${target})
target_link_libraries(${target} PUBLIC CGAL::TBB_support)
endif()
endforeach()
if(BUILD_TESTING)
if(BUILD_TESTING)
set_property(TEST
execution___of__test_meshing_verbose
execution___of__test_meshing_polyhedron_with_features
execution___of__test_meshing_implicit_function
execution___of__test_meshing_unit_tetrahedron
execution___of__test_meshing_polyhedron
execution___of__test_meshing_polyhedral_complex
execution___of__test_mesh_capsule_var_distance_bound
execution___of__test_mesh_3_issue_1554
execution___of__test_mesh_polyhedral_domain_with_features_deprecated
execution___of__test_mesh_cell_base_3
PROPERTY RUN_SERIAL 1)
if(TARGET test_meshing_3D_image)
set_property(TEST
execution___of__test_meshing_verbose
execution___of__test_meshing_polyhedron_with_features
execution___of__test_meshing_implicit_function
execution___of__test_meshing_unit_tetrahedron
execution___of__test_meshing_polyhedron
execution___of__test_meshing_polyhedral_complex
execution___of__test_mesh_capsule_var_distance_bound
execution___of__test_mesh_3_issue_1554
execution___of__test_mesh_polyhedral_domain_with_features_deprecated
execution___of__test_mesh_cell_base_3
execution___of__test_meshing_3D_image
execution___of__test_meshing_3D_gray_image
PROPERTY RUN_SERIAL 1)
if(TARGET test_meshing_3D_image)
set_property(TEST
execution___of__test_meshing_3D_image
execution___of__test_meshing_3D_gray_image
PROPERTY RUN_SERIAL 1)
endif()
endif()
endif()
if(TARGET ITT::ITT)
target_link_libraries(test_meshing_polyhedron_with_features PRIVATE ITT::ITT)
target_compile_definitions(test_meshing_polyhedron_with_features PRIVATE CGAL_MESH_3_USE_INTEL_ITT)
target_link_libraries(test_meshing_verbose PRIVATE ITT::ITT)
target_compile_definitions(test_meshing_verbose PRIVATE CGAL_MESH_3_USE_INTEL_ITT)
endif()
if(BUILD_TESTING)
set_tests_properties(
execution___of__test_meshing_polyhedron_with_features
execution___of__test_meshing_verbose
PROPERTIES RESOURCE_LOCK Mesh_3_Tests_IO)
endif()
else()
message(STATUS "This program requires the CGAL library, and will not be compiled.")
endif()
if(TARGET ITT::ITT)
target_link_libraries(test_meshing_polyhedron_with_features PRIVATE ITT::ITT)
target_compile_definitions(test_meshing_polyhedron_with_features PRIVATE CGAL_MESH_3_USE_INTEL_ITT)
target_link_libraries(test_meshing_verbose PRIVATE ITT::ITT)
target_compile_definitions(test_meshing_verbose PRIVATE CGAL_MESH_3_USE_INTEL_ITT)
endif()
if(BUILD_TESTING)
set_tests_properties(
execution___of__test_meshing_polyhedron_with_features
execution___of__test_meshing_verbose
PROPERTIES RESOURCE_LOCK Mesh_3_Tests_IO)
endif()

View File

@ -4,13 +4,6 @@
cmake_minimum_required(VERSION 3.1...3.23)
project(Minkowski_sum_2_Tests)
# Commented out C++11 for now
# list(FIND CMAKE_CXX_COMPILE_FEATURES cxx_generalized_initializers has_cpp11)
# if (has_cpp11 LESS 0)
# message(STATUS "NOTICE: These examples requires a C++11 compiler and will not be compiled.")
# return()
# endif()
find_package(CGAL REQUIRED COMPONENTS Core)
# create a target per cppfile

View File

@ -6,16 +6,13 @@ cmake_minimum_required(VERSION 3.1...3.23)
project(NewKernel_d_Tests)
if(CMAKE_COMPILER_IS_GNUCCX AND CMAKE_CXX_COMPILER_VERSION VERSION_LESS 4.4)
message(
STATUS
"NOTICE: this directory requires a version of gcc >= 4.4, and will not be compiled."
)
message("NOTICE: this directory requires a version of gcc >= 4.4, and will not be compiled.")
return()
endif()
find_package(CGAL REQUIRED)
find_package(Eigen3)
find_package(Eigen3 QUIET)
include(CGAL_Eigen3_support)
if(TARGET CGAL::Eigen3_support)
file(
@ -28,10 +25,5 @@ if(TARGET CGAL::Eigen3_support)
target_link_libraries(${target} PUBLIC CGAL::Eigen3_support)
endforeach()
else()
message(
STATUS
"NOTICE: These programs require the Eigen3 library, and will not be compiled."
)
message("NOTICE: These programs require the Eigen3 library, and will not be compiled.")
endif()

View File

@ -10,7 +10,7 @@
//
// Author(s) : Michael Hemmer <hemmer@mpi-inf.mpg.de>
// This files adds an optional static cache to convert_to_bfi for Sqrt_extension
// This file adds an optional static cache to convert_to_bfi for Sqrt_extension
#ifndef CGAL_SQRT_EXTENSION_CONVERT_TO_BFI_H
#define CGAL_SQRT_EXTENSION_CONVERT_TO_BFI_H

View File

@ -8,11 +8,8 @@ project(Number_types_Tests)
find_package(CGAL REQUIRED COMPONENTS Core)
include(CGAL_VersionUtils)
include_directories(BEFORE include)
create_single_source_cgal_program("bench_interval.cpp")
create_single_source_cgal_program("constant.cpp")
create_single_source_cgal_program("CORE_BigFloat.cpp")
@ -65,19 +62,21 @@ create_single_source_cgal_program("_test_valid_finite_float.cpp")
create_single_source_cgal_program("to_interval_test.cpp")
create_single_source_cgal_program("unsigned.cpp")
create_single_source_cgal_program("utilities.cpp")
find_package( GMP )
if( GMP_FOUND AND NOT CGAL_DISABLE_GMP )
create_single_source_cgal_program( "CORE_Expr_ticket_4296.cpp" )
find_package( MPFI )
find_package(MPFI QUIET)
if( MPFI_FOUND )
include( ${MPFI_USE_FILE} )
endif() #MPFI_FOUND
endif() #GMP_FOUND AND NOT CGAL_DISABLE_GMP
if(NOT CGAL_DISABLE_GMP)
create_single_source_cgal_program( "Gmpfi.cpp" )
create_single_source_cgal_program( "Gmpfr_bug.cpp" )
create_single_source_cgal_program( "test_eigen.cpp" )
find_package(Eigen3 3.2.0) #(requires 3.2.0 or greater)
find_package(Eigen3 3.2.0 QUIET) #(requires 3.2.0 or greater)
include(CGAL_Eigen3_support)
if (TARGET CGAL::Eigen3_support)
target_link_libraries(test_eigen PUBLIC CGAL::Eigen3_support)
@ -85,11 +84,8 @@ if(NOT CGAL_DISABLE_GMP)
else()#NOT CGAL_DISABLE_GMP
message(STATUS "NOTICE: Some tests require the CGAL_Core library, and will not be compiled.")
endif()#NOT CGAL_DISABLE_GMP
# all the programs below will be linked against MPFI in case it is present
create_single_source_cgal_program("Quotient_new.cpp")
create_single_source_cgal_program("test_nt_Coercion_traits.cpp")
find_package(Boost)
if(Boost_FOUND)
create_single_source_cgal_program("to_interval_test_boost.cpp")
endif()

View File

@ -7,14 +7,10 @@ project(Optimal_bounding_box_Benchmark)
# CGAL and its components
find_package(CGAL REQUIRED)
# include helper file
include(${CGAL_USE_FILE})
find_package(Eigen3 3.1.0 REQUIRED) #(3.1.0 or greater)
find_package(Eigen3 3.1.0 QUIET) #(3.1.0 or greater)
include(CGAL_Eigen3_support)
if(NOT TARGET CGAL::Eigen3_support)
message(
STATUS "This project requires the Eigen library, and will not be compiled.")
message("NOTICE: This project requires the Eigen library, and will not be compiled.")
return()
endif()

View File

@ -6,11 +6,10 @@ project(Optimal_bounding_box_Examples)
find_package(CGAL REQUIRED)
find_package(Eigen3 3.1.0 REQUIRED) #(3.1.0 or greater)
find_package(Eigen3 3.1.0 QUIET) #(3.1.0 or greater)
include(CGAL_Eigen3_support)
if(NOT TARGET CGAL::Eigen3_support)
message(
STATUS "This project requires the Eigen library, and will not be compiled.")
message("NOTICE: This project requires the Eigen library, and will not be compiled.")
return()
endif()
@ -18,7 +17,6 @@ create_single_source_cgal_program("obb_example.cpp")
create_single_source_cgal_program("obb_with_point_maps_example.cpp")
create_single_source_cgal_program("rotated_aabb_tree_example.cpp")
foreach(target obb_example obb_with_point_maps_example
rotated_aabb_tree_example)
foreach(target obb_example obb_with_point_maps_example rotated_aabb_tree_example)
target_link_libraries(${target} PUBLIC CGAL::Eigen3_support)
endforeach()

View File

@ -6,11 +6,10 @@ project(Optimal_bounding_box_Tests)
find_package(CGAL REQUIRED)
find_package(Eigen3 3.1.0 REQUIRED) #(3.1.0 or greater)
find_package(Eigen3 3.1.0 QUIET) #(3.1.0 or greater)
include(CGAL_Eigen3_support)
if(NOT TARGET CGAL::Eigen3_support)
message(
STATUS "This project requires the Eigen library, and will not be compiled.")
message("NOTICE: This project requires the Eigen library, and will not be compiled.")
return()
endif()

View File

@ -33,14 +33,10 @@ find_path(
DOC "Path to the header of the CImg library")
if(CIMG_INCLUDE_DIR)
message(
STATUS "CImg library found, the demo can load point set from image files.")
message(STATUS "NOTICE: CImg library found, the demo can load point set from image files.")
else()
message(
STATUS
"CImg library was not found, the demo will not be able to load point set from image files. "
"Try setting the environment variable CIMG_INC_DIR to point to the path of the directory containing CImg.h."
)
message(STATUS "CImg library was not found, the demo will not be able to load point set from image files. "
"Try setting the environment variable CIMG_INC_DIR to point to the path of the directory containing CImg.h.")
endif()
if(CGAL_Qt5_FOUND AND Qt5_FOUND)
@ -81,7 +77,7 @@ if(CGAL_Qt5_FOUND AND Qt5_FOUND)
target_include_directories(Otr2_demo PRIVATE ${CIMG_INCLUDE_DIR})
# Is pthread around? If yes, we need to link against it
set(CMAKE_THREAD_PREFER_PTHREAD TRUE)
find_package(Threads)
find_package(Threads QUIET)
if(CMAKE_USE_PTHREADS_INIT)
target_link_libraries(Otr2_demo PRIVATE ${CMAKE_THREAD_LIBS_INIT})
endif()
@ -105,10 +101,7 @@ else(
set(OTR2_MISSING_DEPS "Qt5.4, ${OTR2_MISSING_DEPS}")
endif()
message(
STATUS
"NOTICE: This demo requires ${OTR2_MISSING_DEPS}and will not be compiled."
)
message("NOTICE: This demo requires ${OTR2_MISSING_DEPS} and will not be compiled.")
endif(
CGAL_Qt5_FOUND

View File

@ -4,7 +4,7 @@
cmake_minimum_required(VERSION 3.1...3.23)
project(Orthtree_benchmarks)
find_package(CGAL REQUIRED QUIET OPTIONAL_COMPONENTS Core)
find_package(CGAL REQUIRED OPTIONAL_COMPONENTS Core)
create_single_source_cgal_program("construction.cpp")
create_single_source_cgal_program("nearest_neighbor.cpp")

View File

@ -4,27 +4,21 @@
cmake_minimum_required(VERSION 3.1...3.23)
project(Orthtree_Examples)
find_package(CGAL REQUIRED QUIET OPTIONAL_COMPONENTS Core)
if (CGAL_FOUND)
find_package(CGAL REQUIRED OPTIONAL_COMPONENTS Core)
create_single_source_cgal_program("octree_build_from_point_set.cpp")
create_single_source_cgal_program("octree_build_from_point_vector.cpp")
create_single_source_cgal_program("octree_build_with_custom_split.cpp")
create_single_source_cgal_program("octree_find_nearest_neighbor.cpp")
create_single_source_cgal_program("octree_traversal_custom.cpp")
create_single_source_cgal_program("octree_traversal_manual.cpp")
create_single_source_cgal_program("octree_traversal_preorder.cpp")
create_single_source_cgal_program("octree_grade.cpp")
create_single_source_cgal_program("quadtree_build_from_point_vector.cpp")
create_single_source_cgal_program("octree_build_from_point_set.cpp")
create_single_source_cgal_program("octree_build_from_point_vector.cpp")
create_single_source_cgal_program("octree_build_with_custom_split.cpp")
create_single_source_cgal_program("octree_find_nearest_neighbor.cpp")
create_single_source_cgal_program("octree_traversal_custom.cpp")
create_single_source_cgal_program("octree_traversal_manual.cpp")
create_single_source_cgal_program("octree_traversal_preorder.cpp")
create_single_source_cgal_program("octree_grade.cpp")
create_single_source_cgal_program("quadtree_build_from_point_vector.cpp")
find_package(Eigen3 3.1.91) #(requires 3.2.0 or greater)
include(CGAL_Eigen_support)
if (TARGET CGAL::Eigen_support)
create_single_source_cgal_program("orthtree_build.cpp")
target_link_libraries(orthtree_build PUBLIC CGAL::Eigen_support)
endif()
else ()
message(WARNING
"This program requires the CGAL library, and will not be compiled.")
endif ()
find_package(Eigen3 3.1.91 QUIET) #(requires 3.1.91 or greater)
include(CGAL_Eigen_support)
if (TARGET CGAL::Eigen_support)
create_single_source_cgal_program("orthtree_build.cpp")
target_link_libraries(orthtree_build PUBLIC CGAL::Eigen_support)
endif()

View File

@ -4,7 +4,7 @@
cmake_minimum_required(VERSION 3.1...3.23)
project(Orthtree_Tests)
find_package(CGAL REQUIRED QUIET OPTIONAL_COMPONENTS Core)
find_package(CGAL REQUIRED OPTIONAL_COMPONENTS Core)
create_single_source_cgal_program("test_octree_equality.cpp")
create_single_source_cgal_program("test_octree_refine.cpp")

Some files were not shown because too many files have changed in this diff Show More