From 27589e4b26e5240e079f180e91ee7cab34fd47f8 Mon Sep 17 00:00:00 2001 From: Maxime Gimeno Date: Mon, 5 Oct 2020 14:37:38 +0200 Subject: [PATCH 01/32] Remove preconfigured 3rd party libs options --- Installation/CMakeLists.txt | 5 --- Installation/cmake/modules/CGAL_Macros.cmake | 11 ++--- .../modules/CGAL_SetupDependencies.cmake | 40 +++++++------------ Installation/cmake/modules/CGAL_UseMPFI.cmake | 8 +--- 4 files changed, 19 insertions(+), 45 deletions(-) diff --git a/Installation/CMakeLists.txt b/Installation/CMakeLists.txt index 272431c72dc..719dc11e08e 100644 --- a/Installation/CMakeLists.txt +++ b/Installation/CMakeLists.txt @@ -610,8 +610,6 @@ endforeach() # The following variables are in the cache just so subdirectories can set them persistently. # But they are not intended to persist from run to run as normal cache variables. # Similar variables are created when a library is detected. -# -cache_set(CGAL_3RD_PARTY_PRECONFIGURED "" ) cache_set(CGAL_3RD_PARTY_DEFINITIONS "" ) cache_set(CGAL_3RD_PARTY_INCLUDE_DIRS "" ) @@ -619,7 +617,6 @@ cache_set(CGAL_3RD_PARTY_LIBRARIES "" ) cache_set(CGAL_3RD_PARTY_LIBRARIES_DIRS "" ) # default is on, but some use-cases need to set it to off, e.g., debian packages -option( CGAL_ENABLE_PRECONFIG "Select to allow to preconfiguration of external libraries" ON) # additional info: some header files in CGAL add additional code if # certain optional libs are installed, and some examples/tests rely on @@ -753,8 +750,6 @@ endforeach() include_directories (${CGAL_INCLUDE_DIRS}) -cache_get(CGAL_3RD_PARTY_PRECONFIGURED ) - cache_get(CGAL_3RD_PARTY_DEFINITIONS ) cache_get(CGAL_3RD_PARTY_INCLUDE_DIRS ) cache_get(CGAL_3RD_PARTY_LIBRARIES ) diff --git a/Installation/cmake/modules/CGAL_Macros.cmake b/Installation/cmake/modules/CGAL_Macros.cmake index 2a937ee19e0..58900e2ea1f 100644 --- a/Installation/cmake/modules/CGAL_Macros.cmake +++ b/Installation/cmake/modules/CGAL_Macros.cmake @@ -308,9 +308,8 @@ if( NOT CGAL_MACROS_FILE_INCLUDED ) set( vlib "${CGAL_EXT_LIB_${component}_PREFIX}" ) - if ( NOT CGAL_IGNORE_PRECONFIGURED_${component} AND ${vlib}_FOUND) + if (${vlib}_FOUND) - ####message( STATUS "External library ${component} has been preconfigured") use_lib( ${component} ${${vlib}_USE_FILE}) else() @@ -411,28 +410,24 @@ if( NOT CGAL_MACROS_FILE_INCLUDED ) foreach( lib ${CGAL_SUPPORTING_3RD_PARTY_LIBRARIES} ) list( FIND CGAL_ESSENTIAL_3RD_PARTY_LIBRARIES "${lib}" POSITION ) - # if lib is essential or preconfiguration for an activated library ... - if ( ("${POSITION}" STRGREATER "-1") OR ( CGAL_ENABLE_PRECONFIG AND WITH_${lib} )) + # if lib is essential ... + if ( ("${POSITION}" STRGREATER "-1") ) set (vlib ${CGAL_EXT_LIB_${lib}_PREFIX} ) #the next 'if' is needed to avoid ${vlib} config variables to be overidden in case of a local configuration change - file( APPEND ${CMAKE_BINARY_DIR}/CGALConfig.cmake "if (NOT CGAL_IGNORE_PRECONFIGURED_${lib})\n") file( APPEND ${CMAKE_BINARY_DIR}/CGALConfig.cmake " set( ${vlib}_FOUND \"${${vlib}_FOUND}\" )\n") file( APPEND ${CMAKE_BINARY_DIR}/CGALConfig.cmake " set( ${vlib}_USE_FILE \"${${vlib}_USE_FILE}\" )\n") file( APPEND ${CMAKE_BINARY_DIR}/CGALConfig.cmake " set( ${vlib}_INCLUDE_DIR \"${${vlib}_INCLUDE_DIR}\" )\n") file( APPEND ${CMAKE_BINARY_DIR}/CGALConfig.cmake " set( ${vlib}_LIBRARIES \"${${vlib}_LIBRARIES}\" )\n") file( APPEND ${CMAKE_BINARY_DIR}/CGALConfig.cmake " set( ${vlib}_DEFINITIONS \"${${vlib}_DEFINITIONS}\" )\n") - file( APPEND ${CMAKE_BINARY_DIR}/CGALConfig.cmake "endif()\n\n") #the next 'if' is needed to avoid ${vlib} config variables to be overidden in case of a local configuration change - file( APPEND ${CMAKE_BINARY_DIR}/config/CGALConfig.cmake "if (NOT CGAL_IGNORE_PRECONFIGURED_${lib})\n") file( APPEND ${CMAKE_BINARY_DIR}/config/CGALConfig.cmake " set( ${vlib}_FOUND \"${${vlib}_FOUND}\")\n") file( APPEND ${CMAKE_BINARY_DIR}/config/CGALConfig.cmake " set( ${vlib}_USE_FILE \"${${vlib}_USE_FILE}\" )\n") file( APPEND ${CMAKE_BINARY_DIR}/config/CGALConfig.cmake " set( ${vlib}_INCLUDE_DIR \"${${vlib}_INCLUDE_DIR}\" )\n") file( APPEND ${CMAKE_BINARY_DIR}/config/CGALConfig.cmake " set( ${vlib}_LIBRARIES \"${${vlib}_LIBRARIES}\" )\n") file( APPEND ${CMAKE_BINARY_DIR}/config/CGALConfig.cmake " set( ${vlib}_DEFINITIONS \"${${vlib}_DEFINITIONS}\" )\n") - file( APPEND ${CMAKE_BINARY_DIR}/config/CGALConfig.cmake "endif()\n\n") endif() endforeach() diff --git a/Installation/cmake/modules/CGAL_SetupDependencies.cmake b/Installation/cmake/modules/CGAL_SetupDependencies.cmake index 1c0135b155a..0f51c80147f 100644 --- a/Installation/cmake/modules/CGAL_SetupDependencies.cmake +++ b/Installation/cmake/modules/CGAL_SetupDependencies.cmake @@ -15,53 +15,41 @@ foreach (lib ${CGAL_SUPPORTING_3RD_PARTY_LIBRARIES}) if ("${POSITION}" STRGREATER "-1" OR WITH_${lib}) # In both cases CGAL_USE_ will be finally set. - + #message (STATUS "With ${lib} given or essential: pos=${POSITION}") - if ( CGAL_ENABLE_PRECONFIG ) - message (STATUS "Preconfiguring library: ${lib} ...") - else() - message (STATUS "Configuring library: ${lib} ...") - endif() - + message (STATUS "Configuring library: ${lib} ...") + find_package( ${lib} ) - - if ( ${vlib}_FOUND ) - if ( CGAL_ENABLE_PRECONFIG ) - message( STATUS "${lib} has been preconfigured:") - message( STATUS " Use${lib}-file: ${${vlib}_USE_FILE}") - message( STATUS " ${lib} include: ${${vlib}_INCLUDE_DIR}" ) - message( STATUS " ${lib} libraries: ${${vlib}_LIBRARIES}" ) - message( STATUS " ${lib} definitions: ${${vlib}_DEFINITIONS}" ) - else() - message( STATUS "${lib} has been configured") - use_lib( ${vlib} ${${vlib}_USE_FILE}) - endif() - + + if ( ${vlib}_FOUND ) + message( STATUS "${lib} has been configured") + use_lib( ${vlib} ${${vlib}_USE_FILE}) + # TODO EBEB what about Qt5, zlib etc? set ( CGAL_USE_${vlib} TRUE ) # Part 2: Add some lib-specific definitions or obtain version - - if (${lib} STREQUAL "GMP") + + if (${lib} STREQUAL "GMP") get_dependency_version(GMP) endif() - if (${lib} STREQUAL "MPFR") + if (${lib} STREQUAL "MPFR") set( MPFR_DEPENDENCY_INCLUDE_DIR ${GMP_INCLUDE_DIR} ) set( MPFR_DEPENDENCY_LIBRARIES ${GMP_LIBRARIES} ) get_dependency_version(MPFR) endif() - if (${lib} STREQUAL "LEDA") + if (${lib} STREQUAL "LEDA") # special case for LEDA - add a flag message( STATUS "LEDA cxx flags: ${LEDA_CXX_FLAGS}" ) uniquely_add_flags( CMAKE_CXX_FLAGS ${LEDA_CXX_FLAGS} ) endif() - else() - + else() + if ("${POSITION}" STRGREATER "-1") # if lib is essential message( FATAL_ERROR "CGAL requires ${lib} to be found" ) endif() diff --git a/Installation/cmake/modules/CGAL_UseMPFI.cmake b/Installation/cmake/modules/CGAL_UseMPFI.cmake index c19a0d5ff36..186f807e1f9 100644 --- a/Installation/cmake/modules/CGAL_UseMPFI.cmake +++ b/Installation/cmake/modules/CGAL_UseMPFI.cmake @@ -3,7 +3,7 @@ if( MPFI_FOUND AND NOT MPFI_SETUP ) - if (GMP_FOUND AND MPFR_FOUND) + if (GMP_FOUND AND MPFR_FOUND) message( STATUS "UseMPFI" ) message( STATUS "MPFI include: ${MPFI_INCLUDE_DIR}" ) @@ -30,11 +30,7 @@ if( MPFI_FOUND AND NOT MPFI_SETUP ) add_definitions( ${MPFI_DEFINITIONS} "-DCGAL_USE_MPFI" ) link_libraries( ${MPFI_LIBRARIES} ) else( COMPILED_MPFI_TEST AND MPFI_TEST_RESULT EQUAL 0) - if (CGAL_ENABLE_PRECONFIG) - message( STATUS "MPFI is incorrectly configured with CGAL" ) - else() - message( STATUS "MPFI is incorrectly configured on this system" ) - endif() + message( STATUS "MPFI is incorrectly configured on this system" ) message( STATUS "Output of the failed MPFI test was:\n${MPFI_TEST_COMPILATION_OUTPUT}" ) message( STATUS "End of the MPFI test output" ) From fa2e8ec0a4bba421ac4ecd78006580c93c2df73e Mon Sep 17 00:00:00 2001 From: Maxime Gimeno Date: Mon, 5 Oct 2020 15:19:55 +0200 Subject: [PATCH 02/32] remove WITH_XXX cache options --- Installation/CMakeLists.txt | 7 +--- Installation/cmake/modules/CGAL_Macros.cmake | 39 -------------------- Installation/lib/cmake/CGAL/CGALConfig.cmake | 4 +- 3 files changed, 3 insertions(+), 47 deletions(-) diff --git a/Installation/CMakeLists.txt b/Installation/CMakeLists.txt index 719dc11e08e..a338a5189b3 100644 --- a/Installation/CMakeLists.txt +++ b/Installation/CMakeLists.txt @@ -526,7 +526,7 @@ message("== Detect external libraries ==") # External libs configured when Qt5 lib of cgal are required # Coin is used in KDS, but no FindCoin or FindCOIN exists # There exists FindIPE, FindMKL, but they are only used to support supporting libs -list (INSERT CGAL_SUPPORTING_3RD_PARTY_LIBRARIES 0 GMP MPFR ZLIB OpenGL LEDA MPFI RS RS3 OpenNL Eigen3 ESBTL Coin3D NTL IPE) +list (INSERT CGAL_SUPPORTING_3RD_PARTY_LIBRARIES 0 LEDA ) # Where CMake is run several times, to avoid duplicates list(REMOVE_DUPLICATES CGAL_SUPPORTING_3RD_PARTY_LIBRARIES) @@ -562,13 +562,8 @@ if(CGAL_DISABLE_GMP) unset(MPFR_FOUND CACHE) unset(WITH_CGAL_Core) unset(WITH_CGAL_Core CACHE) - unset(WITH_GMP) - unset(WITH_GMP CACHE) unset(CGAL_USE_GMP) unset(CGAL_USE_GMP CACHE) - unset(WITH_MPFR) - unset(WITH_MPFR CACHE) - # Nasty trick to make sure is not used when CGAL_DISABLE_GMP is TRUE file(WRITE "${CMAKE_BINARY_DIR}/include/gmp.h" "#error GMP is disabled by the CMake option CGAL_DISABLE_GMP") diff --git a/Installation/cmake/modules/CGAL_Macros.cmake b/Installation/cmake/modules/CGAL_Macros.cmake index 58900e2ea1f..c1e16875dfd 100644 --- a/Installation/cmake/modules/CGAL_Macros.cmake +++ b/Installation/cmake/modules/CGAL_Macros.cmake @@ -333,45 +333,6 @@ if( NOT CGAL_MACROS_FILE_INCLUDED ) endmacro() - macro( use_essential_libs ) - - # Comment: This is subject to be changed in the future - # - either more specific (giving precise include_dir- and link-order) - # - or even less specific if order becomes less relevant - # Eric Berberich 2012/06/29 - - if(NOT CGAL_DISABLE_GMP) - if(RS_FOUND) - use_component( RS ) - endif() - - if(MPFI_FOUND) - use_component( MPFI ) - endif() - - if(MPFR_FOUND) - use_component( MPFR ) - endif() - - if (GMPXX_FOUND) - use_component( GMPXX ) - endif() - - if(GMP_FOUND) - use_component( GMP ) - endif() - endif(NOT CGAL_DISABLE_GMP) - - if(LEDA_FOUND) - use_component( LEDA ) - endif() - - if(NTL_FOUND) - use_component( NTL ) - endif() - endmacro() - - function( cgal_setup_module_path ) # Avoid to modify the modules path twice if(NOT CGAL_MODULE_PATH_IS_SET) diff --git a/Installation/lib/cmake/CGAL/CGALConfig.cmake b/Installation/lib/cmake/CGAL/CGALConfig.cmake index 92f6a884000..98201bd7c46 100644 --- a/Installation/lib/cmake/CGAL/CGALConfig.cmake +++ b/Installation/lib/cmake/CGAL/CGALConfig.cmake @@ -35,10 +35,10 @@ if(BRANCH_BUILD) foreach(package_dir ${packages_dirs}) set(inc_dir ${package_dir}/include) if(IS_DIRECTORY ${inc_dir} - AND IS_DIRECTORY ${package_dir}/package_info) + AND IS_DIRECTORY ${package_dir}/package_info) list(APPEND CGAL_INCLUDE_DIRS ${inc_dir}) if(EXISTS ${inc_dir}/CGAL/config.h) - set(CGAL_FOUND TRUE) + set(CGAL_FOUND TRUE) endif() endif() endforeach() From 39f97ca56b5ff43607cf7f7665c6a58f3df4a078 Mon Sep 17 00:00:00 2001 From: Maxime Gimeno Date: Mon, 5 Oct 2020 15:44:05 +0200 Subject: [PATCH 03/32] remove NOT CGAL_HEADER_ONLY --- .../include/CGAL/Algebraic_kernel_converter.h | 62 --- ...ion_objects_on_roots_and_polynomials_2_2.h | 222 ---------- ...unctions_comparison_root_for_circles_2_2.h | 52 --- ...ions_on_roots_and_polynomial_1_2_and_2_2.h | 184 -------- ...l_functions_on_roots_and_polynomials_2_2.h | 227 ---------- .../CGAL/Algebraic_kernel_for_circles_2_2.h | 95 ---- .../include/CGAL/Polynomials_1_2.h | 68 --- .../include/CGAL/Polynomials_2_2.h | 71 --- .../include/CGAL/Root_for_circles_2_2.h | 132 ------ .../Algebraic_kernel_for_circles/copyright | 2 - .../Algebraic_kernel_for_circles/dependencies | 12 - .../Algebraic_kernel_for_circles/license.txt | 1 - .../Algebraic_kernel_for_circles/maintainer | 1 - .../CMakeLists.txt | 26 -- .../include/CGAL/_test_constructor.h | 36 -- .../include/CGAL/_test_predicates.h | 414 ------------------ .../test_Algebraic_kernel.cpp | 20 - CGAL_Core/src/CGAL_Core/CMakeLists.txt | 6 +- CGAL_ImageIO/src/CGAL_ImageIO/CMakeLists.txt | 4 +- GraphicsView/src/CGAL_Qt5/CMakeLists.txt | 18 +- Installation/CMakeLists.txt | 115 +---- .../CGAL_Qt5_moc_and_resource_files.cmake | 18 - .../modules/CGAL_SetupCGALDependencies.cmake | 9 - .../CGAL_SetupCGAL_Qt5Dependencies.cmake | 10 +- Installation/cmake/modules/UseCGAL.cmake | 15 +- Installation/lib/cmake/CGAL/CGALConfig.cmake | 2 - Installation/src/CGAL/CMakeLists.txt | 8 +- Installation/src/CMakeLists.txt | 92 +--- .../init.cmake | 6 +- .../init.cmake | 2 - Polyhedron/demo/Polyhedron/CMakeLists.txt | 4 +- 31 files changed, 33 insertions(+), 1901 deletions(-) delete mode 100644 Algebraic_kernel_for_circles/include/CGAL/Algebraic_kernel_converter.h delete mode 100644 Algebraic_kernel_for_circles/include/CGAL/Algebraic_kernel_for_circles/function_objects_on_roots_and_polynomials_2_2.h delete mode 100644 Algebraic_kernel_for_circles/include/CGAL/Algebraic_kernel_for_circles/internal_functions_comparison_root_for_circles_2_2.h delete mode 100644 Algebraic_kernel_for_circles/include/CGAL/Algebraic_kernel_for_circles/internal_functions_on_roots_and_polynomial_1_2_and_2_2.h delete mode 100644 Algebraic_kernel_for_circles/include/CGAL/Algebraic_kernel_for_circles/internal_functions_on_roots_and_polynomials_2_2.h delete mode 100644 Algebraic_kernel_for_circles/include/CGAL/Algebraic_kernel_for_circles_2_2.h delete mode 100644 Algebraic_kernel_for_circles/include/CGAL/Polynomials_1_2.h delete mode 100644 Algebraic_kernel_for_circles/include/CGAL/Polynomials_2_2.h delete mode 100644 Algebraic_kernel_for_circles/include/CGAL/Root_for_circles_2_2.h delete mode 100644 Algebraic_kernel_for_circles/package_info/Algebraic_kernel_for_circles/copyright delete mode 100644 Algebraic_kernel_for_circles/package_info/Algebraic_kernel_for_circles/dependencies delete mode 100644 Algebraic_kernel_for_circles/package_info/Algebraic_kernel_for_circles/license.txt delete mode 100644 Algebraic_kernel_for_circles/package_info/Algebraic_kernel_for_circles/maintainer delete mode 100644 Algebraic_kernel_for_circles/test/Algebraic_kernel_for_circles/CMakeLists.txt delete mode 100644 Algebraic_kernel_for_circles/test/Algebraic_kernel_for_circles/include/CGAL/_test_constructor.h delete mode 100644 Algebraic_kernel_for_circles/test/Algebraic_kernel_for_circles/include/CGAL/_test_predicates.h delete mode 100644 Algebraic_kernel_for_circles/test/Algebraic_kernel_for_circles/test_Algebraic_kernel.cpp diff --git a/Algebraic_kernel_for_circles/include/CGAL/Algebraic_kernel_converter.h b/Algebraic_kernel_for_circles/include/CGAL/Algebraic_kernel_converter.h deleted file mode 100644 index 4f4578b8c66..00000000000 --- a/Algebraic_kernel_for_circles/include/CGAL/Algebraic_kernel_converter.h +++ /dev/null @@ -1,62 +0,0 @@ -// Copyright (c) 2003-2006 INRIA Sophia-Antipolis (France). -// All rights reserved. -// -// This file is part of CGAL (www.cgal.org). -// -// $URL$ -// $Id$ -// SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial -// -// Author(s) : Monique Teillaud, Sylvain Pion, Constantinos Tsirogiannis - -// Partially supported by the IST Programme of the EU as a Shared-cost -// RTD (FET Open) Project under Contract No IST-2000-26473 -// (ECG - Effective Computational Geometry for Curves and Surfaces) -// and a STREP (FET Open) Project under Contract No IST-006413 -// (ACS -- Algorithms for Complex Shapes) - -#ifndef CGAL_ALGEBRAIC_KERNEL_FOR_CIRCLES_CONVERTER_H -#define CGAL_ALGEBRAIC_KERNEL_FOR_CIRCLES_CONVERTER_H - -#include - - -#include - -namespace CGAL { - -// TODO : -// - FT converter ? - -template < class Al_K1, class Al_K2, - class RT_converter = NT_converter, - class Root_of_converter = NT_converter > -class Algebraic_kernel_converter { -public: - - typedef typename Al_K1::RT RT_1; - typedef typename Al_K2::RT RT_2; - typedef RT_converter RT_type_converter; - typedef Root_of_converter Root_of_type_converter; - - typename Al_K2::Polynomial_1_2 operator () (const typename Al_K1::Polynomial_1_2 &p) const - { - return typename Al_K2::Polynomial_1_2(RT_converter()(p.a()), - RT_converter()(p.b()), - RT_converter()(p.c())); - } - - typename Al_K2::Polynomial_for_circles_2_2 operator () - (const typename Al_K1::Polynomial_for_circles_2_2 &p) const - { - return typename Al_K2::Polynomial_for_circles_2_2(RT_converter()(p.a()), - RT_converter()(p.b()), - RT_converter()(p.r_sq())); - } -}; - -} //namespace CGAL - -#endif // CGAL_ALGEBRAIC_KERNEL_FOR_CIRCLES_CONVERTER_H diff --git a/Algebraic_kernel_for_circles/include/CGAL/Algebraic_kernel_for_circles/function_objects_on_roots_and_polynomials_2_2.h b/Algebraic_kernel_for_circles/include/CGAL/Algebraic_kernel_for_circles/function_objects_on_roots_and_polynomials_2_2.h deleted file mode 100644 index 489803e770e..00000000000 --- a/Algebraic_kernel_for_circles/include/CGAL/Algebraic_kernel_for_circles/function_objects_on_roots_and_polynomials_2_2.h +++ /dev/null @@ -1,222 +0,0 @@ -// Copyright (c) 2003-2006 INRIA Sophia-Antipolis (France). -// All rights reserved. -// -// This file is part of CGAL (www.cgal.org). -// -// $URL$ -// $Id$ -// SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial -// -// Author(s) : Monique Teillaud, Sylvain Pion - -// Partially supported by the IST Programme of the EU as a Shared-cost -// RTD (FET Open) Project under Contract No IST-2000-26473 -// (ECG - Effective Computational Geometry for Curves and Surfaces) -// and a STREP (FET Open) Project under Contract No IST-006413 -// (ACS -- Algorithms for Complex Shapes) - -#ifndef CGAL_ALGEBRAIC_KERNEL_FOR_CIRCLES_FUNCTION_OBJECTS_ON_ROOTS_AND_POLYNOMIALS_2_H -#define CGAL_ALGEBRAIC_KERNEL_FOR_CIRCLES_FUNCTION_OBJECTS_ON_ROOTS_AND_POLYNOMIALS_2_H - -#include - - -#include -#include -#include - -namespace CGAL { - -namespace AlgebraicFunctors { - - template < class AK > - class Solve - { - typedef typename AK::Polynomial_for_circles_2_2 Equation_Circle; - typedef typename AK::Polynomial_1_2 Equation_Line; - - public: - typedef void result_type; - - template < class OutputIterator > - OutputIterator - operator()(const Equation_Circle & e1, - const Equation_Circle & e2, - OutputIterator res) const - { return AlgebraicFunctors::solve ( e1, e2, res); } - - template < class OutputIterator > - OutputIterator - operator()(const Equation_Line & e1, - const Equation_Circle & e2, - OutputIterator res) const - { return AlgebraicFunctors::solve ( e1, e2, res); } - - - template < class OutputIterator > - OutputIterator - operator()(const Equation_Circle & e1, - const Equation_Line & e2, - OutputIterator res) const - { return AlgebraicFunctors::solve ( e1, e2, res); } - - template < class OutputIterator > - OutputIterator - operator()(const Equation_Line & e1, - const Equation_Line & e2, - OutputIterator res) const - { return AlgebraicFunctors::solve ( e1, e2, res); } - - }; - - template < class AK > - class Construct_polynomial_for_circles_2_2 - { - typedef typename AK::RT RT; - typedef typename AK::Polynomial_for_circles_2_2 Polynomial_for_circles_2_2; - - public: - - typedef Polynomial_for_circles_2_2 result_type; - - result_type - operator()(const RT& xc, const RT& yc, const RT& r_sq) const - { return Polynomial_for_circles_2_2(xc, yc, r_sq); } - - }; - - template < class AK > - class Construct_polynomial_1_2 - { - typedef typename AK::RT RT; - typedef typename AK::Polynomial_1_2 Polynomial_1_2; - - public: - - typedef Polynomial_1_2 result_type; - - result_type - operator()( const RT& a, const RT& b, const RT& c) const - { return Polynomial_1_2(a, b, c); } - - }; - - template < class AK > - class Sign_at - { - typedef typename AK::Polynomial_1_2 Polynomial_1_2; - typedef typename AK::Polynomial_for_circles_2_2 Polynomial_for_circles_2_2; - typedef typename AK::Root_for_circles_2_2 Root_for_circles_2_2; - - public: - typedef CGAL::Sign result_type; - - result_type - operator()( const Polynomial_for_circles_2_2 & equation, - const Root_for_circles_2_2 & r ) const - { return AlgebraicFunctors::sign_at(equation, r); } - - result_type - operator()( const Polynomial_1_2 & equation, - const Root_for_circles_2_2 & r ) const - { return AlgebraicFunctors::sign_at(equation, r); } - - }; - - template < class AK > - class X_critical_points - { - typedef typename AK::Root_for_circles_2_2 Root_for_circles_2_2; - typedef typename AK::Polynomial_for_circles_2_2 Polynomial_for_circles_2_2; - - public: - typedef void result_type; - - Root_for_circles_2_2 - operator()(const Polynomial_for_circles_2_2 & c, - bool i) const - { return AlgebraicFunctors::x_critical_point(c,i); } - - template - OutputIterator - operator()(const Polynomial_for_circles_2_2 & c, - OutputIterator res) const - { return AlgebraicFunctors::x_critical_points(c,res); } - - }; - - template < class AK > - class Y_critical_points - { - typedef typename AK::Root_for_circles_2_2 Root_for_circles_2_2; - typedef typename AK::Polynomial_for_circles_2_2 Polynomial_for_circles_2_2; - - public: - typedef void result_type; - - Root_for_circles_2_2 - operator()(const Polynomial_for_circles_2_2 & c, - bool i) const - { return AlgebraicFunctors::y_critical_point(c,i); } - - template - OutputIterator - operator()(const Polynomial_for_circles_2_2 & c, - OutputIterator res) const - { return AlgebraicFunctors::y_critical_points(c,res); } - - }; - - template < class AK > - class Compare_x - { - typedef typename AK::Root_for_circles_2_2 Root_for_circles_2_2; - typedef typename AK::RT RT; - - public: - typedef CGAL::Comparison_result result_type; - - result_type - operator()(const Root_for_circles_2_2& r1, - const Root_for_circles_2_2& r2) const - { return AlgebraicFunctors::compare_x(r1, r2); } - - }; - - template < class AK > - class Compare_y - { - typedef typename AK::Root_for_circles_2_2 Root_for_circles_2_2; - typedef typename AK::RT RT; - - public: - typedef CGAL::Comparison_result result_type; - - result_type - operator()(const Root_for_circles_2_2& r1, - const Root_for_circles_2_2& r2) const - { return AlgebraicFunctors::compare_y(r1, r2); } - - }; - - template < class AK > - class Compare_xy - { - typedef typename AK::Root_for_circles_2_2 Root_for_circles_2_2; - typedef typename AK::RT RT; - - public: - typedef CGAL::Comparison_result result_type; - - result_type - operator()(const Root_for_circles_2_2& r1, - const Root_for_circles_2_2& r2) const - { return AlgebraicFunctors::compare_xy(r1, r2); } - - }; - -} // namespace AlgebraicFunctors - -} //namespace CGAL - -#endif // CGAL_ALGEBRAIC_KERNEL_FOR_CIRCLES_FUNCTION_OBJECTS_ON_ROOTS_AND_POLYNOMIALS_2_H diff --git a/Algebraic_kernel_for_circles/include/CGAL/Algebraic_kernel_for_circles/internal_functions_comparison_root_for_circles_2_2.h b/Algebraic_kernel_for_circles/include/CGAL/Algebraic_kernel_for_circles/internal_functions_comparison_root_for_circles_2_2.h deleted file mode 100644 index f33f0b3ad76..00000000000 --- a/Algebraic_kernel_for_circles/include/CGAL/Algebraic_kernel_for_circles/internal_functions_comparison_root_for_circles_2_2.h +++ /dev/null @@ -1,52 +0,0 @@ -// Copyright (c) 2003-2006 INRIA Sophia-Antipolis (France). -// All rights reserved. -// -// This file is part of CGAL (www.cgal.org). -// -// $URL$ -// $Id$ -// SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial -// -// Author(s) : Monique Teillaud, Sylvain Pion, Julien Hazebrouck - -// Partially supported by the IST Programme of the EU as a Shared-cost -// RTD (FET Open) Project under Contract No IST-2000-26473 -// (ECG - Effective Computational Geometry for Curves and Surfaces) -// and a STREP (FET Open) Project under Contract No IST-006413 -// (ACS -- Algorithms for Complex Shapes) - -#ifndef CGAL_ALGEBRAIC_KERNEL_FOR_CIRCLES_COMPARISON_ROOT_FOR_CIRCLES_2_2_H -#define CGAL_ALGEBRAIC_KERNEL_FOR_CIRCLES_COMPARISON_ROOT_FOR_CIRCLES_2_2_H - -#include - - - -namespace CGAL { - namespace AlgebraicFunctors{ - - template - Comparison_result - compare_x(const CGAL::Root_for_circles_2_2& r1, const CGAL::Root_for_circles_2_2& r2){ - return compare(r1.x(), r2.x()); - } - - template - Comparison_result - compare_y(const CGAL::Root_for_circles_2_2& r1, const CGAL::Root_for_circles_2_2& r2){ - return compare(r1.y(), r2.y()); - } - - template - Comparison_result - compare_xy(const CGAL::Root_for_circles_2_2& r1, const CGAL::Root_for_circles_2_2& r2){ - Comparison_result compx = compare_x(r1, r2); - if(compx != 0) - return compx; - return compare_y(r1, r2); - } - - } // namespace AlgebraicFunctors -} // namespace CGAL - -#endif // CGAL_ALGEBRAIC_KERNEL_FOR_CIRCLES_COMPARISON_ROOT_FOR_CIRCLES_2_2_H diff --git a/Algebraic_kernel_for_circles/include/CGAL/Algebraic_kernel_for_circles/internal_functions_on_roots_and_polynomial_1_2_and_2_2.h b/Algebraic_kernel_for_circles/include/CGAL/Algebraic_kernel_for_circles/internal_functions_on_roots_and_polynomial_1_2_and_2_2.h deleted file mode 100644 index 7adb4252867..00000000000 --- a/Algebraic_kernel_for_circles/include/CGAL/Algebraic_kernel_for_circles/internal_functions_on_roots_and_polynomial_1_2_and_2_2.h +++ /dev/null @@ -1,184 +0,0 @@ -// Copyright (c) 2003-2006 INRIA Sophia-Antipolis (France). -// All rights reserved. -// -// This file is part of CGAL (www.cgal.org). -// -// $URL$ -// $Id$ -// SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial -// -// Author(s) : Monique Teillaud, Sylvain Pion, Julien Hazebrouck - -// Partially supported by the IST Programme of the EU as a Shared-cost -// RTD (FET Open) Project under Contract No IST-2000-26473 -// (ECG - Effective Computational Geometry for Curves and Surfaces) -// and a STREP (FET Open) Project under Contract No IST-006413 -// (ACS -- Algorithms for Complex Shapes) - -#ifndef CGAL_ALGEBRAIC_KERNEL_FOR_CIRCLES_FUNCTIONS_ON_ROOTS_AND_POLYNOMIAL_1_2_AND_2_2_H -#define CGAL_ALGEBRAIC_KERNEL_FOR_CIRCLES_FUNCTIONS_ON_ROOTS_AND_POLYNOMIAL_1_2_AND_2_2_H - -#include - - - -namespace CGAL { - namespace AlgebraicFunctors { - - - template < class AK, class OutputIterator > - inline - OutputIterator - solve( const typename AK::Polynomial_1_2 & e1, - const typename AK::Polynomial_for_circles_2_2 & e2, - OutputIterator res ) - { - typedef typename AK::FT FT; - typedef typename AK::Root_of_2 Root_of_2; - typedef typename AK::Root_for_circles_2_2 Root_for_circles_2_2; - if (is_zero(e1.a())){//horizontal line - - const FT hy = -e1.c()/e1.b(); - const FT hdisc = e2.r_sq() - CGAL::square(hy - e2.b()); - CGAL::Sign sign_hdisc = CGAL::sign(hdisc); - - if(sign_hdisc == NEGATIVE) return res; - if(sign_hdisc == ZERO) { - *res++ = std::make_pair - ( Root_for_circles_2_2(Root_of_2(e2.a()), - Root_of_2(hy)), 2u); - return res; - } - const Root_of_2 x_res1 = make_root_of_2(e2.a(),FT(-1),hdisc); - const Root_of_2 x_res2 = make_root_of_2(e2.a(),FT(1),hdisc); - const Root_of_2 y_res = Root_of_2(hy); - *res++ = std::make_pair - ( Root_for_circles_2_2(x_res1, y_res), 1u); - *res++ = std::make_pair - ( Root_for_circles_2_2(x_res2, y_res), 1u); - return res; - } - else if(is_zero(e1.b())){//vertical line - - const FT vx = -e1.c()/e1.a(); - const FT vdisc = e2.r_sq() - CGAL::square(vx - e2.a()); - CGAL::Sign sign_vdisc = CGAL::sign(vdisc); - - if(sign_vdisc == NEGATIVE) return res; - if(sign_vdisc == ZERO) { - *res++ = std::make_pair - ( Root_for_circles_2_2(Root_of_2(vx), - Root_of_2(e2.b())), 2u); - return res; - } - - const Root_of_2 x_res = Root_of_2(vx); - const Root_of_2 y_res1 = make_root_of_2(e2.b(),FT(-1),vdisc); - const Root_of_2 y_res2 = make_root_of_2(e2.b(),FT(1),vdisc); - - *res++ = std::make_pair - ( Root_for_circles_2_2(x_res, y_res1), 1u); - *res++ = std::make_pair - ( Root_for_circles_2_2(x_res, y_res2), 1u); - return res; - } - else { - - const FT line_factor = CGAL::square(e1.a()) + CGAL::square(e1.b()); - const FT disc = line_factor*e2.r_sq() - - CGAL::square(e1.a()*e2.a() + e1.b()*e2.b() + e1.c()); - CGAL::Sign sign_disc = CGAL::sign(disc); - - if (sign_disc == NEGATIVE) return res; - - const FT aux = e1.b()*e2.a() - e1.a()*e2.b(); - const FT x_base = (aux*e1.b() - e1.a()*e1.c()) / line_factor; - const FT y_base = (-aux*e1.a() - e1.b()*e1.c()) / line_factor; - - if (sign_disc == ZERO) { - *res++ = std::make_pair - ( Root_for_circles_2_2(Root_of_2(x_base), - Root_of_2(y_base)), 2u); - return res; - } - - // We have two intersection points, whose coordinates are one-root numbers. - const FT x_root_coeff = e1.b() / line_factor; - const FT y_root_coeff = e1.a() / line_factor; - - if (CGAL::sign(e1.b()) == POSITIVE) { - *res++ = std::make_pair - ( Root_for_circles_2_2(make_root_of_2(x_base, -x_root_coeff, disc), - make_root_of_2(y_base, y_root_coeff, disc)), 1u); - *res++ = std::make_pair - ( Root_for_circles_2_2(make_root_of_2(x_base, x_root_coeff, disc), - make_root_of_2(y_base, -y_root_coeff, disc)), 1u); - } else { - *res++ = std::make_pair - ( Root_for_circles_2_2(make_root_of_2(x_base, x_root_coeff, disc), - make_root_of_2(y_base, -y_root_coeff, disc)), 1u); - *res++ = std::make_pair - ( Root_for_circles_2_2(make_root_of_2(x_base, -x_root_coeff, disc), - make_root_of_2(y_base, y_root_coeff, disc)), 1u); - } - return res; - } - } - - template < class AK, class OutputIterator > - inline - OutputIterator - solve( const typename AK::Polynomial_for_circles_2_2 & e1, - const typename AK::Polynomial_1_2 & e2, - OutputIterator res ) - { - return solve (e2, e1, res); - } - - template < class AK, class OutputIterator > - inline - OutputIterator - solve( const typename AK::Polynomial_1_2 & e1, - const typename AK::Polynomial_1_2 & e2, - OutputIterator res ) - { - typedef typename AK::FT FT; - typedef typename AK::Root_of_2 Root_of_2; - typedef typename AK::Root_for_circles_2_2 Root_for_circles_2_2; - //parallele case - const FT delta = e1.a()*e2.b() - e2.a()*e1.b(); - if(is_zero(delta)) return res; - //case : e2 horizontal - if(is_zero(e2.a())){ - const FT sol = -e2.c()/e2.b(); - *res++ = std::make_pair - ( Root_for_circles_2_2(Root_of_2(-(e1.b()*sol + e1.c())/e1.a()), - Root_of_2(sol)), 1u); - return res; - } - //general case - const FT sol = (e2.a()*e1.c() - e2.c()*e1.a()) / delta; - *res++ = std::make_pair - ( Root_for_circles_2_2(Root_of_2(-(e2.b()*sol + e2.c())/e2.a()), - Root_of_2(sol)), 1u); - return res; - } - - template < class AK > - inline - Sign sign_at( const typename AK::Polynomial_1_2 & equation, - const typename AK::Root_for_circles_2_2 & r) - { - Comparison_result c = compare(r.x()*equation.a(), - -equation.c() - r.y()*equation.b()); - if(c == EQUAL) return ZERO; - if(c == LARGER) return POSITIVE; - return NEGATIVE; - } - - - - } // namespace AlgebraicFunctors -} // namespace CGAL - -#endif // CGAL_ALGEBRAIC_KERNEL_FOR_CIRCLES_FUNCTIONS_ON_ROOTS_AND_POLYNOMIAL_1_2_AND_2_2_H diff --git a/Algebraic_kernel_for_circles/include/CGAL/Algebraic_kernel_for_circles/internal_functions_on_roots_and_polynomials_2_2.h b/Algebraic_kernel_for_circles/include/CGAL/Algebraic_kernel_for_circles/internal_functions_on_roots_and_polynomials_2_2.h deleted file mode 100644 index 8068dc01bb2..00000000000 --- a/Algebraic_kernel_for_circles/include/CGAL/Algebraic_kernel_for_circles/internal_functions_on_roots_and_polynomials_2_2.h +++ /dev/null @@ -1,227 +0,0 @@ -// Copyright (c) 2003-2006 INRIA Sophia-Antipolis (France). -// All rights reserved. -// -// This file is part of CGAL (www.cgal.org). -// -// $URL$ -// $Id$ -// SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial -// -// Author(s) : Monique Teillaud, Sylvain Pion - -// Partially supported by the IST Programme of the EU as a Shared-cost -// RTD (FET Open) Project under Contract No IST-2000-26473 -// (ECG - Effective Computational Geometry for Curves and Surfaces) -// and a STREP (FET Open) Project under Contract No IST-006413 -// (ACS -- Algorithms for Complex Shapes) - -#ifndef CGAL_ALGEBRAIC_KERNEL_FOR_CIRCLES_FUNCTIONS_ON_ROOTS_AND_POLYNOMIALS_2_H -#define CGAL_ALGEBRAIC_KERNEL_FOR_CIRCLES_FUNCTIONS_ON_ROOTS_AND_POLYNOMIALS_2_H - -#include - - -#include - -namespace CGAL { - namespace AlgebraicFunctors { - - template < class AK, class OutputIterator > - inline - OutputIterator - solve( const typename AK::Polynomial_for_circles_2_2 & e1, - const typename AK::Polynomial_for_circles_2_2 & e2, - OutputIterator res ) - { - CGAL_precondition( ! (e1 == e2) ); // polynomials of this type cannot be multiple - // of one another if they are not equal - - typedef typename AK::FT FT; - typedef typename AK::Root_of_2 Root_of_2; - typedef typename AK::Root_for_circles_2_2 Root_for_circles_2_2; - const FT dx = e2.a() - e1.a(); - const FT dy = e2.b() - e1.b(); - - const FT dx2 = CGAL::square(dx); - const FT dy2 = CGAL::square(dy); - const FT dist2 = dx2 + dy2; // squared distance between centers - const FT diff_sqr_rad = e1.r_sq() - e2.r_sq(); - const FT disc = 2*dist2*(e1.r_sq() + e2.r_sq()) - - (CGAL::square(diff_sqr_rad) + CGAL::square(dist2)); - CGAL::Sign sign_disc = CGAL::sign(disc); - - if (sign_disc == NEGATIVE) return res; - - const FT x_base = ((e1.a() + e2.a()) + dx*diff_sqr_rad / dist2) / 2; - const FT y_base = ((e1.b() + e2.b()) + dy*diff_sqr_rad / dist2) / 2; - - if (sign_disc == ZERO) { - // one double root, - // no need to care about the boolean of the Root_of - *res++ = std::make_pair - ( Root_for_circles_2_2 - (Root_of_2(x_base), Root_of_2(y_base)), - static_cast(2) ); // multiplicity = 2 - return res; - } - - CGAL::Sign sign_dy = CGAL::sign (dy); - CGAL::Sign sign_dx = CGAL::sign (dx); - - // else, 2 distinct roots - if (sign_dy == ZERO) { - const FT y_root_coeff = dx / (2 * dist2); - if(sign_dx == NEGATIVE) { - * res++ = std::make_pair - ( Root_for_circles_2_2(Root_of_2(x_base), - make_root_of_2(y_base, y_root_coeff, disc)), - static_cast(1) ); - - * res++ = std::make_pair - ( Root_for_circles_2_2(Root_of_2(x_base), - make_root_of_2(y_base, -y_root_coeff, disc)), - static_cast(1) ); - } else { - * res++ = std::make_pair - ( Root_for_circles_2_2(Root_of_2(x_base), - make_root_of_2(y_base, -y_root_coeff, disc)), - static_cast(1) ); - - * res++ = std::make_pair - ( Root_for_circles_2_2(Root_of_2(x_base), - make_root_of_2(y_base, y_root_coeff, disc)), - static_cast(1) ); - } - return res; - } - - if (sign_dx == ZERO) { - const FT x_root_coeff = dy / (2 * dist2); - if(sign_dy == POSITIVE) { - * res++ = std::make_pair - ( Root_for_circles_2_2(make_root_of_2(x_base, -x_root_coeff, disc), - Root_of_2(y_base)), - static_cast(1) ); - - * res++ = std::make_pair - ( Root_for_circles_2_2(make_root_of_2(x_base, x_root_coeff, disc), - Root_of_2(y_base)), - static_cast(1) ); - } else { - * res++ = std::make_pair - ( Root_for_circles_2_2(make_root_of_2(x_base, x_root_coeff, disc), - Root_of_2(y_base)), - static_cast(1) ); - - * res++ = std::make_pair - ( Root_for_circles_2_2(make_root_of_2(x_base, -x_root_coeff, disc), - Root_of_2(y_base)), - static_cast(1) ); - } - return res; - } - - const FT x_root_coeff = dy / (2 * dist2); - const FT y_root_coeff = dx / (2 * dist2); - - if (sign_dy == POSITIVE) { - * res++ = std::make_pair - ( Root_for_circles_2_2(make_root_of_2(x_base, -x_root_coeff, disc), - make_root_of_2(y_base, y_root_coeff, disc)), - static_cast(1) ); - - * res++ = std::make_pair - ( Root_for_circles_2_2(make_root_of_2(x_base, x_root_coeff, disc), - make_root_of_2(y_base, -y_root_coeff, disc)), - static_cast(1) ); - } else { - * res++ = std::make_pair - ( Root_for_circles_2_2(make_root_of_2(x_base, x_root_coeff, disc), - make_root_of_2(y_base, -y_root_coeff, disc)), - static_cast(1) ); - * res++ = std::make_pair - ( Root_for_circles_2_2(make_root_of_2(x_base, -x_root_coeff, disc), - make_root_of_2(y_base, y_root_coeff, disc)), - static_cast(1) ); - } - - return res; - } - - template < class AK > - inline - Sign sign_at( const typename AK::Polynomial_for_circles_2_2 & equation, - const typename AK::Root_for_circles_2_2 & r) - { - Comparison_result c = compare(square(r.x() - equation.a()), - equation.r_sq() - - square(r.y() - equation.b())); - if(c == EQUAL) return ZERO; - if(c == LARGER) return POSITIVE; - return NEGATIVE; - } - - - template - typename AK::Root_for_circles_2_2 - x_critical_point(const typename AK::Polynomial_for_circles_2_2 & c, - bool i) - { - typedef typename AK::Root_of_2 Root_of_2; - typedef typename AK::FT FT; - typedef typename AK::Root_for_circles_2_2 Root_for_circles_2_2; - - const Root_of_2 a1 = make_root_of_2(c.a(),FT(i?-1:1),c.r_sq()); - return Root_for_circles_2_2(a1, c.b()); - } - - template - OutputIterator - x_critical_points(const typename AK::Polynomial_for_circles_2_2 & c, - OutputIterator res) - { - typedef typename AK::FT FT; - typedef typename AK::Root_for_circles_2_2 Root_for_circles_2_2; - - *res++ = Root_for_circles_2_2( - make_root_of_2(c.a(),FT(-1),c.r_sq()), c.b()); - *res++ = Root_for_circles_2_2( - make_root_of_2(c.a(),FT(1),c.r_sq()), c.b()); - - return res; - } - - template - typename AK::Root_for_circles_2_2 - y_critical_point(const typename AK::Polynomial_for_circles_2_2 &c, - bool i) - { - typedef typename AK::Root_of_2 Root_of_2; - typedef typename AK::FT FT; - typedef typename AK::Root_for_circles_2_2 Root_for_circles_2_2; - - const Root_of_2 b1 = make_root_of_2(c.b(),FT(i?-1:1),c.r_sq()); - return Root_for_circles_2_2(c.a(),b1); - } - - template - OutputIterator - y_critical_points(const typename AK::Polynomial_for_circles_2_2 & c, - OutputIterator res) - { - typedef typename AK::Root_for_circles_2_2 Root_for_circles_2_2; - - *res++ = Root_for_circles_2_2(c.a(), - make_root_of_2(c.b(),-1,c.r_sq())); - *res++ = Root_for_circles_2_2(c.a(), - make_root_of_2(c.b(),1,c.r_sq())); - - return res; - } - - - - } // namespace AlgebraicFunctors -} // namespace CGAL - -#endif // CGAL_ALGEBRAIC_KERNEL_FOR_CIRCLES_FUNCTIONS_ON_ROOTS_AND_POLYNOMIALS_2_H diff --git a/Algebraic_kernel_for_circles/include/CGAL/Algebraic_kernel_for_circles_2_2.h b/Algebraic_kernel_for_circles/include/CGAL/Algebraic_kernel_for_circles_2_2.h deleted file mode 100644 index 08a55cbbed2..00000000000 --- a/Algebraic_kernel_for_circles/include/CGAL/Algebraic_kernel_for_circles_2_2.h +++ /dev/null @@ -1,95 +0,0 @@ -// Copyright (c) 2003-2006 INRIA Sophia-Antipolis (France). -// All rights reserved. -// -// This file is part of CGAL (www.cgal.org). -// -// $URL$ -// $Id$ -// SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial -// -// Author(s) : Monique Teillaud, Sylvain Pion - -// Partially supported by the IST Programme of the EU as a Shared-cost -// RTD (FET Open) Project under Contract No IST-2000-26473 -// (ECG - Effective Computational Geometry for Curves and Surfaces) -// and a STREP (FET Open) Project under Contract No IST-006413 -// (ACS -- Algorithms for Complex Shapes) - -#ifndef CGAL_ALGEBRAIC_KERNEL_FOR_CIRCLES_2_2_H -#define CGAL_ALGEBRAIC_KERNEL_FOR_CIRCLES_2_2_H - -#include - - -#include -#include -#include -#include -#include - -#include - -namespace CGAL { - - template< class RT_ > - struct Algebraic_kernel_for_circles_2_2 - { - typedef Algebraic_kernel_for_circles_2_2 Self; - - typedef RT_ RT; - typedef typename Root_of_traits< RT >::RootOf_1 FT; - - typedef CGAL::Polynomial_1_2 Polynomial_1_2; - typedef CGAL::Polynomial_for_circles_2_2 Polynomial_for_circles_2_2; - // problem RT / FT ? - - typedef typename Root_of_traits< RT >::RootOf_2 Root_of_2; - typedef CGAL::Root_for_circles_2_2< RT > Root_for_circles_2_2; - - typedef AlgebraicFunctors::Construct_polynomial_1_2 - Construct_polynomial_1_2; - typedef AlgebraicFunctors::Construct_polynomial_for_circles_2_2 - Construct_polynomial_for_circles_2_2; - - typedef AlgebraicFunctors::Solve Solve; - typedef AlgebraicFunctors::Sign_at Sign_at; - typedef AlgebraicFunctors::X_critical_points X_critical_points; - typedef AlgebraicFunctors::Y_critical_points Y_critical_points; - typedef AlgebraicFunctors::Compare_x Compare_x; - typedef AlgebraicFunctors::Compare_y Compare_y; - typedef AlgebraicFunctors::Compare_xy Compare_xy; - - Construct_polynomial_1_2 - construct_polynomial_1_2_object() const - { return Construct_polynomial_1_2(); } - - Construct_polynomial_for_circles_2_2 - construct_polynomial_for_circles_2_2_object() const - { return Construct_polynomial_for_circles_2_2(); } - - Solve solve_object() const - { return Solve(); } - - Sign_at sign_at_object() const - { return Sign_at(); } - - X_critical_points x_critical_points_object() const - { return X_critical_points(); } - - Y_critical_points y_critical_points_object() const - { return Y_critical_points(); } - - Compare_x compare_x_object() const - { return Compare_x(); } - - Compare_y compare_y_object() const - { return Compare_y(); } - - Compare_xy compare_xy_object() const - { return Compare_xy(); } - - }; - -} //namespace CGAL - -#endif // CGAL_ALGEBRAIC_KERNEL_FOR_CIRCLES_2_2_H diff --git a/Algebraic_kernel_for_circles/include/CGAL/Polynomials_1_2.h b/Algebraic_kernel_for_circles/include/CGAL/Polynomials_1_2.h deleted file mode 100644 index 5aa5884aac6..00000000000 --- a/Algebraic_kernel_for_circles/include/CGAL/Polynomials_1_2.h +++ /dev/null @@ -1,68 +0,0 @@ -// Copyright (c) 2003-2006 INRIA Sophia-Antipolis (France). -// All rights reserved. -// -// This file is part of CGAL (www.cgal.org). -// -// $URL$ -// $Id$ -// SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial -// -// Author(s) : Monique Teillaud, Sylvain Pion - -// Partially supported by the IST Programme of the EU as a Shared-cost -// RTD (FET Open) Project under Contract No IST-2000-26473 -// (ECG - Effective Computational Geometry for Curves and Surfaces) -// and a STREP (FET Open) Project under Contract No IST-006413 -// (ACS -- Algorithms for Complex Shapes) - -#ifndef CGAL_ALGEBRAIC_KERNEL_FOR_CIRCLES_POLYNOMIALS_1_2_H -#define CGAL_ALGEBRAIC_KERNEL_FOR_CIRCLES_POLYNOMIALS_1_2_H - -#include - - -#include - -namespace CGAL { - -template < typename RT_ > -class Polynomial_1_2 -{ - RT_ rep[3]; // stores a, b, c for line ax+by+c=0 - -public: - - typedef RT_ RT; - - Polynomial_1_2(){} - - Polynomial_1_2(const RT & a, const RT & b, const RT & c) - { - rep[0]=a; - rep[1]=b; - rep[2]=c; - } - - const RT & a() const - { return rep[0]; } - - const RT & b() const - { return rep[1]; } - - const RT & c() const - { return rep[2]; } -}; - -template < typename RT > -bool -operator == ( const Polynomial_1_2 & p1, - const Polynomial_1_2 & p2 ) -{ - return( (p1.a() == p2.a()) && - (p1.b() == p2.b()) && - (p1.c() == p2.c()) ); -} - -} //namespace CGAL - -#endif //CGAL_ALGEBRAIC_KERNEL_FOR_CIRCLES_POLYNOMIALS_1_2_H diff --git a/Algebraic_kernel_for_circles/include/CGAL/Polynomials_2_2.h b/Algebraic_kernel_for_circles/include/CGAL/Polynomials_2_2.h deleted file mode 100644 index 80e64656062..00000000000 --- a/Algebraic_kernel_for_circles/include/CGAL/Polynomials_2_2.h +++ /dev/null @@ -1,71 +0,0 @@ -// Copyright (c) 2003-2006 INRIA Sophia-Antipolis (France). -// All rights reserved. -// -// This file is part of CGAL (www.cgal.org). -// -// $URL$ -// $Id$ -// SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial -// -// Author(s) : Monique Teillaud, Sylvain Pion - -// Partially supported by the IST Programme of the EU as a Shared-cost -// RTD (FET Open) Project under Contract No IST-2000-26473 -// (ECG - Effective Computational Geometry for Curves and Surfaces) -// and a STREP (FET Open) Project under Contract No IST-006413 -// (ACS -- Algorithms for Complex Shapes) - -#ifndef CGAL_ALGEBRAIC_KERNEL_FOR_CIRCLES_POLYNOMIALS_2_2_H -#define CGAL_ALGEBRAIC_KERNEL_FOR_CIRCLES_POLYNOMIALS_2_2_H - -#include - - -//////////// FIXME - pb RT (cas general Polynomial_2_2) ou FT (ici) - -#include - -namespace CGAL { - -// polynomials of the form (X-a)^2 + (Y-b)^2 - R^2 -template < typename FT_ > -class Polynomial_for_circles_2_2 -{ - FT_ rep[3]; // stores a, b, R^2 - -public: - - typedef FT_ FT; - - Polynomial_for_circles_2_2(){} - - Polynomial_for_circles_2_2(const FT & a, const FT & b, const FT & rsq) - { - rep[0]=a; - rep[1]=b; - rep[2]=rsq; - } - - const FT & a() const - { return rep[0]; } - - const FT & b() const - { return rep[1]; } - - const FT & r_sq() const - { return rep[2]; } -}; - -template < typename FT > -bool -operator == ( const Polynomial_for_circles_2_2 & p1, - const Polynomial_for_circles_2_2 & p2 ) -{ - return( (p1.a() == p2.a()) && - (p1.b() == p2.b()) && - (p1.r_sq() == p2.r_sq()) ); -} - -} //namespace CGAL - -#endif //CGAL_ALGEBRAIC_KERNEL_FOR_CIRCLES_POLYNOMIALS_2_2_H diff --git a/Algebraic_kernel_for_circles/include/CGAL/Root_for_circles_2_2.h b/Algebraic_kernel_for_circles/include/CGAL/Root_for_circles_2_2.h deleted file mode 100644 index bb2b92d350d..00000000000 --- a/Algebraic_kernel_for_circles/include/CGAL/Root_for_circles_2_2.h +++ /dev/null @@ -1,132 +0,0 @@ -// Copyright (c) 2003-2006 INRIA Sophia-Antipolis (France). -// All rights reserved. -// -// This file is part of CGAL (www.cgal.org). -// -// $URL$ -// $Id$ -// SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial -// -// Author(s) : Monique Teillaud, Sylvain Pion - -// Partially supported by the IST Programme of the EU as a Shared-cost -// RTD (FET Open) Project under Contract No IST-2000-26473 -// (ECG - Effective Computational Geometry for Curves and Surfaces) -// and a STREP (FET Open) Project under Contract No IST-006413 -// (ACS -- Algorithms for Complex Shapes) - -#ifndef CGAL_ALGEBRAIC_KERNEL_FOR_CIRCLES_ROOT_FOR_CIRCLES_2_2_H -#define CGAL_ALGEBRAIC_KERNEL_FOR_CIRCLES_ROOT_FOR_CIRCLES_2_2_H - -#include - - -#include -#include -#include -#include -#include - -namespace CGAL { - -template < typename RT_ > -class Root_for_circles_2_2 { - - typedef RT_ RT; - typedef typename Root_of_traits< RT >::RootOf_2 Root_of_2; - typedef typename Root_of_traits< RT >::RootOf_1 FT; - - private: - Handle_for x_; - Handle_for y_; - - public: - Root_for_circles_2_2(){} - - Root_for_circles_2_2(const Root_of_2& r1, const Root_of_2& r2) - : x_(r1), y_(r2) - { - // When it is an interval this assertion dont compile - //CGAL_assertion((r1.is_rational() || r2.is_rational()) || - // (r1.gamma() == r2.gamma())); - } - - const Root_of_2& x() const - { return get_pointee_or_identity(x_); } - - const Root_of_2& y() const - { return get_pointee_or_identity(y_); } - - CGAL::Bbox_2 bbox() const - { - CGAL::Interval_nt<> - ix=to_interval(x()), - iy=to_interval(y()); - return CGAL::Bbox_2(ix.inf(),iy.inf(), - ix.sup(),iy.sup()); - /* - const Root_of_2 &ox = x(); - const Root_of_2 &oy = y(); - - if(ox.is_rational() || oy.is_rational()) { - CGAL::Interval_nt<> - ix=to_interval(ox), - iy=to_interval(oy); - return CGAL::Bbox_2(ix.inf(),iy.inf(), - ix.sup(),iy.sup()); - } - - // delta must be the same - // WE HAVE TO TEST THE EXECUTION TIME - // IT STILL NOT POSSIBLE BECAUSE OF THE - // PROBLEM ON THE ARRANGEMENT - // (it is very likely to make it better with this changing) - const CGAL::Interval_nt alpha1 = to_interval(ox.alpha()); - const CGAL::Interval_nt beta1 = to_interval(ox.beta()); - const CGAL::Interval_nt alpha2 = to_interval(oy.alpha()); - const CGAL::Interval_nt beta2 = to_interval(oy.beta()); - const CGAL::Interval_nt g = to_interval(ox.gamma()); - const CGAL::Interval_nt sqrtg = CGAL::sqrt(g); - const CGAL::Interval_nt ix = alpha1 + beta1 * sqrtg; - const CGAL::Interval_nt iy = alpha2 + beta2 * sqrtg; - return CGAL::Bbox_2(ix.inf(),iy.inf(), - ix.sup(),iy.sup()); - */ - } - - template < typename RT > - friend bool operator == ( const Root_for_circles_2_2& r1, - const Root_for_circles_2_2& r2 ); - -}; - -template < typename RT > -bool -operator == ( const Root_for_circles_2_2& r1, - const Root_for_circles_2_2& r2 ) -{ if (CGAL::identical(r1.x_, r2.x_) && CGAL::identical(r1.y_, r2.y_)) - return true; - return (r1.x() == r2.x()) && (r1.y() == r2.y()); -} - -template < typename RT > -std::ostream & -operator<<(std::ostream & os, const Root_for_circles_2_2 &r) -{ return os << r.x() << " " << r.y() << " "; } - -template < typename RT > -std::istream & -operator>>(std::istream & is, Root_for_circles_2_2 &r) -{ - typedef typename Root_of_traits< RT >::RootOf_2 Root_of_2; - Root_of_2 x,y; - - is >> x >> y; - if(is) - r = Root_for_circles_2_2(x,y); - return is; -} - -} //namespace CGAL - -#endif // CGAL_ALGEBRAIC_KERNEL_FOR_CIRCLES_ROOT_FOR_CIRCLES_2_2_H diff --git a/Algebraic_kernel_for_circles/package_info/Algebraic_kernel_for_circles/copyright b/Algebraic_kernel_for_circles/package_info/Algebraic_kernel_for_circles/copyright deleted file mode 100644 index 8932b3233d2..00000000000 --- a/Algebraic_kernel_for_circles/package_info/Algebraic_kernel_for_circles/copyright +++ /dev/null @@ -1,2 +0,0 @@ -INRIA Sophia-Antipolis (France) - diff --git a/Algebraic_kernel_for_circles/package_info/Algebraic_kernel_for_circles/dependencies b/Algebraic_kernel_for_circles/package_info/Algebraic_kernel_for_circles/dependencies deleted file mode 100644 index 8d3b893eeb2..00000000000 --- a/Algebraic_kernel_for_circles/package_info/Algebraic_kernel_for_circles/dependencies +++ /dev/null @@ -1,12 +0,0 @@ -Algebraic_foundations -Algebraic_kernel_for_circles -Arithmetic_kernel -Filtered_kernel -Installation -Interval_support -Kernel_23 -Modular_arithmetic -Number_types -Profiling_tools -STL_Extension -Stream_support diff --git a/Algebraic_kernel_for_circles/package_info/Algebraic_kernel_for_circles/license.txt b/Algebraic_kernel_for_circles/package_info/Algebraic_kernel_for_circles/license.txt deleted file mode 100644 index 8bb8efcb72b..00000000000 --- a/Algebraic_kernel_for_circles/package_info/Algebraic_kernel_for_circles/license.txt +++ /dev/null @@ -1 +0,0 @@ -GPL (v3 or later) diff --git a/Algebraic_kernel_for_circles/package_info/Algebraic_kernel_for_circles/maintainer b/Algebraic_kernel_for_circles/package_info/Algebraic_kernel_for_circles/maintainer deleted file mode 100644 index fec7225a53c..00000000000 --- a/Algebraic_kernel_for_circles/package_info/Algebraic_kernel_for_circles/maintainer +++ /dev/null @@ -1 +0,0 @@ -Monique Teillaud diff --git a/Algebraic_kernel_for_circles/test/Algebraic_kernel_for_circles/CMakeLists.txt b/Algebraic_kernel_for_circles/test/Algebraic_kernel_for_circles/CMakeLists.txt deleted file mode 100644 index c02ce4ff14d..00000000000 --- a/Algebraic_kernel_for_circles/test/Algebraic_kernel_for_circles/CMakeLists.txt +++ /dev/null @@ -1,26 +0,0 @@ -# Created by the script cgal_create_cmake_script -# This is the CMake script for compiling a CGAL application. - - -cmake_minimum_required(VERSION 3.1...3.15) -project( Algebraic_kernel_for_circles_Tests ) - - -find_package(CGAL QUIET) - -if ( CGAL_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 library, and will not be compiled.") - -endif() - diff --git a/Algebraic_kernel_for_circles/test/Algebraic_kernel_for_circles/include/CGAL/_test_constructor.h b/Algebraic_kernel_for_circles/test/Algebraic_kernel_for_circles/include/CGAL/_test_constructor.h deleted file mode 100644 index 8510d3fb696..00000000000 --- a/Algebraic_kernel_for_circles/test/Algebraic_kernel_for_circles/include/CGAL/_test_constructor.h +++ /dev/null @@ -1,36 +0,0 @@ -#include -#include - -template -void _test_constuctor(AK ak) -{ - CGAL::Random generatorOfgenerator; - int random_seed = generatorOfgenerator.get_int(0, 123456); - std::cout << "random_seed = " << random_seed << std::endl; - CGAL::Random theRandom(random_seed); - int random_max = 127; - int random_min = -127; - typename AK::Construct_polynomial_for_circles_2_2 theConstruct_2_2 = - ak.construct_polynomial_for_circles_2_2_object(); - typename AK::Construct_polynomial_1_2 theConstruct_1_2 = - ak.construct_polynomial_1_2_object(); - - for(int i = 0; i < 20 ; i++){ - int x = theRandom.get_int(random_min,random_max); - int y = theRandom.get_int(random_min,random_max); - int r_sq = theRandom.get_int(random_min,random_max); - int a = theRandom.get_int(random_min,random_max); - int b = theRandom.get_int(random_min,random_max); - int c = theRandom.get_int(random_min,random_max); - - typename AK::Polynomial_for_circles_2_2 p_2_2 = theConstruct_2_2(x, y, r_sq); - typename AK::Polynomial_1_2 p_1_2 = theConstruct_1_2(a, b, c); - assert(p_2_2.a() == x); - assert(p_2_2.b() == y); - assert(p_2_2.r_sq() == r_sq); - assert(p_1_2.a() == a); - assert(p_1_2.b() == b); - assert(p_1_2.c() == c); - } - -} diff --git a/Algebraic_kernel_for_circles/test/Algebraic_kernel_for_circles/include/CGAL/_test_predicates.h b/Algebraic_kernel_for_circles/test/Algebraic_kernel_for_circles/include/CGAL/_test_predicates.h deleted file mode 100644 index 211882addc9..00000000000 --- a/Algebraic_kernel_for_circles/test/Algebraic_kernel_for_circles/include/CGAL/_test_predicates.h +++ /dev/null @@ -1,414 +0,0 @@ -#include -#include - -template -void _test_solve(AK ak) -{ - typedef typename AK::Root_for_circles_2_2 Root_for_circles_2_2; - typename AK::Solve theSolve = - ak.solve_object(); - - //Polynomial_for_circles_2_2 - typename AK::Construct_polynomial_for_circles_2_2 theConstruct_2_2 = - ak.construct_polynomial_for_circles_2_2_object(); - - std::vector< std::pair > res1; - theSolve(theConstruct_2_2(5, 5, 25), - theConstruct_2_2(0, 5, 100), - std::back_inserter(res1)); - assert(res1.size() == 1); - assert(res1[0].second == 2u); - assert(res1[0].first == Root_for_circles_2_2(10, 5)); - - std::vector< std::pair > res2; - theSolve(theConstruct_2_2(-5, 5, 25), - theConstruct_2_2(0, 5, 100), - std::back_inserter(res2)); - assert(res2.size() == 1); - assert(res2[0].second == 2u); - assert(res2[0].first == Root_for_circles_2_2(-10, 5)); - - std::vector< std::pair > res3; - theSolve(theConstruct_2_2(0, 5, 25), - theConstruct_2_2(0, 0, 100), - std::back_inserter(res3)); - assert(res3.size() == 1); - assert(res3[0].second == 2u); - assert(res3[0].first == Root_for_circles_2_2(0, 10)); - - std::vector< std::pair > res4; - theSolve(theConstruct_2_2(0, -5, 25), - theConstruct_2_2(0, 0, 100), - std::back_inserter(res4)); - assert(res4.size() == 1); - assert(res4[0].second == 2u); - assert(res4[0].first == Root_for_circles_2_2(0, -10)); - - std::vector< std::pair > res5; - theSolve(theConstruct_2_2(-5, 5, 25), - theConstruct_2_2(0, 0, 25), - std::back_inserter(res5)); - assert(res5.size() == 2); - assert(res5[0].second == 1u); - assert(res5[0].first == Root_for_circles_2_2(-5, 0)); - assert(res5[1].second == 1u); - assert(res5[1].first == Root_for_circles_2_2(0, 5)); - - //Polynomial_1_2 Polynomial_for_circles_2_2 - typename AK::Construct_polynomial_1_2 theConstruct_1_2 = - ak.construct_polynomial_1_2_object(); - - //line horizontal in circle's center - std::vector< std::pair > res6; - theSolve(theConstruct_1_2(0, 1, -5), - theConstruct_2_2(0, 5, 100), - std::back_inserter(res6)); - assert(res6.size() == 2); - assert(res6[0].second == 1u); - assert(res6[0].first == Root_for_circles_2_2(-10, 5)); - assert(res6[1].second == 1u); - assert(res6[1].first == Root_for_circles_2_2(10, 5)); - - //line vertical in circle's center - std::vector< std::pair > res7; - theSolve(theConstruct_1_2(1, 0, -5), - theConstruct_2_2(5, 5, 100), - std::back_inserter(res7)); - assert(res7.size() == 2); - assert(res7[0].second == 1u); - assert(res7[0].first == Root_for_circles_2_2(5, -5)); - assert(res7[1].second == 1u); - assert(res7[1].first == Root_for_circles_2_2(5, 15)); - - //line vertical tangent left - std::vector< std::pair > res8; - theSolve(theConstruct_1_2(1, 0, 5), - theConstruct_2_2(5, 5, 100), - std::back_inserter(res8)); - assert(res8.size() == 1); - assert(res8[0].second == 2u); - assert(res8[0].first == Root_for_circles_2_2(-5, 5)); - - //line vertical tangent right - std::vector< std::pair > res9; - theSolve(theConstruct_1_2(1, 0, -15), - theConstruct_2_2(5, 5, 100), - std::back_inserter(res9)); - assert(res9.size() == 1); - assert(res9[0].second == 2u); - assert(res9[0].first == Root_for_circles_2_2(15, 5)); - - //line horizontal tangent on top - std::vector< std::pair > res10; - theSolve(theConstruct_1_2(0, 1, -15), - theConstruct_2_2(5, 5, 100), - std::back_inserter(res10)); - assert(res10.size() == 1); - assert(res10[0].second == 2u); - assert(res10[0].first == Root_for_circles_2_2(5, 15)); - - //line horizontal tangent down - std::vector< std::pair > res11; - theSolve(theConstruct_1_2(0, 1, 5), - theConstruct_2_2(5, 5, 100), - std::back_inserter(res11)); - assert(res11.size() == 1); - assert(res11[0].second == 2u); - assert(res11[0].first == Root_for_circles_2_2(5, -5)); - - - // only Polynomial_1_2 - std::vector< std::pair > res12; - theSolve(theConstruct_1_2(1, 1, -5), - theConstruct_1_2(1, -1, 5), - std::back_inserter(res12)); - assert(res12.size() == 1); - assert(res12[0].second == 1u); - assert(res12[0].first == Root_for_circles_2_2(0, 5)); - - std::vector< std::pair > res13; - theSolve(theConstruct_1_2(0, 1, -5), - theConstruct_1_2(1, -1, 5), - std::back_inserter(res13)); - assert(res13.size() == 1); - assert(res13[0].second == 1u); - assert(res13[0].first == Root_for_circles_2_2(0, 5)); - - std::vector< std::pair > res14; - theSolve(theConstruct_1_2(1, -1, 5), - theConstruct_1_2(0, 1, -5), - std::back_inserter(res14)); - assert(res14.size() == 1); - assert(res14[0].second == 1u); - assert(res14[0].first == Root_for_circles_2_2(0, 5)); - - std::vector< std::pair > res15; - theSolve(theConstruct_1_2(1, 0, 0), - theConstruct_1_2(1, -1, 5), - std::back_inserter(res15)); - assert(res15.size() == 1); - assert(res15[0].second == 1u); - assert(res15[0].first == Root_for_circles_2_2(0, 5)); - - std::vector< std::pair > res16; - theSolve(theConstruct_1_2(1, -1, 5), - theConstruct_1_2(1, 0, 0), - std::back_inserter(res16)); - assert(res16.size() == 1); - assert(res16[0].second == 1u); - assert(res16[0].first == Root_for_circles_2_2(0, 5)); - - std::vector< std::pair > res17; - theSolve(theConstruct_1_2(0, 1, -5), - theConstruct_1_2(1, 0, 0), - std::back_inserter(res17)); - assert(res17.size() == 1); - assert(res17[0].second == 1u); - assert(res17[0].first == Root_for_circles_2_2(0, 5)); - - std::vector< std::pair > res18; - theSolve(theConstruct_1_2(1, 0, 0), - theConstruct_1_2(0, 1, -5), - std::back_inserter(res18)); - assert(res18.size() == 1); - assert(res18[0].second == 1u); - assert(res18[0].first == Root_for_circles_2_2(0, 5)); - - std::vector< std::pair > res19; - theSolve(theConstruct_1_2(1, 0, 0), - theConstruct_1_2(1, 0, 0), - std::back_inserter(res19)); - assert(res19.size() == 0); - - std::vector< std::pair > res20; - theSolve(theConstruct_1_2(1, 0, 0), - theConstruct_1_2(1, 0, 5), - std::back_inserter(res20)); - assert(res20.size() == 0); - - - std::vector< std::pair > res21; - theSolve(theConstruct_1_2(0, 1, -5), - theConstruct_1_2(0, 1, -5), - std::back_inserter(res21)); - assert(res21.size() == 0); - - std::vector< std::pair > res22; - theSolve(theConstruct_1_2(0, 1, -5), - theConstruct_1_2(0, 1, 0), - std::back_inserter(res22)); - assert(res22.size() == 0); - - std::vector< std::pair > res23; - theSolve(theConstruct_1_2(1, -1, 5), - theConstruct_1_2(1, -1, 5), - std::back_inserter(res23)); - assert(res23.size() == 0); - - std::vector< std::pair > res24; - theSolve(theConstruct_1_2(1, -1, 5), - theConstruct_1_2(2, -2, 15), - std::back_inserter(res24)); - assert(res24.size() == 0); - - CGAL::Random generatorOfgenerator; - int random_seed = generatorOfgenerator.get_int(0, 123456); - std::cout << "random_seed = " << random_seed << std::endl; - CGAL::Random theRandom(random_seed); - int random_max = 5; - int random_min = -5; - - typename AK::Sign_at theSigh_at = - ak.sign_at_object(); - - for(std::size_t i = 0; i < 500; i++){ - int a1, b1, c1, a2, b2, c2, a3, b3, r_sq = 0; - do{ - a1 = theRandom.get_int(random_min,random_max); - b1 = theRandom.get_int(random_min,random_max); - }while((a1 == 0) && (b1 == 0)); - c1 = theRandom.get_int(random_min,random_max); - do{ - a2 = theRandom.get_int(random_min,random_max); - b2 = theRandom.get_int(random_min,random_max); - }while((a2 == 0) && (b2 == 0)); - c2 = theRandom.get_int(random_min,random_max); - a3 = theRandom.get_int(random_min,random_max); - b3 = theRandom.get_int(random_min,random_max); - r_sq = theRandom.get_int(1,random_max); - - std::vector< std::pair > res; - theSolve(theConstruct_1_2(a1, b1, c1), - theConstruct_1_2(a2, b2, c2), - std::back_inserter(res)); - std::vector< std::pair > res2; - theSolve(theConstruct_1_2(a2, b2, c2), - theConstruct_2_2(a3, b3, r_sq), - std::back_inserter(res2)); - std::vector< std::pair > res3; - theSolve(theConstruct_1_2(a1, b1, c1), - theConstruct_2_2(a3, b3, r_sq), - std::back_inserter(res3)); - for (std::size_t j = 0 ; j < res.size() ; j++){ - assert(res[j].second == 1u); - assert(theSigh_at(theConstruct_1_2(a1, b1, c1), - res[j].first) == CGAL::ZERO); - assert(theSigh_at(theConstruct_1_2(a2, b2, c2), - res[j].first) == CGAL::ZERO); - } - for (std::size_t j = 0 ; j < res2.size() ; j++){ - if(res2.size() == 1) assert(res2[j].second == 2u); - if(res2.size() == 2) assert(res2[j].second == 1u); - assert(theSigh_at(theConstruct_2_2(a3, b3, r_sq), - res2[j].first) == CGAL::ZERO); - assert(theSigh_at(theConstruct_1_2(a2, b2, c2), - res2[j].first) == CGAL::ZERO); - } - for (std::size_t j = 0 ; j < res3.size() ; j++){ - if(res3.size() == 1) assert(res3[j].second == 2u); - if(res3.size() == 2) assert(res3[j].second == 1u); - assert(theSigh_at(theConstruct_2_2(a3, b3, r_sq), - res3[j].first) == CGAL::ZERO); - assert(theSigh_at(theConstruct_1_2(a1, b1, c1), - res3[j].first) == CGAL::ZERO); - } - - } - -} - -template -void _test_sign_at(AK ak) -{ - typedef typename AK::Root_for_circles_2_2 Root_for_circles_2_2; - typename AK::Sign_at theSigh_at = - ak.sign_at_object(); - - //Polynomial_for_circles_2_2 - typename AK::Construct_polynomial_for_circles_2_2 theConstruct_2_2 = - ak.construct_polynomial_for_circles_2_2_object(); - - assert(theSigh_at(theConstruct_2_2(5, 5, 100), - Root_for_circles_2_2(-5,5)) == CGAL::ZERO); - assert(theSigh_at(theConstruct_2_2(5, 5, 100), - Root_for_circles_2_2(15,5)) == CGAL::ZERO); - assert(theSigh_at(theConstruct_2_2(5, 5, 100), - Root_for_circles_2_2(5,15)) == CGAL::ZERO); - assert(theSigh_at(theConstruct_2_2(5, 5, 100), - Root_for_circles_2_2(5,-5)) == CGAL::ZERO); - - assert(theSigh_at(theConstruct_2_2(5, 5, 100), - Root_for_circles_2_2(5,5)) != CGAL::ZERO); - assert(theSigh_at(theConstruct_2_2(5, 5, 100), - Root_for_circles_2_2(5,16)) != CGAL::ZERO); - assert(theSigh_at(theConstruct_2_2(5, 5, 100), - Root_for_circles_2_2(5,-6)) != CGAL::ZERO); - - //Polynomial_1_2 - typename AK::Construct_polynomial_1_2 theConstruct_1_2 = - ak.construct_polynomial_1_2_object(); - - assert(theSigh_at(theConstruct_1_2(1, 0, -5), - Root_for_circles_2_2(5,-6)) == CGAL::ZERO); - assert(theSigh_at(theConstruct_1_2(1, 0, -5), - Root_for_circles_2_2(6,-6)) != CGAL::ZERO); - assert(theSigh_at(theConstruct_1_2(0, 1, -5), - Root_for_circles_2_2(5,-6)) != CGAL::ZERO); - assert(theSigh_at(theConstruct_1_2(0, 1, -5), - Root_for_circles_2_2(5, 5)) == CGAL::ZERO); - -} - -template -void _test_critical_points(AK ak) -{ - CGAL::Random generatorOfgenerator; - int random_seed = generatorOfgenerator.get_int(0, 123456); - std::cout << "random_seed = " << random_seed << std::endl; - CGAL::Random theRandom(random_seed); - int random_max = 127; - int random_min = -127; - - typedef typename AK::Root_for_circles_2_2 Root_for_circles_2_2; - typename AK::Construct_polynomial_for_circles_2_2 theConstruct_2_2 = - ak.construct_polynomial_for_circles_2_2_object(); - typename AK::X_critical_points theX_critical_points = - ak.x_critical_points_object(); - - typename AK::Y_critical_points theY_critical_points = - ak.y_critical_points_object(); - - for(int i = 0; i < 20; i++){ - int x = theRandom.get_int(random_min,random_max); - int y = theRandom.get_int(random_min,random_max); - int r = theRandom.get_int(1,random_max); - - assert(theX_critical_points(theConstruct_2_2(x,y,r*r),true) - == Root_for_circles_2_2(x - r, y)); - assert(theX_critical_points(theConstruct_2_2(x,y,r*r),false) - == Root_for_circles_2_2(x + r, y)); - assert(theY_critical_points(theConstruct_2_2(x,y,r*r),true) - == Root_for_circles_2_2(x, y - r)); - assert(theY_critical_points(theConstruct_2_2(x,y,r*r),false) - == Root_for_circles_2_2(x, y + r)); - } - -} - -template -void _test_compare_Root_for_circles(AK ak) -{ - CGAL::Random generatorOfgenerator; - int random_seed = generatorOfgenerator.get_int(0, 123456); - std::cout << "random_seed = " << random_seed << std::endl; - CGAL::Random theRandom(random_seed); - int random_max = 127; - int random_min = -127; - - typedef typename AK::Root_for_circles_2_2 Root_for_circles_2_2; - - typename AK::Compare_x theCompare_x = - ak.compare_x_object(); - - typename AK::Compare_y theCompare_y = - ak.compare_y_object(); - - typename AK::Compare_xy theCompare_xy = - ak.compare_xy_object(); - - for (int i = 0; i < 20; i++){ - Root_for_circles_2_2 r1(theRandom.get_int(random_min,random_max), - theRandom.get_int(random_min,random_max)); - Root_for_circles_2_2 r2(theRandom.get_int(random_min,random_max), - theRandom.get_int(random_min,random_max)); - if(r1.x() > r2.x()){ - assert(theCompare_x(r1, r2) == CGAL::LARGER); - assert(theCompare_xy(r1, r2) == CGAL::LARGER); - } - else if(r1.x() == r2.x()){ - assert(theCompare_x(r1, r2) == CGAL::EQUAL); - if(r1.y() < r2.y()){ - assert(theCompare_y(r1, r2) == CGAL::SMALLER); - assert(theCompare_xy(r1, r2) == CGAL::SMALLER); - } - else if(r1.y() > r2.y()){ - assert(theCompare_y(r1, r2) == CGAL::LARGER); - assert(theCompare_xy(r1, r2) == CGAL::LARGER); - } - else { - assert(theCompare_y(r1, r2) == CGAL::EQUAL); - assert(theCompare_xy(r1, r2) == CGAL::EQUAL); - } - } - else { - assert(theCompare_x(r1, r2) == CGAL::SMALLER); - assert(theCompare_xy(r1, r2) == CGAL::SMALLER); - } - if(r1.y() > r2.y()) - assert(theCompare_y(r1, r2) == CGAL::LARGER); - else if(r1.y() < r2.y()) - assert(theCompare_y(r1, r2) == CGAL::SMALLER); - else - assert(theCompare_y(r1, r2) == CGAL::EQUAL); - } -} diff --git a/Algebraic_kernel_for_circles/test/Algebraic_kernel_for_circles/test_Algebraic_kernel.cpp b/Algebraic_kernel_for_circles/test/Algebraic_kernel_for_circles/test_Algebraic_kernel.cpp deleted file mode 100644 index f46dc0af420..00000000000 --- a/Algebraic_kernel_for_circles/test/Algebraic_kernel_for_circles/test_Algebraic_kernel.cpp +++ /dev/null @@ -1,20 +0,0 @@ -#include -#include -#include -#include -#include -#include - -int main() -{ - typedef CGAL::Quotient NT1; - typedef CGAL::Algebraic_kernel_for_circles_2_2 Algebraic_k1; - Algebraic_k1 ak1; - _test_solve(ak1); - _test_sign_at(ak1); - _test_critical_points(ak1); - _test_compare_Root_for_circles(ak1); - _test_constuctor(ak1); - - return 0; -} diff --git a/CGAL_Core/src/CGAL_Core/CMakeLists.txt b/CGAL_Core/src/CGAL_Core/CMakeLists.txt index 0ce25c586ca..2cf43a93a5b 100644 --- a/CGAL_Core/src/CGAL_Core/CMakeLists.txt +++ b/CGAL_Core/src/CGAL_Core/CMakeLists.txt @@ -5,11 +5,7 @@ if(CGAL_Core_FOUND) collect_cgal_library(CGAL_Core "") - if(CGAL_HEADER_ONLY) - set(keyword INTERFACE) - else() - set(keyword PUBLIC) - endif() + set(keyword INTERFACE) CGAL_setup_CGAL_Core_dependencies(CGAL_Core ${keyword}) diff --git a/CGAL_ImageIO/src/CGAL_ImageIO/CMakeLists.txt b/CGAL_ImageIO/src/CGAL_ImageIO/CMakeLists.txt index f9c2a7eeac9..57b8e11b308 100644 --- a/CGAL_ImageIO/src/CGAL_ImageIO/CMakeLists.txt +++ b/CGAL_ImageIO/src/CGAL_ImageIO/CMakeLists.txt @@ -4,9 +4,7 @@ collect_cgal_library( CGAL_ImageIO "") include(CGAL_SetupCGAL_ImageIODependencies) -if(CGAL_HEADER_ONLY) - set(keyword "INTERFACE") -endif() +set(keyword "INTERFACE") CGAL_setup_CGAL_ImageIO_dependencies(CGAL_ImageIO ${keyword}) diff --git a/GraphicsView/src/CGAL_Qt5/CMakeLists.txt b/GraphicsView/src/CGAL_Qt5/CMakeLists.txt index c9ab3d99241..46b26f2e1fd 100644 --- a/GraphicsView/src/CGAL_Qt5/CMakeLists.txt +++ b/GraphicsView/src/CGAL_Qt5/CMakeLists.txt @@ -13,16 +13,10 @@ if(CGAL_Qt5_MISSING_DEPS) endif() message( STATUS "USING Qt5_VERSION = '${Qt5Core_VERSION_STRING}'" ) -if(NOT CGAL_HEADER_ONLY) - collect_cgal_library( CGAL_Qt5 "${_CGAL_Qt5_MOC_FILES_private};${_CGAL_Qt5_RESOURCE_FILES_private};${_CGAL_Qt5_UI_FILES}") - target_include_directories( CGAL_Qt5 PRIVATE ${CMAKE_CURRENT_BINARY_DIR}) -else() - collect_cgal_library( CGAL_Qt5 "") -endif() -if(CGAL_HEADER_ONLY) - set(keyword "INTERFACE") -endif() +collect_cgal_library( CGAL_Qt5 "") + +set(keyword "INTERFACE") CGAL_setup_CGAL_Qt5_dependencies( CGAL_Qt5 ${keyword}) @@ -32,9 +26,7 @@ if(COMMAND add_config_flag) endif() install(DIRECTORY "../../include/CGAL/Qt/" DESTINATION "${CGAL_INSTALL_INC_DIR}/CGAL/Qt" COMPONENT CGAL_Qt5) -if (CGAL_HEADER_ONLY) - install(DIRECTORY "../../demo/resources/" DESTINATION "${CGAL_INSTALL_CMAKE_DIR}/demo/resources" COMPONENT CGAL_Qt5) - install(DIRECTORY "../../demo/icons/" DESTINATION "${CGAL_INSTALL_CMAKE_DIR}/demo/icons" COMPONENT CGAL_Qt5) -endif() +install(DIRECTORY "../../demo/resources/" DESTINATION "${CGAL_INSTALL_CMAKE_DIR}/demo/resources" COMPONENT CGAL_Qt5) +install(DIRECTORY "../../demo/icons/" DESTINATION "${CGAL_INSTALL_CMAKE_DIR}/demo/icons" COMPONENT CGAL_Qt5) message("libCGAL_Qt5 is configured") diff --git a/Installation/CMakeLists.txt b/Installation/CMakeLists.txt index a338a5189b3..cc477df0a7e 100644 --- a/Installation/CMakeLists.txt +++ b/Installation/CMakeLists.txt @@ -23,13 +23,6 @@ endif() # Use GNUInstallDirs to get canonical paths include(GNUInstallDirs) -#-------------------------------------------------------------------------------------------------- -# -# -= HEADER ONLY =- -# -#-------------------------------------------------------------------------------------------------- -option(CGAL_HEADER_ONLY "Enable header-only mode of CGAL (no compilation of CGAL libraries)" TRUE) - #-------------------------------------------------------------------------------------------------- # # -= PACKAGE SETUP =- @@ -618,10 +611,6 @@ cache_set(CGAL_3RD_PARTY_LIBRARIES_DIRS "" ) # this; e.g. in MPFI/RS in Algebraic_kernel_d. For these cases CGAL # and the example/test must be configured with MPFI (just one is not sufficient) -if(NOT CGAL_HEADER_ONLY) - include(CGAL_SetupDependencies) -endif() - message("== Detect external libraries (DONE) ==\n") #-------------------------------------------------------------------------------------------------- @@ -630,70 +619,6 @@ message("== Detect external libraries (DONE) ==\n") # #-------------------------------------------------------------------------------------------------- -if(NOT CGAL_HEADER_ONLY) -# The variables set are the #defines expected by compiler_config.h -# Note: CMake will not notice when files are added or removed -# but this is probably OK for the installation procedure. - -message("== Write compiler_config.h ==") - -macro(add_config_flag flag) - if(${flag}) - file(APPEND ${CMAKE_BINARY_DIR}/include/CGAL/compiler_config.h "#define ${flag} 1\n\n") - else() - file(APPEND ${CMAKE_BINARY_DIR}/include/CGAL/compiler_config.h "//#define ${flag} 1\n\n") - endif() -endmacro() - -if(NOT CMAKE_CROSSCOMPILING) - file(GLOB all_config_tests "${CGAL_MODULES_DIR}/config/testfiles/*.cpp") - list(SORT all_config_tests) - - file(WRITE ${CMAKE_BINARY_DIR}/include/CGAL/compiler_config.h "//\n// compiler_config.h is included by CGAL headers to load the needed compiler settings.\n//\n// DO NOT EDIT compiler_config.h. It is generated by CMake.\n//\n\n") - - foreach(config_test_cpp ${all_config_tests}) - # Test's name is .cpp's base name - get_filename_component(config_test_name ${config_test_cpp} NAME_WE) - - # Compile and run ${config_test_cpp}. Exit code is stored in ${config_test_name}. - CHECK_CXX_FILE_RUNS(${config_test_cpp} ${config_test_name} ${config_test_name}) - if(${config_test_name}) - set(${config_test_name} 0) - else() - set(${config_test_name} 1) - endif() - - add_config_flag(${config_test_name} ${config_test_name}) - endforeach() -endif() - -add_config_flag(CGAL_USE_GMP) -add_config_flag(CGAL_USE_MPFR) -add_config_flag(CGAL_USE_GMPXX) -add_config_flag(CGAL_USE_LEDA) -add_config_flag(CGAL_USE_MPFI) -add_config_flag(CGAL_USE_RS) -add_config_flag(CGAL_USE_NTL) - -add_config_flag( CGAL_BUILD_SHARED_LIBS ) - -if (NOT ${WITH_CGAL_Core}) - set(CGAL_USE_CORE FALSE) -else() - set(CGAL_USE_CORE ${CGAL_USE_GMP}) -endif() -add_config_flag( CGAL_USE_CORE ) -# ^^ there is CGAL_USE_CORE and not CGAL_HAS_CORE, as CORE is considered -# as external lib and not as CGAL component (EBEB: 24 Jan 2012) - -if ( RUNNING_CGAL_AUTO_TEST AND MSVC ) - file( APPEND "${CMAKE_BINARY_DIR}/include/CGAL/compiler_config.h" "#include \n\n" ) -endif() - -message("== Write compiler_config.h (DONE) ==\n") - -endif(NOT CGAL_HEADER_ONLY) - #-------------------------------------------------------------------------------------------------- # # -= Installation Setup =- @@ -753,8 +678,7 @@ cache_get(CGAL_3RD_PARTY_LIBRARIES_DIRS) add_subdirectory(src) # -# Variables used when WITH_{demos|examples|tests} are TRUE, and -# CGAL_HEADER_ONLY=ON +# Variables used when WITH_{demos|examples|tests} are TRUE # set(CGAL_USE_FILE ${CGAL_MODULES_DIR}/UseCGAL.cmake) get_property(CGAL_FOUND GLOBAL PROPERTY CGAL_FOUND) @@ -807,14 +731,10 @@ if (CGAL_BRANCH_BUILD AND CGAL_REPORT_DUPLICATE_FILES ) endif() -if(NOT CGAL_HEADER_ONLY) - create_CGALconfig_files() -else() - configure_file("${CGAL_MODULES_DIR}/CGALConfig_binary_header_only.cmake.in" - "${CMAKE_BINARY_DIR}/CGALConfig.cmake" @ONLY) - configure_file("${CGAL_MODULES_DIR}/CGALConfigVersion_binary_header_only.cmake.in" - "${CMAKE_BINARY_DIR}/CGALConfigVersion.cmake" @ONLY) -endif() +configure_file("${CGAL_MODULES_DIR}/CGALConfig_binary_header_only.cmake.in" + "${CMAKE_BINARY_DIR}/CGALConfig.cmake" @ONLY) +configure_file("${CGAL_MODULES_DIR}/CGALConfigVersion_binary_header_only.cmake.in" + "${CMAKE_BINARY_DIR}/CGALConfigVersion.cmake" @ONLY) #-------------------------------------------------------------------------------------------------- # @@ -861,24 +781,17 @@ if ( ZLIB_IN_AUXILIARY ) endif() -if(NOT CGAL_HEADER_ONLY) +install(FILES + ${CMAKE_CURRENT_LIST_DIR}/lib/cmake/CGAL/CGALConfig.cmake + ${CMAKE_CURRENT_LIST_DIR}/lib/cmake/CGAL/CGALConfigBuildVersion.cmake + ${CMAKE_CURRENT_LIST_DIR}/lib/cmake/CGAL/CGALConfigVersion.cmake + DESTINATION ${CGAL_INSTALL_CMAKE_DIR}) +if(NOT CGAL_INSTALL_CMAKE_DIR STREQUAL "${CGAL_INSTALL_LIB_DIR}/cmake/CGAL") + configure_file(${CMAKE_CURRENT_LIST_DIR}/lib/cmake/CGAL/CGALConfig-installation-dirs.cmake.in + ${CMAKE_BINARY_DIR}/config/CGALConfig-installation-dirs.cmake) install(FILES - ${CMAKE_BINARY_DIR}/CGALConfigVersion.cmake - ${CMAKE_BINARY_DIR}/config/CGALConfig.cmake - DESTINATION ${CGAL_INSTALL_CMAKE_DIR} ) -else() - install(FILES - ${CMAKE_CURRENT_LIST_DIR}/lib/cmake/CGAL/CGALConfig.cmake - ${CMAKE_CURRENT_LIST_DIR}/lib/cmake/CGAL/CGALConfigBuildVersion.cmake - ${CMAKE_CURRENT_LIST_DIR}/lib/cmake/CGAL/CGALConfigVersion.cmake + ${CMAKE_BINARY_DIR}/config/CGALConfig-installation-dirs.cmake DESTINATION ${CGAL_INSTALL_CMAKE_DIR}) - if(NOT CGAL_INSTALL_CMAKE_DIR STREQUAL "${CGAL_INSTALL_LIB_DIR}/cmake/CGAL") - configure_file(${CMAKE_CURRENT_LIST_DIR}/lib/cmake/CGAL/CGALConfig-installation-dirs.cmake.in - ${CMAKE_BINARY_DIR}/config/CGALConfig-installation-dirs.cmake) - install(FILES - ${CMAKE_BINARY_DIR}/config/CGALConfig-installation-dirs.cmake - DESTINATION ${CGAL_INSTALL_CMAKE_DIR}) - endif() endif() if(CGAL_INSTALL_MAN_DIR) diff --git a/Installation/cmake/modules/CGAL_Qt5_moc_and_resource_files.cmake b/Installation/cmake/modules/CGAL_Qt5_moc_and_resource_files.cmake index 2ff6bb7276a..f3d4f23dc21 100644 --- a/Installation/cmake/modules/CGAL_Qt5_moc_and_resource_files.cmake +++ b/Installation/cmake/modules/CGAL_Qt5_moc_and_resource_files.cmake @@ -2,24 +2,6 @@ if(CGAL_Qt5_moc_and_resource_files_included) return() endif() set(CGAL_Qt5_moc_and_resource_files_included TRUE) - -if(NOT CGAL_HEADER_ONLY AND CGAL_BUILDING_LIBS) - qt5_wrap_cpp(_CGAL_Qt5_MOC_FILES_private - ${CGAL_GRAPHICSVIEW_PACKAGE_DIR}/include/CGAL/Qt/GraphicsViewNavigation.h - ${CGAL_GRAPHICSVIEW_PACKAGE_DIR}/include/CGAL/Qt/DemosMainWindow.h - ${CGAL_GRAPHICSVIEW_PACKAGE_DIR}/include/CGAL/Qt/GraphicsItem.h - ${CGAL_GRAPHICSVIEW_PACKAGE_DIR}/include/CGAL/Qt/GraphicsViewInput.h - ${CGAL_GRAPHICSVIEW_PACKAGE_DIR}/include/CGAL/Qt/camera.h - ${CGAL_GRAPHICSVIEW_PACKAGE_DIR}/include/CGAL/Qt/frame.h - ${CGAL_GRAPHICSVIEW_PACKAGE_DIR}/include/CGAL/Qt/keyFrameInterpolator.h - ${CGAL_GRAPHICSVIEW_PACKAGE_DIR}/include/CGAL/Qt/manipulatedCameraFrame.h - ${CGAL_GRAPHICSVIEW_PACKAGE_DIR}/include/CGAL/Qt/manipulatedFrame.h - ${CGAL_GRAPHICSVIEW_PACKAGE_DIR}/include/CGAL/Qt/qglviewer.h - ${CGAL_GRAPHICSVIEW_PACKAGE_DIR}/include/CGAL/Qt/image_interface.h - TARGET CGAL_Qt5 - ) -endif()#CGAL_HEADER_ONLY - # qrc files (resources files, that contain icons, at least) if(EXISTS ${CGAL_GRAPHICSVIEW_PACKAGE_DIR}/demo/resources/CGAL.qrc) qt5_add_resources (_CGAL_Qt5_RESOURCE_FILES_private diff --git a/Installation/cmake/modules/CGAL_SetupCGALDependencies.cmake b/Installation/cmake/modules/CGAL_SetupCGALDependencies.cmake index 6590e31f940..3df96613fe6 100644 --- a/Installation/cmake/modules/CGAL_SetupCGALDependencies.cmake +++ b/Installation/cmake/modules/CGAL_SetupCGALDependencies.cmake @@ -23,11 +23,6 @@ # If set, the `LEDA` library will be searched and used to provide # the exact number types used by CGAL kernels. # -# .. variable:: CGAL_HEADER_ONLY -# -# Set this variable if you are using the CGAL libraries as -# header-only libraries. -# if(CGAL_SetupCGALDependencies_included) return() endif() @@ -95,10 +90,6 @@ function(CGAL_setup_CGAL_dependencies target) if(WITH_LEDA) use_CGAL_LEDA_support(${target} ${keyword}) endif() - - if (NOT CGAL_HEADER_ONLY) - target_compile_definitions(${target} ${keyword} CGAL_NOT_HEADER_ONLY=1) - endif() if (RUNNING_CGAL_AUTO_TEST OR CGAL_TEST_SUITE) target_compile_definitions(${target} ${keyword} CGAL_TEST_SUITE=1) endif() diff --git a/Installation/cmake/modules/CGAL_SetupCGAL_Qt5Dependencies.cmake b/Installation/cmake/modules/CGAL_SetupCGAL_Qt5Dependencies.cmake index 2cdc190f75a..840560a6b06 100644 --- a/Installation/cmake/modules/CGAL_SetupCGAL_Qt5Dependencies.cmake +++ b/Installation/cmake/modules/CGAL_SetupCGAL_Qt5Dependencies.cmake @@ -54,9 +54,9 @@ if(NOT CGAL_Qt5_MISSING_DEPS) include(${CMAKE_CURRENT_LIST_DIR}/CGAL_Qt5_moc_and_resource_files.cmake) - if(CGAL_HEADER_ONLY AND (WITH_demos OR WITH_examples OR WITH_tests OR NOT CGAL_BUILDING_LIBS) AND NOT TARGET CGAL_Qt5_moc_and_resources) - add_library(CGAL_Qt5_moc_and_resources STATIC - ${_CGAL_Qt5_MOC_FILES_private} + if((WITH_demos OR WITH_examples OR WITH_tests OR NOT CGAL_BUILDING_LIBS) AND NOT TARGET CGAL_Qt5_moc_and_resources) + add_library(CGAL_Qt5_moc_and_resources STATIC + ${_CGAL_Qt5_MOC_FILES_private} ${CGAL_GRAPHICSVIEW_PACKAGE_DIR}/include/CGAL/Qt/GraphicsViewNavigation.h ${CGAL_GRAPHICSVIEW_PACKAGE_DIR}/include/CGAL/Qt/DemosMainWindow.h ${CGAL_GRAPHICSVIEW_PACKAGE_DIR}/include/CGAL/Qt/GraphicsItem.h @@ -116,9 +116,7 @@ function(CGAL_setup_CGAL_Qt5_dependencies target) target_compile_definitions( ${target} ${keyword} CGAL_FAKE_PUBLIC_RELEASE=1 ) endif() target_link_libraries( ${target} ${keyword} CGAL::CGAL) - if(CGAL_HEADER_ONLY) - target_link_libraries( ${target} ${keyword} CGAL::Qt5_moc_and_resources) - endif() + target_link_libraries( ${target} ${keyword} CGAL::Qt5_moc_and_resources) target_link_libraries( ${target} ${keyword} Qt5::OpenGL Qt5::Svg Qt5::Xml) # Remove -Wdeprecated-copy, for g++ >= 9.0, because Qt5, as of diff --git a/Installation/cmake/modules/UseCGAL.cmake b/Installation/cmake/modules/UseCGAL.cmake index 0187802b524..aa79191bbbd 100644 --- a/Installation/cmake/modules/UseCGAL.cmake +++ b/Installation/cmake/modules/UseCGAL.cmake @@ -27,7 +27,6 @@ if(NOT USE_CGAL_FILE_INCLUDED) use_component( ${component} ) endforeach() - use_essential_libs() include_directories( "${CMAKE_CURRENT_BINARY_DIR}" ) @@ -46,16 +45,8 @@ if(NOT USE_CGAL_FILE_INCLUDED) include_directories ( SYSTEM ${CGAL_3RD_PARTY_INCLUDE_DIRS} ) add_definitions ( ${CGAL_3RD_PARTY_DEFINITIONS} ${CGAL_DEFINITIONS} ) - if (CGAL_HEADER_ONLY) - if(NOT CGAL_NO_BLANKET_LINKING) - link_directories ( ${CGAL_3RD_PARTY_LIBRARIES_DIRS} ) - link_libraries ( ${CGAL_LIBRARIES} ${CGAL_3RD_PARTY_LIBRARIES} ) - endif() - else() - if(NOT CGAL_NO_BLANKET_LINKING) - link_directories ( ${CGAL_LIBRARIES_DIR} ${CGAL_3RD_PARTY_LIBRARIES_DIRS} ) - link_libraries ( ${CGAL_LIBRARIES} ${CGAL_3RD_PARTY_LIBRARIES} ) - endif() + if(NOT CGAL_NO_BLANKET_LINKING) + link_directories ( ${CGAL_3RD_PARTY_LIBRARIES_DIRS} ) + link_libraries ( ${CGAL_LIBRARIES} ${CGAL_3RD_PARTY_LIBRARIES} ) endif() - endif() diff --git a/Installation/lib/cmake/CGAL/CGALConfig.cmake b/Installation/lib/cmake/CGAL/CGALConfig.cmake index 98201bd7c46..a69b0c21246 100644 --- a/Installation/lib/cmake/CGAL/CGALConfig.cmake +++ b/Installation/lib/cmake/CGAL/CGALConfig.cmake @@ -9,8 +9,6 @@ set(CGAL_LIBRARIES CGAL) get_filename_component(CGAL_CONFIG_DIR "${CMAKE_CURRENT_LIST_FILE}" PATH) -set(CGAL_HEADER_ONLY TRUE) - function(cgal_detect_branch_build VAR_NAME) if(IS_DIRECTORY ${CGAL_CONFIG_DIR}/../../../../Installation/package_info/Installation/) set(${VAR_NAME} TRUE PARENT_SCOPE) diff --git a/Installation/src/CGAL/CMakeLists.txt b/Installation/src/CGAL/CMakeLists.txt index 34e2be2081f..b87886c9b97 100644 --- a/Installation/src/CGAL/CMakeLists.txt +++ b/Installation/src/CGAL/CMakeLists.txt @@ -4,16 +4,10 @@ collect_cgal_library(CGAL "") include(CGAL_SetupCGALDependencies) -if(CGAL_HEADER_ONLY) - set(keyword "INTERFACE") -endif() +set(keyword "INTERFACE") CGAL_setup_CGAL_dependencies(CGAL ${keyword}) -if(NOT CGAL_HEADER_ONLY) - target_compile_definitions(CGAL INTERFACE CGAL_NOT_HEADER_ONLY=1) -endif() - if(NOT CGAL_DISABLE_GMP) get_dependency_version(GMP) get_dependency_version(MPFR) diff --git a/Installation/src/CMakeLists.txt b/Installation/src/CMakeLists.txt index 7ed919fab92..1054aba4e5d 100644 --- a/Installation/src/CMakeLists.txt +++ b/Installation/src/CMakeLists.txt @@ -1,33 +1,4 @@ function (collect_cgal_library LIBRARY_NAME ADDITIONAL_FILES) - - if (NOT CGAL_HEADER_ONLY) - # IMPORTANT: First delete all_files.cpp - if (EXISTS ${CMAKE_CURRENT_BINARY_DIR}/all_files.cpp) - file(REMOVE ${CMAKE_CURRENT_BINARY_DIR}/all_files.cpp) - endif() - - # THEN collect *.cpp - foreach (package ${CGAL_CONFIGURED_PACKAGES} ) - file(GLOB CGAL_LIBRARY_SOURCE_FILES_TMP ${package}/src/${LIBRARY_NAME}/*.cpp) - list(SORT CGAL_LIBRARY_SOURCE_FILES_TMP) - foreach(file ${CGAL_LIBRARY_SOURCE_FILES_TMP}) - if(NOT ${file} MATCHES "/qrc_.*") - list(APPEND CGAL_LIBRARY_SOURCE_FILES ${file}) - endif() - endforeach() - endforeach() - - foreach(source ${CGAL_LIBRARY_SOURCE_FILES}) - # It may happen that a file all_files.cpp had been created in-source by - # a previous in-source build. We certainly do not want to include that - # file in the new all_files.cpp because .cpp files would be included - # twice, and that breaks the one-definition rule (ODR). - if(NOT source MATCHES ".*/all_files.cpp") - file(APPEND ${CMAKE_CURRENT_BINARY_DIR}/all_files.cpp "\#include \"${source}\"\n") - endif() - endforeach() - endif() - if(CGAL_BUILD_SHARED_LIBS) set(CGAL_LIB_PREFIX "") else() @@ -44,29 +15,7 @@ function (collect_cgal_library LIBRARY_NAME ADDITIONAL_FILES) set(rc_file ) endif() - if (NOT CGAL_HEADER_ONLY) - add_library (${LIBRARY_NAME} - ${CMAKE_CURRENT_BINARY_DIR}/all_files.cpp - ${rc_file} - ${ADDITIONAL_FILES}) - # add_library (${LIBRARY_NAME} ${CGAL_LIBRARY_SOURCE_FILES} ${rc_file} ${ADDITIONAL_FILES}) # builing not creating temporary all_files.cpp - if(${LIBRARY_NAME}_SOVERSION AND ${LIBRARY_NAME}_SONAME_VERSION) - set_target_properties(${LIBRARY_NAME} PROPERTIES - VERSION "${${LIBRARY_NAME}_SOVERSION}" - SOVERSION "${${LIBRARY_NAME}_SONAME_VERSION}") - elseif(CGAL_SOVERSION AND CGAL_SONAME_VERSION) - set_target_properties(${LIBRARY_NAME} PROPERTIES - VERSION "${CGAL_SOVERSION}" - SOVERSION "${CGAL_SONAME_VERSION}") - endif() - else() - if(${LIBRARY_NAME}_LIB_DEPENDS) - # Fix a bug when CGAL is configured first without `CGAL_HEADER_ONLY` - # and then `CGAL_HEADER_ONLY` is set without cleaning the cache. - unset(${LIBRARY_NAME}_LIB_DEPENDS CACHE) - endif() - add_library(${LIBRARY_NAME} INTERFACE) - endif() + add_library(${LIBRARY_NAME} INTERFACE) # Add an alias with the prefix `CGAL::`, so that consumer # CMakeLists.txt can be the target like if it was an imported @@ -76,39 +25,7 @@ function (collect_cgal_library LIBRARY_NAME ADDITIONAL_FILES) add_custom_target( ALL_CGAL_TARGETS ) endif() add_dependencies( ALL_CGAL_TARGETS ${LIBRARY_NAME} ) - if(CGAL_AUTO_LINK_ENABLED) - if (NOT CGAL_HEADER_ONLY) - set_target_properties( ${LIBRARY_NAME} PROPERTIES - OUTPUT_NAME_DEBUG "${DEBUG_MANGLED_NAME}" - OUTPUT_NAME_RELEASE "${RELEASE_MANGLED_NAME}" - OUTPUT_NAME_MINSIZEREL "${RELEASE_MANGLED_NAME}" - OUTPUT_NAME_RELWITHDEBINFO "${RELEASE_MANGLED_NAME}" - ) - if ( HAS_CFG_INTDIR ) - add_custom_command(TARGET ${LIBRARY_NAME} POST_BUILD COMMAND if exist \"$(TargetDir)$(TargetName).dll\" copy /Y \"$(TargetDir)$(TargetName).dll\" \"$(TargetDir)..\" ) - add_custom_command(TARGET ${LIBRARY_NAME} POST_BUILD COMMAND if exist \"$(TargetDir)$(TargetName).pdb\" copy /Y \"$(TargetDir)$(TargetName).pdb\" \"$(TargetDir)..\" ) - add_custom_command(TARGET ${LIBRARY_NAME} POST_BUILD COMMAND if exist \"$(SolutionDir)lib\\$(ConfigurationName)\\$(TargetName).lib\" copy /Y \"$(SolutionDir)lib\\$(ConfigurationName)\\$(TargetName).lib\" \"$(SolutionDir)lib\" ) - endif() - endif() - endif() - - if (NOT CGAL_HEADER_ONLY) - install(TARGETS ${LIBRARY_NAME} EXPORT ${LIBRARY_NAME}Exports - RUNTIME DESTINATION "${CGAL_INSTALL_BIN_DIR}" - LIBRARY DESTINATION "${CGAL_INSTALL_LIB_DIR}" - ARCHIVE DESTINATION "${CGAL_INSTALL_LIB_DIR}") - install(EXPORT ${LIBRARY_NAME}Exports - DESTINATION "${CGAL_INSTALL_CMAKE_DIR}" - NAMESPACE CGAL::) - - # We have to call configure_file twice to force double expansion of variables. - configure_file("${CGAL_MODULES_DIR}/CGALLibConfig.cmake.in" - "${CMAKE_BINARY_DIR}/${LIBRARY_NAME}LibConfig.cmake" @ONLY) - configure_file("${CMAKE_BINARY_DIR}/${LIBRARY_NAME}LibConfig.cmake" - "${CMAKE_BINARY_DIR}/${LIBRARY_NAME}LibConfig.cmake" @ONLY) - install(FILES "${CMAKE_BINARY_DIR}/${LIBRARY_NAME}LibConfig.cmake" DESTINATION ${CGAL_INSTALL_CMAKE_DIR}) - endif() endfunction() function( configure_component DIR COMPONENT ) @@ -142,9 +59,6 @@ set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CGAL_RUNTIME_DIR}) # TODO: Seems useless, because it is called again in ../CMakeLists.txt # Should probably be removed. -- Laurent Rineau, 2014/07/22 -if(NOT CGAL_HEADER_ONLY) - create_CGALconfig_files() -endif() set(CGAL_DIR ${CMAKE_BINARY_DIR}) @@ -224,9 +138,5 @@ CGAL_add_if_target(CGAL_Qt5) cache_set(CGAL_ACTUAL_CONFIGURED_LIBRARIES "${CGAL_ACTUAL_CONFIGURED_LIBRARIES}") -if (NOT CGAL_HEADER_ONLY) - export(TARGETS ${CGAL_ACTUAL_CONFIGURED_LIBRARIES} NAMESPACE CGAL:: FILE "${CMAKE_BINARY_DIR}/CGALExports.cmake") -endif() - message(STATUS "Sources for CGAL component libraries '${CGAL_CONFIGURED_LIBRARIES}' detected") diff --git a/Maintenance/infrastructure/gauguin.geometryfactory.com/reference_platforms/x64_Cygwin-Windows10_MSVC2017-Debug-64bits/init.cmake b/Maintenance/infrastructure/gauguin.geometryfactory.com/reference_platforms/x64_Cygwin-Windows10_MSVC2017-Debug-64bits/init.cmake index 14386bd1103..5df00ea8e7b 100644 --- a/Maintenance/infrastructure/gauguin.geometryfactory.com/reference_platforms/x64_Cygwin-Windows10_MSVC2017-Debug-64bits/init.cmake +++ b/Maintenance/infrastructure/gauguin.geometryfactory.com/reference_platforms/x64_Cygwin-Windows10_MSVC2017-Debug-64bits/init.cmake @@ -7,7 +7,7 @@ SET(CMAKE_CXX_FLAGS "/DWIN32 /D_WINDOWS /W3 /GR /EHsc -D_CRT_SECURE_NO_DEPRECATE SET(CMAKE_CXX_FLAGS_DEBUG "/D_DEBUG /MDd /Ob0 /Od /RTC1" CACHE STRING "") SET(CMAKE_CXX_FLAGS_RELEASE "/MD /O2 /Ob2 /DCGAL_NDEBUG" CACHE STRING "") - + SET(TBBROOT "C:/3rdPartyLibs/tbb2018_20170919oss" CACHE STRING "") SET(WITH_GMP ON CACHE BOOL "") @@ -20,8 +20,6 @@ SET(WITH_NTL OFF CACHE BOOL "") SET(WITH_demos ON CACHE BOOL "") -SET(CGAL_HEADER_ONLY ON CACHE BOOL "") - SET(Boost_DIR "C:\\3rdPartyLibs\\boost_master\\install_dir\\lib\\cmake\\Boost-1.71.0" CACHE PATH "") -SET(CGAL_Boost_USE_STATIC_LIBS ON CACHE BOOL "") \ No newline at end of file +SET(CGAL_Boost_USE_STATIC_LIBS ON CACHE BOOL "") diff --git a/Maintenance/infrastructure/gauguin.geometryfactory.com/reference_platforms/x64_Cygwin-Windows10_MSVC2017-Release-64bits/init.cmake b/Maintenance/infrastructure/gauguin.geometryfactory.com/reference_platforms/x64_Cygwin-Windows10_MSVC2017-Release-64bits/init.cmake index 840d4c7eb32..31f030ec997 100644 --- a/Maintenance/infrastructure/gauguin.geometryfactory.com/reference_platforms/x64_Cygwin-Windows10_MSVC2017-Release-64bits/init.cmake +++ b/Maintenance/infrastructure/gauguin.geometryfactory.com/reference_platforms/x64_Cygwin-Windows10_MSVC2017-Release-64bits/init.cmake @@ -21,5 +21,3 @@ SET(WITH_MPFR ON CACHE BOOL "") SET(WITH_NTL OFF CACHE BOOL "") SET(WITH_demos ON CACHE BOOL "") - -SET(CGAL_HEADER_ONLY ON CACHE BOOL "") diff --git a/Polyhedron/demo/Polyhedron/CMakeLists.txt b/Polyhedron/demo/Polyhedron/CMakeLists.txt index 55cf03849d1..1eea2af4625 100644 --- a/Polyhedron/demo/Polyhedron/CMakeLists.txt +++ b/Polyhedron/demo/Polyhedron/CMakeLists.txt @@ -209,9 +209,7 @@ if(CGAL_Qt5_FOUND AND Qt5_FOUND) # CMake). That is to deal with the visibility of symbols of # `Three.h`/`Three.cpp`. target_compile_definitions(demo_framework PRIVATE three_EXPORTS=1) - if(CGAL_HEADER_ONLY) - target_compile_definitions(demo_framework PRIVATE -DCGAL_USE_Qt5_RESOURCES) - endif() + target_compile_definitions(demo_framework PRIVATE -DCGAL_USE_Qt5_RESOURCES) add_library(scene_basic_objects SHARED Scene_plane_item.cpp From 616574e5ab09d9840344e99d436d12fbcdcf2a4f Mon Sep 17 00:00:00 2001 From: Maxime Gimeno Date: Tue, 6 Oct 2020 15:44:41 +0200 Subject: [PATCH 04/32] Modernize CMake scripts --- .../include/CGAL/Algebraic_kernel_converter.h | 62 +++ ...ion_objects_on_roots_and_polynomials_2_2.h | 222 ++++++++++ ...unctions_comparison_root_for_circles_2_2.h | 52 +++ ...ions_on_roots_and_polynomial_1_2_and_2_2.h | 184 ++++++++ ...l_functions_on_roots_and_polynomials_2_2.h | 227 ++++++++++ .../CGAL/Algebraic_kernel_for_circles_2_2.h | 95 ++++ .../include/CGAL/Polynomials_1_2.h | 68 +++ .../include/CGAL/Polynomials_2_2.h | 71 +++ .../include/CGAL/Root_for_circles_2_2.h | 132 ++++++ .../Algebraic_kernel_for_circles/copyright | 2 + .../Algebraic_kernel_for_circles/dependencies | 12 + .../Algebraic_kernel_for_circles/license.txt | 1 + .../Algebraic_kernel_for_circles/maintainer | 1 + .../CMakeLists.txt | 26 ++ .../include/CGAL/_test_constructor.h | 36 ++ .../include/CGAL/_test_predicates.h | 414 ++++++++++++++++++ .../test_Algebraic_kernel.cpp | 20 + .../Arrangement_on_surface_2/CMakeLists.txt | 1 - BGL/examples/BGL_polyhedron_3/CMakeLists.txt | 33 +- BGL/examples/BGL_surface_mesh/CMakeLists.txt | 2 +- CGAL_ipelets/demo/CGAL_ipelets/CMakeLists.txt | 19 +- .../Hyperbolic_triangulation_2/CMakeLists.txt | 1 - Installation/cmake/modules/UseCGAL.cmake | 16 +- 23 files changed, 1657 insertions(+), 40 deletions(-) create mode 100644 Algebraic_kernel_for_circles/include/CGAL/Algebraic_kernel_converter.h create mode 100644 Algebraic_kernel_for_circles/include/CGAL/Algebraic_kernel_for_circles/function_objects_on_roots_and_polynomials_2_2.h create mode 100644 Algebraic_kernel_for_circles/include/CGAL/Algebraic_kernel_for_circles/internal_functions_comparison_root_for_circles_2_2.h create mode 100644 Algebraic_kernel_for_circles/include/CGAL/Algebraic_kernel_for_circles/internal_functions_on_roots_and_polynomial_1_2_and_2_2.h create mode 100644 Algebraic_kernel_for_circles/include/CGAL/Algebraic_kernel_for_circles/internal_functions_on_roots_and_polynomials_2_2.h create mode 100644 Algebraic_kernel_for_circles/include/CGAL/Algebraic_kernel_for_circles_2_2.h create mode 100644 Algebraic_kernel_for_circles/include/CGAL/Polynomials_1_2.h create mode 100644 Algebraic_kernel_for_circles/include/CGAL/Polynomials_2_2.h create mode 100644 Algebraic_kernel_for_circles/include/CGAL/Root_for_circles_2_2.h create mode 100644 Algebraic_kernel_for_circles/package_info/Algebraic_kernel_for_circles/copyright create mode 100644 Algebraic_kernel_for_circles/package_info/Algebraic_kernel_for_circles/dependencies create mode 100644 Algebraic_kernel_for_circles/package_info/Algebraic_kernel_for_circles/license.txt create mode 100644 Algebraic_kernel_for_circles/package_info/Algebraic_kernel_for_circles/maintainer create mode 100644 Algebraic_kernel_for_circles/test/Algebraic_kernel_for_circles/CMakeLists.txt create mode 100644 Algebraic_kernel_for_circles/test/Algebraic_kernel_for_circles/include/CGAL/_test_constructor.h create mode 100644 Algebraic_kernel_for_circles/test/Algebraic_kernel_for_circles/include/CGAL/_test_predicates.h create mode 100644 Algebraic_kernel_for_circles/test/Algebraic_kernel_for_circles/test_Algebraic_kernel.cpp diff --git a/Algebraic_kernel_for_circles/include/CGAL/Algebraic_kernel_converter.h b/Algebraic_kernel_for_circles/include/CGAL/Algebraic_kernel_converter.h new file mode 100644 index 00000000000..4f4578b8c66 --- /dev/null +++ b/Algebraic_kernel_for_circles/include/CGAL/Algebraic_kernel_converter.h @@ -0,0 +1,62 @@ +// Copyright (c) 2003-2006 INRIA Sophia-Antipolis (France). +// All rights reserved. +// +// This file is part of CGAL (www.cgal.org). +// +// $URL$ +// $Id$ +// SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial +// +// Author(s) : Monique Teillaud, Sylvain Pion, Constantinos Tsirogiannis + +// Partially supported by the IST Programme of the EU as a Shared-cost +// RTD (FET Open) Project under Contract No IST-2000-26473 +// (ECG - Effective Computational Geometry for Curves and Surfaces) +// and a STREP (FET Open) Project under Contract No IST-006413 +// (ACS -- Algorithms for Complex Shapes) + +#ifndef CGAL_ALGEBRAIC_KERNEL_FOR_CIRCLES_CONVERTER_H +#define CGAL_ALGEBRAIC_KERNEL_FOR_CIRCLES_CONVERTER_H + +#include + + +#include + +namespace CGAL { + +// TODO : +// - FT converter ? + +template < class Al_K1, class Al_K2, + class RT_converter = NT_converter, + class Root_of_converter = NT_converter > +class Algebraic_kernel_converter { +public: + + typedef typename Al_K1::RT RT_1; + typedef typename Al_K2::RT RT_2; + typedef RT_converter RT_type_converter; + typedef Root_of_converter Root_of_type_converter; + + typename Al_K2::Polynomial_1_2 operator () (const typename Al_K1::Polynomial_1_2 &p) const + { + return typename Al_K2::Polynomial_1_2(RT_converter()(p.a()), + RT_converter()(p.b()), + RT_converter()(p.c())); + } + + typename Al_K2::Polynomial_for_circles_2_2 operator () + (const typename Al_K1::Polynomial_for_circles_2_2 &p) const + { + return typename Al_K2::Polynomial_for_circles_2_2(RT_converter()(p.a()), + RT_converter()(p.b()), + RT_converter()(p.r_sq())); + } +}; + +} //namespace CGAL + +#endif // CGAL_ALGEBRAIC_KERNEL_FOR_CIRCLES_CONVERTER_H diff --git a/Algebraic_kernel_for_circles/include/CGAL/Algebraic_kernel_for_circles/function_objects_on_roots_and_polynomials_2_2.h b/Algebraic_kernel_for_circles/include/CGAL/Algebraic_kernel_for_circles/function_objects_on_roots_and_polynomials_2_2.h new file mode 100644 index 00000000000..489803e770e --- /dev/null +++ b/Algebraic_kernel_for_circles/include/CGAL/Algebraic_kernel_for_circles/function_objects_on_roots_and_polynomials_2_2.h @@ -0,0 +1,222 @@ +// Copyright (c) 2003-2006 INRIA Sophia-Antipolis (France). +// All rights reserved. +// +// This file is part of CGAL (www.cgal.org). +// +// $URL$ +// $Id$ +// SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial +// +// Author(s) : Monique Teillaud, Sylvain Pion + +// Partially supported by the IST Programme of the EU as a Shared-cost +// RTD (FET Open) Project under Contract No IST-2000-26473 +// (ECG - Effective Computational Geometry for Curves and Surfaces) +// and a STREP (FET Open) Project under Contract No IST-006413 +// (ACS -- Algorithms for Complex Shapes) + +#ifndef CGAL_ALGEBRAIC_KERNEL_FOR_CIRCLES_FUNCTION_OBJECTS_ON_ROOTS_AND_POLYNOMIALS_2_H +#define CGAL_ALGEBRAIC_KERNEL_FOR_CIRCLES_FUNCTION_OBJECTS_ON_ROOTS_AND_POLYNOMIALS_2_H + +#include + + +#include +#include +#include + +namespace CGAL { + +namespace AlgebraicFunctors { + + template < class AK > + class Solve + { + typedef typename AK::Polynomial_for_circles_2_2 Equation_Circle; + typedef typename AK::Polynomial_1_2 Equation_Line; + + public: + typedef void result_type; + + template < class OutputIterator > + OutputIterator + operator()(const Equation_Circle & e1, + const Equation_Circle & e2, + OutputIterator res) const + { return AlgebraicFunctors::solve ( e1, e2, res); } + + template < class OutputIterator > + OutputIterator + operator()(const Equation_Line & e1, + const Equation_Circle & e2, + OutputIterator res) const + { return AlgebraicFunctors::solve ( e1, e2, res); } + + + template < class OutputIterator > + OutputIterator + operator()(const Equation_Circle & e1, + const Equation_Line & e2, + OutputIterator res) const + { return AlgebraicFunctors::solve ( e1, e2, res); } + + template < class OutputIterator > + OutputIterator + operator()(const Equation_Line & e1, + const Equation_Line & e2, + OutputIterator res) const + { return AlgebraicFunctors::solve ( e1, e2, res); } + + }; + + template < class AK > + class Construct_polynomial_for_circles_2_2 + { + typedef typename AK::RT RT; + typedef typename AK::Polynomial_for_circles_2_2 Polynomial_for_circles_2_2; + + public: + + typedef Polynomial_for_circles_2_2 result_type; + + result_type + operator()(const RT& xc, const RT& yc, const RT& r_sq) const + { return Polynomial_for_circles_2_2(xc, yc, r_sq); } + + }; + + template < class AK > + class Construct_polynomial_1_2 + { + typedef typename AK::RT RT; + typedef typename AK::Polynomial_1_2 Polynomial_1_2; + + public: + + typedef Polynomial_1_2 result_type; + + result_type + operator()( const RT& a, const RT& b, const RT& c) const + { return Polynomial_1_2(a, b, c); } + + }; + + template < class AK > + class Sign_at + { + typedef typename AK::Polynomial_1_2 Polynomial_1_2; + typedef typename AK::Polynomial_for_circles_2_2 Polynomial_for_circles_2_2; + typedef typename AK::Root_for_circles_2_2 Root_for_circles_2_2; + + public: + typedef CGAL::Sign result_type; + + result_type + operator()( const Polynomial_for_circles_2_2 & equation, + const Root_for_circles_2_2 & r ) const + { return AlgebraicFunctors::sign_at(equation, r); } + + result_type + operator()( const Polynomial_1_2 & equation, + const Root_for_circles_2_2 & r ) const + { return AlgebraicFunctors::sign_at(equation, r); } + + }; + + template < class AK > + class X_critical_points + { + typedef typename AK::Root_for_circles_2_2 Root_for_circles_2_2; + typedef typename AK::Polynomial_for_circles_2_2 Polynomial_for_circles_2_2; + + public: + typedef void result_type; + + Root_for_circles_2_2 + operator()(const Polynomial_for_circles_2_2 & c, + bool i) const + { return AlgebraicFunctors::x_critical_point(c,i); } + + template + OutputIterator + operator()(const Polynomial_for_circles_2_2 & c, + OutputIterator res) const + { return AlgebraicFunctors::x_critical_points(c,res); } + + }; + + template < class AK > + class Y_critical_points + { + typedef typename AK::Root_for_circles_2_2 Root_for_circles_2_2; + typedef typename AK::Polynomial_for_circles_2_2 Polynomial_for_circles_2_2; + + public: + typedef void result_type; + + Root_for_circles_2_2 + operator()(const Polynomial_for_circles_2_2 & c, + bool i) const + { return AlgebraicFunctors::y_critical_point(c,i); } + + template + OutputIterator + operator()(const Polynomial_for_circles_2_2 & c, + OutputIterator res) const + { return AlgebraicFunctors::y_critical_points(c,res); } + + }; + + template < class AK > + class Compare_x + { + typedef typename AK::Root_for_circles_2_2 Root_for_circles_2_2; + typedef typename AK::RT RT; + + public: + typedef CGAL::Comparison_result result_type; + + result_type + operator()(const Root_for_circles_2_2& r1, + const Root_for_circles_2_2& r2) const + { return AlgebraicFunctors::compare_x(r1, r2); } + + }; + + template < class AK > + class Compare_y + { + typedef typename AK::Root_for_circles_2_2 Root_for_circles_2_2; + typedef typename AK::RT RT; + + public: + typedef CGAL::Comparison_result result_type; + + result_type + operator()(const Root_for_circles_2_2& r1, + const Root_for_circles_2_2& r2) const + { return AlgebraicFunctors::compare_y(r1, r2); } + + }; + + template < class AK > + class Compare_xy + { + typedef typename AK::Root_for_circles_2_2 Root_for_circles_2_2; + typedef typename AK::RT RT; + + public: + typedef CGAL::Comparison_result result_type; + + result_type + operator()(const Root_for_circles_2_2& r1, + const Root_for_circles_2_2& r2) const + { return AlgebraicFunctors::compare_xy(r1, r2); } + + }; + +} // namespace AlgebraicFunctors + +} //namespace CGAL + +#endif // CGAL_ALGEBRAIC_KERNEL_FOR_CIRCLES_FUNCTION_OBJECTS_ON_ROOTS_AND_POLYNOMIALS_2_H diff --git a/Algebraic_kernel_for_circles/include/CGAL/Algebraic_kernel_for_circles/internal_functions_comparison_root_for_circles_2_2.h b/Algebraic_kernel_for_circles/include/CGAL/Algebraic_kernel_for_circles/internal_functions_comparison_root_for_circles_2_2.h new file mode 100644 index 00000000000..f33f0b3ad76 --- /dev/null +++ b/Algebraic_kernel_for_circles/include/CGAL/Algebraic_kernel_for_circles/internal_functions_comparison_root_for_circles_2_2.h @@ -0,0 +1,52 @@ +// Copyright (c) 2003-2006 INRIA Sophia-Antipolis (France). +// All rights reserved. +// +// This file is part of CGAL (www.cgal.org). +// +// $URL$ +// $Id$ +// SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial +// +// Author(s) : Monique Teillaud, Sylvain Pion, Julien Hazebrouck + +// Partially supported by the IST Programme of the EU as a Shared-cost +// RTD (FET Open) Project under Contract No IST-2000-26473 +// (ECG - Effective Computational Geometry for Curves and Surfaces) +// and a STREP (FET Open) Project under Contract No IST-006413 +// (ACS -- Algorithms for Complex Shapes) + +#ifndef CGAL_ALGEBRAIC_KERNEL_FOR_CIRCLES_COMPARISON_ROOT_FOR_CIRCLES_2_2_H +#define CGAL_ALGEBRAIC_KERNEL_FOR_CIRCLES_COMPARISON_ROOT_FOR_CIRCLES_2_2_H + +#include + + + +namespace CGAL { + namespace AlgebraicFunctors{ + + template + Comparison_result + compare_x(const CGAL::Root_for_circles_2_2& r1, const CGAL::Root_for_circles_2_2& r2){ + return compare(r1.x(), r2.x()); + } + + template + Comparison_result + compare_y(const CGAL::Root_for_circles_2_2& r1, const CGAL::Root_for_circles_2_2& r2){ + return compare(r1.y(), r2.y()); + } + + template + Comparison_result + compare_xy(const CGAL::Root_for_circles_2_2& r1, const CGAL::Root_for_circles_2_2& r2){ + Comparison_result compx = compare_x(r1, r2); + if(compx != 0) + return compx; + return compare_y(r1, r2); + } + + } // namespace AlgebraicFunctors +} // namespace CGAL + +#endif // CGAL_ALGEBRAIC_KERNEL_FOR_CIRCLES_COMPARISON_ROOT_FOR_CIRCLES_2_2_H diff --git a/Algebraic_kernel_for_circles/include/CGAL/Algebraic_kernel_for_circles/internal_functions_on_roots_and_polynomial_1_2_and_2_2.h b/Algebraic_kernel_for_circles/include/CGAL/Algebraic_kernel_for_circles/internal_functions_on_roots_and_polynomial_1_2_and_2_2.h new file mode 100644 index 00000000000..7adb4252867 --- /dev/null +++ b/Algebraic_kernel_for_circles/include/CGAL/Algebraic_kernel_for_circles/internal_functions_on_roots_and_polynomial_1_2_and_2_2.h @@ -0,0 +1,184 @@ +// Copyright (c) 2003-2006 INRIA Sophia-Antipolis (France). +// All rights reserved. +// +// This file is part of CGAL (www.cgal.org). +// +// $URL$ +// $Id$ +// SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial +// +// Author(s) : Monique Teillaud, Sylvain Pion, Julien Hazebrouck + +// Partially supported by the IST Programme of the EU as a Shared-cost +// RTD (FET Open) Project under Contract No IST-2000-26473 +// (ECG - Effective Computational Geometry for Curves and Surfaces) +// and a STREP (FET Open) Project under Contract No IST-006413 +// (ACS -- Algorithms for Complex Shapes) + +#ifndef CGAL_ALGEBRAIC_KERNEL_FOR_CIRCLES_FUNCTIONS_ON_ROOTS_AND_POLYNOMIAL_1_2_AND_2_2_H +#define CGAL_ALGEBRAIC_KERNEL_FOR_CIRCLES_FUNCTIONS_ON_ROOTS_AND_POLYNOMIAL_1_2_AND_2_2_H + +#include + + + +namespace CGAL { + namespace AlgebraicFunctors { + + + template < class AK, class OutputIterator > + inline + OutputIterator + solve( const typename AK::Polynomial_1_2 & e1, + const typename AK::Polynomial_for_circles_2_2 & e2, + OutputIterator res ) + { + typedef typename AK::FT FT; + typedef typename AK::Root_of_2 Root_of_2; + typedef typename AK::Root_for_circles_2_2 Root_for_circles_2_2; + if (is_zero(e1.a())){//horizontal line + + const FT hy = -e1.c()/e1.b(); + const FT hdisc = e2.r_sq() - CGAL::square(hy - e2.b()); + CGAL::Sign sign_hdisc = CGAL::sign(hdisc); + + if(sign_hdisc == NEGATIVE) return res; + if(sign_hdisc == ZERO) { + *res++ = std::make_pair + ( Root_for_circles_2_2(Root_of_2(e2.a()), + Root_of_2(hy)), 2u); + return res; + } + const Root_of_2 x_res1 = make_root_of_2(e2.a(),FT(-1),hdisc); + const Root_of_2 x_res2 = make_root_of_2(e2.a(),FT(1),hdisc); + const Root_of_2 y_res = Root_of_2(hy); + *res++ = std::make_pair + ( Root_for_circles_2_2(x_res1, y_res), 1u); + *res++ = std::make_pair + ( Root_for_circles_2_2(x_res2, y_res), 1u); + return res; + } + else if(is_zero(e1.b())){//vertical line + + const FT vx = -e1.c()/e1.a(); + const FT vdisc = e2.r_sq() - CGAL::square(vx - e2.a()); + CGAL::Sign sign_vdisc = CGAL::sign(vdisc); + + if(sign_vdisc == NEGATIVE) return res; + if(sign_vdisc == ZERO) { + *res++ = std::make_pair + ( Root_for_circles_2_2(Root_of_2(vx), + Root_of_2(e2.b())), 2u); + return res; + } + + const Root_of_2 x_res = Root_of_2(vx); + const Root_of_2 y_res1 = make_root_of_2(e2.b(),FT(-1),vdisc); + const Root_of_2 y_res2 = make_root_of_2(e2.b(),FT(1),vdisc); + + *res++ = std::make_pair + ( Root_for_circles_2_2(x_res, y_res1), 1u); + *res++ = std::make_pair + ( Root_for_circles_2_2(x_res, y_res2), 1u); + return res; + } + else { + + const FT line_factor = CGAL::square(e1.a()) + CGAL::square(e1.b()); + const FT disc = line_factor*e2.r_sq() - + CGAL::square(e1.a()*e2.a() + e1.b()*e2.b() + e1.c()); + CGAL::Sign sign_disc = CGAL::sign(disc); + + if (sign_disc == NEGATIVE) return res; + + const FT aux = e1.b()*e2.a() - e1.a()*e2.b(); + const FT x_base = (aux*e1.b() - e1.a()*e1.c()) / line_factor; + const FT y_base = (-aux*e1.a() - e1.b()*e1.c()) / line_factor; + + if (sign_disc == ZERO) { + *res++ = std::make_pair + ( Root_for_circles_2_2(Root_of_2(x_base), + Root_of_2(y_base)), 2u); + return res; + } + + // We have two intersection points, whose coordinates are one-root numbers. + const FT x_root_coeff = e1.b() / line_factor; + const FT y_root_coeff = e1.a() / line_factor; + + if (CGAL::sign(e1.b()) == POSITIVE) { + *res++ = std::make_pair + ( Root_for_circles_2_2(make_root_of_2(x_base, -x_root_coeff, disc), + make_root_of_2(y_base, y_root_coeff, disc)), 1u); + *res++ = std::make_pair + ( Root_for_circles_2_2(make_root_of_2(x_base, x_root_coeff, disc), + make_root_of_2(y_base, -y_root_coeff, disc)), 1u); + } else { + *res++ = std::make_pair + ( Root_for_circles_2_2(make_root_of_2(x_base, x_root_coeff, disc), + make_root_of_2(y_base, -y_root_coeff, disc)), 1u); + *res++ = std::make_pair + ( Root_for_circles_2_2(make_root_of_2(x_base, -x_root_coeff, disc), + make_root_of_2(y_base, y_root_coeff, disc)), 1u); + } + return res; + } + } + + template < class AK, class OutputIterator > + inline + OutputIterator + solve( const typename AK::Polynomial_for_circles_2_2 & e1, + const typename AK::Polynomial_1_2 & e2, + OutputIterator res ) + { + return solve (e2, e1, res); + } + + template < class AK, class OutputIterator > + inline + OutputIterator + solve( const typename AK::Polynomial_1_2 & e1, + const typename AK::Polynomial_1_2 & e2, + OutputIterator res ) + { + typedef typename AK::FT FT; + typedef typename AK::Root_of_2 Root_of_2; + typedef typename AK::Root_for_circles_2_2 Root_for_circles_2_2; + //parallele case + const FT delta = e1.a()*e2.b() - e2.a()*e1.b(); + if(is_zero(delta)) return res; + //case : e2 horizontal + if(is_zero(e2.a())){ + const FT sol = -e2.c()/e2.b(); + *res++ = std::make_pair + ( Root_for_circles_2_2(Root_of_2(-(e1.b()*sol + e1.c())/e1.a()), + Root_of_2(sol)), 1u); + return res; + } + //general case + const FT sol = (e2.a()*e1.c() - e2.c()*e1.a()) / delta; + *res++ = std::make_pair + ( Root_for_circles_2_2(Root_of_2(-(e2.b()*sol + e2.c())/e2.a()), + Root_of_2(sol)), 1u); + return res; + } + + template < class AK > + inline + Sign sign_at( const typename AK::Polynomial_1_2 & equation, + const typename AK::Root_for_circles_2_2 & r) + { + Comparison_result c = compare(r.x()*equation.a(), + -equation.c() - r.y()*equation.b()); + if(c == EQUAL) return ZERO; + if(c == LARGER) return POSITIVE; + return NEGATIVE; + } + + + + } // namespace AlgebraicFunctors +} // namespace CGAL + +#endif // CGAL_ALGEBRAIC_KERNEL_FOR_CIRCLES_FUNCTIONS_ON_ROOTS_AND_POLYNOMIAL_1_2_AND_2_2_H diff --git a/Algebraic_kernel_for_circles/include/CGAL/Algebraic_kernel_for_circles/internal_functions_on_roots_and_polynomials_2_2.h b/Algebraic_kernel_for_circles/include/CGAL/Algebraic_kernel_for_circles/internal_functions_on_roots_and_polynomials_2_2.h new file mode 100644 index 00000000000..8068dc01bb2 --- /dev/null +++ b/Algebraic_kernel_for_circles/include/CGAL/Algebraic_kernel_for_circles/internal_functions_on_roots_and_polynomials_2_2.h @@ -0,0 +1,227 @@ +// Copyright (c) 2003-2006 INRIA Sophia-Antipolis (France). +// All rights reserved. +// +// This file is part of CGAL (www.cgal.org). +// +// $URL$ +// $Id$ +// SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial +// +// Author(s) : Monique Teillaud, Sylvain Pion + +// Partially supported by the IST Programme of the EU as a Shared-cost +// RTD (FET Open) Project under Contract No IST-2000-26473 +// (ECG - Effective Computational Geometry for Curves and Surfaces) +// and a STREP (FET Open) Project under Contract No IST-006413 +// (ACS -- Algorithms for Complex Shapes) + +#ifndef CGAL_ALGEBRAIC_KERNEL_FOR_CIRCLES_FUNCTIONS_ON_ROOTS_AND_POLYNOMIALS_2_H +#define CGAL_ALGEBRAIC_KERNEL_FOR_CIRCLES_FUNCTIONS_ON_ROOTS_AND_POLYNOMIALS_2_H + +#include + + +#include + +namespace CGAL { + namespace AlgebraicFunctors { + + template < class AK, class OutputIterator > + inline + OutputIterator + solve( const typename AK::Polynomial_for_circles_2_2 & e1, + const typename AK::Polynomial_for_circles_2_2 & e2, + OutputIterator res ) + { + CGAL_precondition( ! (e1 == e2) ); // polynomials of this type cannot be multiple + // of one another if they are not equal + + typedef typename AK::FT FT; + typedef typename AK::Root_of_2 Root_of_2; + typedef typename AK::Root_for_circles_2_2 Root_for_circles_2_2; + const FT dx = e2.a() - e1.a(); + const FT dy = e2.b() - e1.b(); + + const FT dx2 = CGAL::square(dx); + const FT dy2 = CGAL::square(dy); + const FT dist2 = dx2 + dy2; // squared distance between centers + const FT diff_sqr_rad = e1.r_sq() - e2.r_sq(); + const FT disc = 2*dist2*(e1.r_sq() + e2.r_sq()) - + (CGAL::square(diff_sqr_rad) + CGAL::square(dist2)); + CGAL::Sign sign_disc = CGAL::sign(disc); + + if (sign_disc == NEGATIVE) return res; + + const FT x_base = ((e1.a() + e2.a()) + dx*diff_sqr_rad / dist2) / 2; + const FT y_base = ((e1.b() + e2.b()) + dy*diff_sqr_rad / dist2) / 2; + + if (sign_disc == ZERO) { + // one double root, + // no need to care about the boolean of the Root_of + *res++ = std::make_pair + ( Root_for_circles_2_2 + (Root_of_2(x_base), Root_of_2(y_base)), + static_cast(2) ); // multiplicity = 2 + return res; + } + + CGAL::Sign sign_dy = CGAL::sign (dy); + CGAL::Sign sign_dx = CGAL::sign (dx); + + // else, 2 distinct roots + if (sign_dy == ZERO) { + const FT y_root_coeff = dx / (2 * dist2); + if(sign_dx == NEGATIVE) { + * res++ = std::make_pair + ( Root_for_circles_2_2(Root_of_2(x_base), + make_root_of_2(y_base, y_root_coeff, disc)), + static_cast(1) ); + + * res++ = std::make_pair + ( Root_for_circles_2_2(Root_of_2(x_base), + make_root_of_2(y_base, -y_root_coeff, disc)), + static_cast(1) ); + } else { + * res++ = std::make_pair + ( Root_for_circles_2_2(Root_of_2(x_base), + make_root_of_2(y_base, -y_root_coeff, disc)), + static_cast(1) ); + + * res++ = std::make_pair + ( Root_for_circles_2_2(Root_of_2(x_base), + make_root_of_2(y_base, y_root_coeff, disc)), + static_cast(1) ); + } + return res; + } + + if (sign_dx == ZERO) { + const FT x_root_coeff = dy / (2 * dist2); + if(sign_dy == POSITIVE) { + * res++ = std::make_pair + ( Root_for_circles_2_2(make_root_of_2(x_base, -x_root_coeff, disc), + Root_of_2(y_base)), + static_cast(1) ); + + * res++ = std::make_pair + ( Root_for_circles_2_2(make_root_of_2(x_base, x_root_coeff, disc), + Root_of_2(y_base)), + static_cast(1) ); + } else { + * res++ = std::make_pair + ( Root_for_circles_2_2(make_root_of_2(x_base, x_root_coeff, disc), + Root_of_2(y_base)), + static_cast(1) ); + + * res++ = std::make_pair + ( Root_for_circles_2_2(make_root_of_2(x_base, -x_root_coeff, disc), + Root_of_2(y_base)), + static_cast(1) ); + } + return res; + } + + const FT x_root_coeff = dy / (2 * dist2); + const FT y_root_coeff = dx / (2 * dist2); + + if (sign_dy == POSITIVE) { + * res++ = std::make_pair + ( Root_for_circles_2_2(make_root_of_2(x_base, -x_root_coeff, disc), + make_root_of_2(y_base, y_root_coeff, disc)), + static_cast(1) ); + + * res++ = std::make_pair + ( Root_for_circles_2_2(make_root_of_2(x_base, x_root_coeff, disc), + make_root_of_2(y_base, -y_root_coeff, disc)), + static_cast(1) ); + } else { + * res++ = std::make_pair + ( Root_for_circles_2_2(make_root_of_2(x_base, x_root_coeff, disc), + make_root_of_2(y_base, -y_root_coeff, disc)), + static_cast(1) ); + * res++ = std::make_pair + ( Root_for_circles_2_2(make_root_of_2(x_base, -x_root_coeff, disc), + make_root_of_2(y_base, y_root_coeff, disc)), + static_cast(1) ); + } + + return res; + } + + template < class AK > + inline + Sign sign_at( const typename AK::Polynomial_for_circles_2_2 & equation, + const typename AK::Root_for_circles_2_2 & r) + { + Comparison_result c = compare(square(r.x() - equation.a()), + equation.r_sq() - + square(r.y() - equation.b())); + if(c == EQUAL) return ZERO; + if(c == LARGER) return POSITIVE; + return NEGATIVE; + } + + + template + typename AK::Root_for_circles_2_2 + x_critical_point(const typename AK::Polynomial_for_circles_2_2 & c, + bool i) + { + typedef typename AK::Root_of_2 Root_of_2; + typedef typename AK::FT FT; + typedef typename AK::Root_for_circles_2_2 Root_for_circles_2_2; + + const Root_of_2 a1 = make_root_of_2(c.a(),FT(i?-1:1),c.r_sq()); + return Root_for_circles_2_2(a1, c.b()); + } + + template + OutputIterator + x_critical_points(const typename AK::Polynomial_for_circles_2_2 & c, + OutputIterator res) + { + typedef typename AK::FT FT; + typedef typename AK::Root_for_circles_2_2 Root_for_circles_2_2; + + *res++ = Root_for_circles_2_2( + make_root_of_2(c.a(),FT(-1),c.r_sq()), c.b()); + *res++ = Root_for_circles_2_2( + make_root_of_2(c.a(),FT(1),c.r_sq()), c.b()); + + return res; + } + + template + typename AK::Root_for_circles_2_2 + y_critical_point(const typename AK::Polynomial_for_circles_2_2 &c, + bool i) + { + typedef typename AK::Root_of_2 Root_of_2; + typedef typename AK::FT FT; + typedef typename AK::Root_for_circles_2_2 Root_for_circles_2_2; + + const Root_of_2 b1 = make_root_of_2(c.b(),FT(i?-1:1),c.r_sq()); + return Root_for_circles_2_2(c.a(),b1); + } + + template + OutputIterator + y_critical_points(const typename AK::Polynomial_for_circles_2_2 & c, + OutputIterator res) + { + typedef typename AK::Root_for_circles_2_2 Root_for_circles_2_2; + + *res++ = Root_for_circles_2_2(c.a(), + make_root_of_2(c.b(),-1,c.r_sq())); + *res++ = Root_for_circles_2_2(c.a(), + make_root_of_2(c.b(),1,c.r_sq())); + + return res; + } + + + + } // namespace AlgebraicFunctors +} // namespace CGAL + +#endif // CGAL_ALGEBRAIC_KERNEL_FOR_CIRCLES_FUNCTIONS_ON_ROOTS_AND_POLYNOMIALS_2_H diff --git a/Algebraic_kernel_for_circles/include/CGAL/Algebraic_kernel_for_circles_2_2.h b/Algebraic_kernel_for_circles/include/CGAL/Algebraic_kernel_for_circles_2_2.h new file mode 100644 index 00000000000..08a55cbbed2 --- /dev/null +++ b/Algebraic_kernel_for_circles/include/CGAL/Algebraic_kernel_for_circles_2_2.h @@ -0,0 +1,95 @@ +// Copyright (c) 2003-2006 INRIA Sophia-Antipolis (France). +// All rights reserved. +// +// This file is part of CGAL (www.cgal.org). +// +// $URL$ +// $Id$ +// SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial +// +// Author(s) : Monique Teillaud, Sylvain Pion + +// Partially supported by the IST Programme of the EU as a Shared-cost +// RTD (FET Open) Project under Contract No IST-2000-26473 +// (ECG - Effective Computational Geometry for Curves and Surfaces) +// and a STREP (FET Open) Project under Contract No IST-006413 +// (ACS -- Algorithms for Complex Shapes) + +#ifndef CGAL_ALGEBRAIC_KERNEL_FOR_CIRCLES_2_2_H +#define CGAL_ALGEBRAIC_KERNEL_FOR_CIRCLES_2_2_H + +#include + + +#include +#include +#include +#include +#include + +#include + +namespace CGAL { + + template< class RT_ > + struct Algebraic_kernel_for_circles_2_2 + { + typedef Algebraic_kernel_for_circles_2_2 Self; + + typedef RT_ RT; + typedef typename Root_of_traits< RT >::RootOf_1 FT; + + typedef CGAL::Polynomial_1_2 Polynomial_1_2; + typedef CGAL::Polynomial_for_circles_2_2 Polynomial_for_circles_2_2; + // problem RT / FT ? + + typedef typename Root_of_traits< RT >::RootOf_2 Root_of_2; + typedef CGAL::Root_for_circles_2_2< RT > Root_for_circles_2_2; + + typedef AlgebraicFunctors::Construct_polynomial_1_2 + Construct_polynomial_1_2; + typedef AlgebraicFunctors::Construct_polynomial_for_circles_2_2 + Construct_polynomial_for_circles_2_2; + + typedef AlgebraicFunctors::Solve Solve; + typedef AlgebraicFunctors::Sign_at Sign_at; + typedef AlgebraicFunctors::X_critical_points X_critical_points; + typedef AlgebraicFunctors::Y_critical_points Y_critical_points; + typedef AlgebraicFunctors::Compare_x Compare_x; + typedef AlgebraicFunctors::Compare_y Compare_y; + typedef AlgebraicFunctors::Compare_xy Compare_xy; + + Construct_polynomial_1_2 + construct_polynomial_1_2_object() const + { return Construct_polynomial_1_2(); } + + Construct_polynomial_for_circles_2_2 + construct_polynomial_for_circles_2_2_object() const + { return Construct_polynomial_for_circles_2_2(); } + + Solve solve_object() const + { return Solve(); } + + Sign_at sign_at_object() const + { return Sign_at(); } + + X_critical_points x_critical_points_object() const + { return X_critical_points(); } + + Y_critical_points y_critical_points_object() const + { return Y_critical_points(); } + + Compare_x compare_x_object() const + { return Compare_x(); } + + Compare_y compare_y_object() const + { return Compare_y(); } + + Compare_xy compare_xy_object() const + { return Compare_xy(); } + + }; + +} //namespace CGAL + +#endif // CGAL_ALGEBRAIC_KERNEL_FOR_CIRCLES_2_2_H diff --git a/Algebraic_kernel_for_circles/include/CGAL/Polynomials_1_2.h b/Algebraic_kernel_for_circles/include/CGAL/Polynomials_1_2.h new file mode 100644 index 00000000000..5aa5884aac6 --- /dev/null +++ b/Algebraic_kernel_for_circles/include/CGAL/Polynomials_1_2.h @@ -0,0 +1,68 @@ +// Copyright (c) 2003-2006 INRIA Sophia-Antipolis (France). +// All rights reserved. +// +// This file is part of CGAL (www.cgal.org). +// +// $URL$ +// $Id$ +// SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial +// +// Author(s) : Monique Teillaud, Sylvain Pion + +// Partially supported by the IST Programme of the EU as a Shared-cost +// RTD (FET Open) Project under Contract No IST-2000-26473 +// (ECG - Effective Computational Geometry for Curves and Surfaces) +// and a STREP (FET Open) Project under Contract No IST-006413 +// (ACS -- Algorithms for Complex Shapes) + +#ifndef CGAL_ALGEBRAIC_KERNEL_FOR_CIRCLES_POLYNOMIALS_1_2_H +#define CGAL_ALGEBRAIC_KERNEL_FOR_CIRCLES_POLYNOMIALS_1_2_H + +#include + + +#include + +namespace CGAL { + +template < typename RT_ > +class Polynomial_1_2 +{ + RT_ rep[3]; // stores a, b, c for line ax+by+c=0 + +public: + + typedef RT_ RT; + + Polynomial_1_2(){} + + Polynomial_1_2(const RT & a, const RT & b, const RT & c) + { + rep[0]=a; + rep[1]=b; + rep[2]=c; + } + + const RT & a() const + { return rep[0]; } + + const RT & b() const + { return rep[1]; } + + const RT & c() const + { return rep[2]; } +}; + +template < typename RT > +bool +operator == ( const Polynomial_1_2 & p1, + const Polynomial_1_2 & p2 ) +{ + return( (p1.a() == p2.a()) && + (p1.b() == p2.b()) && + (p1.c() == p2.c()) ); +} + +} //namespace CGAL + +#endif //CGAL_ALGEBRAIC_KERNEL_FOR_CIRCLES_POLYNOMIALS_1_2_H diff --git a/Algebraic_kernel_for_circles/include/CGAL/Polynomials_2_2.h b/Algebraic_kernel_for_circles/include/CGAL/Polynomials_2_2.h new file mode 100644 index 00000000000..80e64656062 --- /dev/null +++ b/Algebraic_kernel_for_circles/include/CGAL/Polynomials_2_2.h @@ -0,0 +1,71 @@ +// Copyright (c) 2003-2006 INRIA Sophia-Antipolis (France). +// All rights reserved. +// +// This file is part of CGAL (www.cgal.org). +// +// $URL$ +// $Id$ +// SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial +// +// Author(s) : Monique Teillaud, Sylvain Pion + +// Partially supported by the IST Programme of the EU as a Shared-cost +// RTD (FET Open) Project under Contract No IST-2000-26473 +// (ECG - Effective Computational Geometry for Curves and Surfaces) +// and a STREP (FET Open) Project under Contract No IST-006413 +// (ACS -- Algorithms for Complex Shapes) + +#ifndef CGAL_ALGEBRAIC_KERNEL_FOR_CIRCLES_POLYNOMIALS_2_2_H +#define CGAL_ALGEBRAIC_KERNEL_FOR_CIRCLES_POLYNOMIALS_2_2_H + +#include + + +//////////// FIXME - pb RT (cas general Polynomial_2_2) ou FT (ici) + +#include + +namespace CGAL { + +// polynomials of the form (X-a)^2 + (Y-b)^2 - R^2 +template < typename FT_ > +class Polynomial_for_circles_2_2 +{ + FT_ rep[3]; // stores a, b, R^2 + +public: + + typedef FT_ FT; + + Polynomial_for_circles_2_2(){} + + Polynomial_for_circles_2_2(const FT & a, const FT & b, const FT & rsq) + { + rep[0]=a; + rep[1]=b; + rep[2]=rsq; + } + + const FT & a() const + { return rep[0]; } + + const FT & b() const + { return rep[1]; } + + const FT & r_sq() const + { return rep[2]; } +}; + +template < typename FT > +bool +operator == ( const Polynomial_for_circles_2_2 & p1, + const Polynomial_for_circles_2_2 & p2 ) +{ + return( (p1.a() == p2.a()) && + (p1.b() == p2.b()) && + (p1.r_sq() == p2.r_sq()) ); +} + +} //namespace CGAL + +#endif //CGAL_ALGEBRAIC_KERNEL_FOR_CIRCLES_POLYNOMIALS_2_2_H diff --git a/Algebraic_kernel_for_circles/include/CGAL/Root_for_circles_2_2.h b/Algebraic_kernel_for_circles/include/CGAL/Root_for_circles_2_2.h new file mode 100644 index 00000000000..bb2b92d350d --- /dev/null +++ b/Algebraic_kernel_for_circles/include/CGAL/Root_for_circles_2_2.h @@ -0,0 +1,132 @@ +// Copyright (c) 2003-2006 INRIA Sophia-Antipolis (France). +// All rights reserved. +// +// This file is part of CGAL (www.cgal.org). +// +// $URL$ +// $Id$ +// SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial +// +// Author(s) : Monique Teillaud, Sylvain Pion + +// Partially supported by the IST Programme of the EU as a Shared-cost +// RTD (FET Open) Project under Contract No IST-2000-26473 +// (ECG - Effective Computational Geometry for Curves and Surfaces) +// and a STREP (FET Open) Project under Contract No IST-006413 +// (ACS -- Algorithms for Complex Shapes) + +#ifndef CGAL_ALGEBRAIC_KERNEL_FOR_CIRCLES_ROOT_FOR_CIRCLES_2_2_H +#define CGAL_ALGEBRAIC_KERNEL_FOR_CIRCLES_ROOT_FOR_CIRCLES_2_2_H + +#include + + +#include +#include +#include +#include +#include + +namespace CGAL { + +template < typename RT_ > +class Root_for_circles_2_2 { + + typedef RT_ RT; + typedef typename Root_of_traits< RT >::RootOf_2 Root_of_2; + typedef typename Root_of_traits< RT >::RootOf_1 FT; + + private: + Handle_for x_; + Handle_for y_; + + public: + Root_for_circles_2_2(){} + + Root_for_circles_2_2(const Root_of_2& r1, const Root_of_2& r2) + : x_(r1), y_(r2) + { + // When it is an interval this assertion dont compile + //CGAL_assertion((r1.is_rational() || r2.is_rational()) || + // (r1.gamma() == r2.gamma())); + } + + const Root_of_2& x() const + { return get_pointee_or_identity(x_); } + + const Root_of_2& y() const + { return get_pointee_or_identity(y_); } + + CGAL::Bbox_2 bbox() const + { + CGAL::Interval_nt<> + ix=to_interval(x()), + iy=to_interval(y()); + return CGAL::Bbox_2(ix.inf(),iy.inf(), + ix.sup(),iy.sup()); + /* + const Root_of_2 &ox = x(); + const Root_of_2 &oy = y(); + + if(ox.is_rational() || oy.is_rational()) { + CGAL::Interval_nt<> + ix=to_interval(ox), + iy=to_interval(oy); + return CGAL::Bbox_2(ix.inf(),iy.inf(), + ix.sup(),iy.sup()); + } + + // delta must be the same + // WE HAVE TO TEST THE EXECUTION TIME + // IT STILL NOT POSSIBLE BECAUSE OF THE + // PROBLEM ON THE ARRANGEMENT + // (it is very likely to make it better with this changing) + const CGAL::Interval_nt alpha1 = to_interval(ox.alpha()); + const CGAL::Interval_nt beta1 = to_interval(ox.beta()); + const CGAL::Interval_nt alpha2 = to_interval(oy.alpha()); + const CGAL::Interval_nt beta2 = to_interval(oy.beta()); + const CGAL::Interval_nt g = to_interval(ox.gamma()); + const CGAL::Interval_nt sqrtg = CGAL::sqrt(g); + const CGAL::Interval_nt ix = alpha1 + beta1 * sqrtg; + const CGAL::Interval_nt iy = alpha2 + beta2 * sqrtg; + return CGAL::Bbox_2(ix.inf(),iy.inf(), + ix.sup(),iy.sup()); + */ + } + + template < typename RT > + friend bool operator == ( const Root_for_circles_2_2& r1, + const Root_for_circles_2_2& r2 ); + +}; + +template < typename RT > +bool +operator == ( const Root_for_circles_2_2& r1, + const Root_for_circles_2_2& r2 ) +{ if (CGAL::identical(r1.x_, r2.x_) && CGAL::identical(r1.y_, r2.y_)) + return true; + return (r1.x() == r2.x()) && (r1.y() == r2.y()); +} + +template < typename RT > +std::ostream & +operator<<(std::ostream & os, const Root_for_circles_2_2 &r) +{ return os << r.x() << " " << r.y() << " "; } + +template < typename RT > +std::istream & +operator>>(std::istream & is, Root_for_circles_2_2 &r) +{ + typedef typename Root_of_traits< RT >::RootOf_2 Root_of_2; + Root_of_2 x,y; + + is >> x >> y; + if(is) + r = Root_for_circles_2_2(x,y); + return is; +} + +} //namespace CGAL + +#endif // CGAL_ALGEBRAIC_KERNEL_FOR_CIRCLES_ROOT_FOR_CIRCLES_2_2_H diff --git a/Algebraic_kernel_for_circles/package_info/Algebraic_kernel_for_circles/copyright b/Algebraic_kernel_for_circles/package_info/Algebraic_kernel_for_circles/copyright new file mode 100644 index 00000000000..8932b3233d2 --- /dev/null +++ b/Algebraic_kernel_for_circles/package_info/Algebraic_kernel_for_circles/copyright @@ -0,0 +1,2 @@ +INRIA Sophia-Antipolis (France) + diff --git a/Algebraic_kernel_for_circles/package_info/Algebraic_kernel_for_circles/dependencies b/Algebraic_kernel_for_circles/package_info/Algebraic_kernel_for_circles/dependencies new file mode 100644 index 00000000000..8d3b893eeb2 --- /dev/null +++ b/Algebraic_kernel_for_circles/package_info/Algebraic_kernel_for_circles/dependencies @@ -0,0 +1,12 @@ +Algebraic_foundations +Algebraic_kernel_for_circles +Arithmetic_kernel +Filtered_kernel +Installation +Interval_support +Kernel_23 +Modular_arithmetic +Number_types +Profiling_tools +STL_Extension +Stream_support diff --git a/Algebraic_kernel_for_circles/package_info/Algebraic_kernel_for_circles/license.txt b/Algebraic_kernel_for_circles/package_info/Algebraic_kernel_for_circles/license.txt new file mode 100644 index 00000000000..8bb8efcb72b --- /dev/null +++ b/Algebraic_kernel_for_circles/package_info/Algebraic_kernel_for_circles/license.txt @@ -0,0 +1 @@ +GPL (v3 or later) diff --git a/Algebraic_kernel_for_circles/package_info/Algebraic_kernel_for_circles/maintainer b/Algebraic_kernel_for_circles/package_info/Algebraic_kernel_for_circles/maintainer new file mode 100644 index 00000000000..fec7225a53c --- /dev/null +++ b/Algebraic_kernel_for_circles/package_info/Algebraic_kernel_for_circles/maintainer @@ -0,0 +1 @@ +Monique Teillaud diff --git a/Algebraic_kernel_for_circles/test/Algebraic_kernel_for_circles/CMakeLists.txt b/Algebraic_kernel_for_circles/test/Algebraic_kernel_for_circles/CMakeLists.txt new file mode 100644 index 00000000000..c02ce4ff14d --- /dev/null +++ b/Algebraic_kernel_for_circles/test/Algebraic_kernel_for_circles/CMakeLists.txt @@ -0,0 +1,26 @@ +# Created by the script cgal_create_cmake_script +# This is the CMake script for compiling a CGAL application. + + +cmake_minimum_required(VERSION 3.1...3.15) +project( Algebraic_kernel_for_circles_Tests ) + + +find_package(CGAL QUIET) + +if ( CGAL_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 library, and will not be compiled.") + +endif() + diff --git a/Algebraic_kernel_for_circles/test/Algebraic_kernel_for_circles/include/CGAL/_test_constructor.h b/Algebraic_kernel_for_circles/test/Algebraic_kernel_for_circles/include/CGAL/_test_constructor.h new file mode 100644 index 00000000000..8510d3fb696 --- /dev/null +++ b/Algebraic_kernel_for_circles/test/Algebraic_kernel_for_circles/include/CGAL/_test_constructor.h @@ -0,0 +1,36 @@ +#include +#include + +template +void _test_constuctor(AK ak) +{ + CGAL::Random generatorOfgenerator; + int random_seed = generatorOfgenerator.get_int(0, 123456); + std::cout << "random_seed = " << random_seed << std::endl; + CGAL::Random theRandom(random_seed); + int random_max = 127; + int random_min = -127; + typename AK::Construct_polynomial_for_circles_2_2 theConstruct_2_2 = + ak.construct_polynomial_for_circles_2_2_object(); + typename AK::Construct_polynomial_1_2 theConstruct_1_2 = + ak.construct_polynomial_1_2_object(); + + for(int i = 0; i < 20 ; i++){ + int x = theRandom.get_int(random_min,random_max); + int y = theRandom.get_int(random_min,random_max); + int r_sq = theRandom.get_int(random_min,random_max); + int a = theRandom.get_int(random_min,random_max); + int b = theRandom.get_int(random_min,random_max); + int c = theRandom.get_int(random_min,random_max); + + typename AK::Polynomial_for_circles_2_2 p_2_2 = theConstruct_2_2(x, y, r_sq); + typename AK::Polynomial_1_2 p_1_2 = theConstruct_1_2(a, b, c); + assert(p_2_2.a() == x); + assert(p_2_2.b() == y); + assert(p_2_2.r_sq() == r_sq); + assert(p_1_2.a() == a); + assert(p_1_2.b() == b); + assert(p_1_2.c() == c); + } + +} diff --git a/Algebraic_kernel_for_circles/test/Algebraic_kernel_for_circles/include/CGAL/_test_predicates.h b/Algebraic_kernel_for_circles/test/Algebraic_kernel_for_circles/include/CGAL/_test_predicates.h new file mode 100644 index 00000000000..211882addc9 --- /dev/null +++ b/Algebraic_kernel_for_circles/test/Algebraic_kernel_for_circles/include/CGAL/_test_predicates.h @@ -0,0 +1,414 @@ +#include +#include + +template +void _test_solve(AK ak) +{ + typedef typename AK::Root_for_circles_2_2 Root_for_circles_2_2; + typename AK::Solve theSolve = + ak.solve_object(); + + //Polynomial_for_circles_2_2 + typename AK::Construct_polynomial_for_circles_2_2 theConstruct_2_2 = + ak.construct_polynomial_for_circles_2_2_object(); + + std::vector< std::pair > res1; + theSolve(theConstruct_2_2(5, 5, 25), + theConstruct_2_2(0, 5, 100), + std::back_inserter(res1)); + assert(res1.size() == 1); + assert(res1[0].second == 2u); + assert(res1[0].first == Root_for_circles_2_2(10, 5)); + + std::vector< std::pair > res2; + theSolve(theConstruct_2_2(-5, 5, 25), + theConstruct_2_2(0, 5, 100), + std::back_inserter(res2)); + assert(res2.size() == 1); + assert(res2[0].second == 2u); + assert(res2[0].first == Root_for_circles_2_2(-10, 5)); + + std::vector< std::pair > res3; + theSolve(theConstruct_2_2(0, 5, 25), + theConstruct_2_2(0, 0, 100), + std::back_inserter(res3)); + assert(res3.size() == 1); + assert(res3[0].second == 2u); + assert(res3[0].first == Root_for_circles_2_2(0, 10)); + + std::vector< std::pair > res4; + theSolve(theConstruct_2_2(0, -5, 25), + theConstruct_2_2(0, 0, 100), + std::back_inserter(res4)); + assert(res4.size() == 1); + assert(res4[0].second == 2u); + assert(res4[0].first == Root_for_circles_2_2(0, -10)); + + std::vector< std::pair > res5; + theSolve(theConstruct_2_2(-5, 5, 25), + theConstruct_2_2(0, 0, 25), + std::back_inserter(res5)); + assert(res5.size() == 2); + assert(res5[0].second == 1u); + assert(res5[0].first == Root_for_circles_2_2(-5, 0)); + assert(res5[1].second == 1u); + assert(res5[1].first == Root_for_circles_2_2(0, 5)); + + //Polynomial_1_2 Polynomial_for_circles_2_2 + typename AK::Construct_polynomial_1_2 theConstruct_1_2 = + ak.construct_polynomial_1_2_object(); + + //line horizontal in circle's center + std::vector< std::pair > res6; + theSolve(theConstruct_1_2(0, 1, -5), + theConstruct_2_2(0, 5, 100), + std::back_inserter(res6)); + assert(res6.size() == 2); + assert(res6[0].second == 1u); + assert(res6[0].first == Root_for_circles_2_2(-10, 5)); + assert(res6[1].second == 1u); + assert(res6[1].first == Root_for_circles_2_2(10, 5)); + + //line vertical in circle's center + std::vector< std::pair > res7; + theSolve(theConstruct_1_2(1, 0, -5), + theConstruct_2_2(5, 5, 100), + std::back_inserter(res7)); + assert(res7.size() == 2); + assert(res7[0].second == 1u); + assert(res7[0].first == Root_for_circles_2_2(5, -5)); + assert(res7[1].second == 1u); + assert(res7[1].first == Root_for_circles_2_2(5, 15)); + + //line vertical tangent left + std::vector< std::pair > res8; + theSolve(theConstruct_1_2(1, 0, 5), + theConstruct_2_2(5, 5, 100), + std::back_inserter(res8)); + assert(res8.size() == 1); + assert(res8[0].second == 2u); + assert(res8[0].first == Root_for_circles_2_2(-5, 5)); + + //line vertical tangent right + std::vector< std::pair > res9; + theSolve(theConstruct_1_2(1, 0, -15), + theConstruct_2_2(5, 5, 100), + std::back_inserter(res9)); + assert(res9.size() == 1); + assert(res9[0].second == 2u); + assert(res9[0].first == Root_for_circles_2_2(15, 5)); + + //line horizontal tangent on top + std::vector< std::pair > res10; + theSolve(theConstruct_1_2(0, 1, -15), + theConstruct_2_2(5, 5, 100), + std::back_inserter(res10)); + assert(res10.size() == 1); + assert(res10[0].second == 2u); + assert(res10[0].first == Root_for_circles_2_2(5, 15)); + + //line horizontal tangent down + std::vector< std::pair > res11; + theSolve(theConstruct_1_2(0, 1, 5), + theConstruct_2_2(5, 5, 100), + std::back_inserter(res11)); + assert(res11.size() == 1); + assert(res11[0].second == 2u); + assert(res11[0].first == Root_for_circles_2_2(5, -5)); + + + // only Polynomial_1_2 + std::vector< std::pair > res12; + theSolve(theConstruct_1_2(1, 1, -5), + theConstruct_1_2(1, -1, 5), + std::back_inserter(res12)); + assert(res12.size() == 1); + assert(res12[0].second == 1u); + assert(res12[0].first == Root_for_circles_2_2(0, 5)); + + std::vector< std::pair > res13; + theSolve(theConstruct_1_2(0, 1, -5), + theConstruct_1_2(1, -1, 5), + std::back_inserter(res13)); + assert(res13.size() == 1); + assert(res13[0].second == 1u); + assert(res13[0].first == Root_for_circles_2_2(0, 5)); + + std::vector< std::pair > res14; + theSolve(theConstruct_1_2(1, -1, 5), + theConstruct_1_2(0, 1, -5), + std::back_inserter(res14)); + assert(res14.size() == 1); + assert(res14[0].second == 1u); + assert(res14[0].first == Root_for_circles_2_2(0, 5)); + + std::vector< std::pair > res15; + theSolve(theConstruct_1_2(1, 0, 0), + theConstruct_1_2(1, -1, 5), + std::back_inserter(res15)); + assert(res15.size() == 1); + assert(res15[0].second == 1u); + assert(res15[0].first == Root_for_circles_2_2(0, 5)); + + std::vector< std::pair > res16; + theSolve(theConstruct_1_2(1, -1, 5), + theConstruct_1_2(1, 0, 0), + std::back_inserter(res16)); + assert(res16.size() == 1); + assert(res16[0].second == 1u); + assert(res16[0].first == Root_for_circles_2_2(0, 5)); + + std::vector< std::pair > res17; + theSolve(theConstruct_1_2(0, 1, -5), + theConstruct_1_2(1, 0, 0), + std::back_inserter(res17)); + assert(res17.size() == 1); + assert(res17[0].second == 1u); + assert(res17[0].first == Root_for_circles_2_2(0, 5)); + + std::vector< std::pair > res18; + theSolve(theConstruct_1_2(1, 0, 0), + theConstruct_1_2(0, 1, -5), + std::back_inserter(res18)); + assert(res18.size() == 1); + assert(res18[0].second == 1u); + assert(res18[0].first == Root_for_circles_2_2(0, 5)); + + std::vector< std::pair > res19; + theSolve(theConstruct_1_2(1, 0, 0), + theConstruct_1_2(1, 0, 0), + std::back_inserter(res19)); + assert(res19.size() == 0); + + std::vector< std::pair > res20; + theSolve(theConstruct_1_2(1, 0, 0), + theConstruct_1_2(1, 0, 5), + std::back_inserter(res20)); + assert(res20.size() == 0); + + + std::vector< std::pair > res21; + theSolve(theConstruct_1_2(0, 1, -5), + theConstruct_1_2(0, 1, -5), + std::back_inserter(res21)); + assert(res21.size() == 0); + + std::vector< std::pair > res22; + theSolve(theConstruct_1_2(0, 1, -5), + theConstruct_1_2(0, 1, 0), + std::back_inserter(res22)); + assert(res22.size() == 0); + + std::vector< std::pair > res23; + theSolve(theConstruct_1_2(1, -1, 5), + theConstruct_1_2(1, -1, 5), + std::back_inserter(res23)); + assert(res23.size() == 0); + + std::vector< std::pair > res24; + theSolve(theConstruct_1_2(1, -1, 5), + theConstruct_1_2(2, -2, 15), + std::back_inserter(res24)); + assert(res24.size() == 0); + + CGAL::Random generatorOfgenerator; + int random_seed = generatorOfgenerator.get_int(0, 123456); + std::cout << "random_seed = " << random_seed << std::endl; + CGAL::Random theRandom(random_seed); + int random_max = 5; + int random_min = -5; + + typename AK::Sign_at theSigh_at = + ak.sign_at_object(); + + for(std::size_t i = 0; i < 500; i++){ + int a1, b1, c1, a2, b2, c2, a3, b3, r_sq = 0; + do{ + a1 = theRandom.get_int(random_min,random_max); + b1 = theRandom.get_int(random_min,random_max); + }while((a1 == 0) && (b1 == 0)); + c1 = theRandom.get_int(random_min,random_max); + do{ + a2 = theRandom.get_int(random_min,random_max); + b2 = theRandom.get_int(random_min,random_max); + }while((a2 == 0) && (b2 == 0)); + c2 = theRandom.get_int(random_min,random_max); + a3 = theRandom.get_int(random_min,random_max); + b3 = theRandom.get_int(random_min,random_max); + r_sq = theRandom.get_int(1,random_max); + + std::vector< std::pair > res; + theSolve(theConstruct_1_2(a1, b1, c1), + theConstruct_1_2(a2, b2, c2), + std::back_inserter(res)); + std::vector< std::pair > res2; + theSolve(theConstruct_1_2(a2, b2, c2), + theConstruct_2_2(a3, b3, r_sq), + std::back_inserter(res2)); + std::vector< std::pair > res3; + theSolve(theConstruct_1_2(a1, b1, c1), + theConstruct_2_2(a3, b3, r_sq), + std::back_inserter(res3)); + for (std::size_t j = 0 ; j < res.size() ; j++){ + assert(res[j].second == 1u); + assert(theSigh_at(theConstruct_1_2(a1, b1, c1), + res[j].first) == CGAL::ZERO); + assert(theSigh_at(theConstruct_1_2(a2, b2, c2), + res[j].first) == CGAL::ZERO); + } + for (std::size_t j = 0 ; j < res2.size() ; j++){ + if(res2.size() == 1) assert(res2[j].second == 2u); + if(res2.size() == 2) assert(res2[j].second == 1u); + assert(theSigh_at(theConstruct_2_2(a3, b3, r_sq), + res2[j].first) == CGAL::ZERO); + assert(theSigh_at(theConstruct_1_2(a2, b2, c2), + res2[j].first) == CGAL::ZERO); + } + for (std::size_t j = 0 ; j < res3.size() ; j++){ + if(res3.size() == 1) assert(res3[j].second == 2u); + if(res3.size() == 2) assert(res3[j].second == 1u); + assert(theSigh_at(theConstruct_2_2(a3, b3, r_sq), + res3[j].first) == CGAL::ZERO); + assert(theSigh_at(theConstruct_1_2(a1, b1, c1), + res3[j].first) == CGAL::ZERO); + } + + } + +} + +template +void _test_sign_at(AK ak) +{ + typedef typename AK::Root_for_circles_2_2 Root_for_circles_2_2; + typename AK::Sign_at theSigh_at = + ak.sign_at_object(); + + //Polynomial_for_circles_2_2 + typename AK::Construct_polynomial_for_circles_2_2 theConstruct_2_2 = + ak.construct_polynomial_for_circles_2_2_object(); + + assert(theSigh_at(theConstruct_2_2(5, 5, 100), + Root_for_circles_2_2(-5,5)) == CGAL::ZERO); + assert(theSigh_at(theConstruct_2_2(5, 5, 100), + Root_for_circles_2_2(15,5)) == CGAL::ZERO); + assert(theSigh_at(theConstruct_2_2(5, 5, 100), + Root_for_circles_2_2(5,15)) == CGAL::ZERO); + assert(theSigh_at(theConstruct_2_2(5, 5, 100), + Root_for_circles_2_2(5,-5)) == CGAL::ZERO); + + assert(theSigh_at(theConstruct_2_2(5, 5, 100), + Root_for_circles_2_2(5,5)) != CGAL::ZERO); + assert(theSigh_at(theConstruct_2_2(5, 5, 100), + Root_for_circles_2_2(5,16)) != CGAL::ZERO); + assert(theSigh_at(theConstruct_2_2(5, 5, 100), + Root_for_circles_2_2(5,-6)) != CGAL::ZERO); + + //Polynomial_1_2 + typename AK::Construct_polynomial_1_2 theConstruct_1_2 = + ak.construct_polynomial_1_2_object(); + + assert(theSigh_at(theConstruct_1_2(1, 0, -5), + Root_for_circles_2_2(5,-6)) == CGAL::ZERO); + assert(theSigh_at(theConstruct_1_2(1, 0, -5), + Root_for_circles_2_2(6,-6)) != CGAL::ZERO); + assert(theSigh_at(theConstruct_1_2(0, 1, -5), + Root_for_circles_2_2(5,-6)) != CGAL::ZERO); + assert(theSigh_at(theConstruct_1_2(0, 1, -5), + Root_for_circles_2_2(5, 5)) == CGAL::ZERO); + +} + +template +void _test_critical_points(AK ak) +{ + CGAL::Random generatorOfgenerator; + int random_seed = generatorOfgenerator.get_int(0, 123456); + std::cout << "random_seed = " << random_seed << std::endl; + CGAL::Random theRandom(random_seed); + int random_max = 127; + int random_min = -127; + + typedef typename AK::Root_for_circles_2_2 Root_for_circles_2_2; + typename AK::Construct_polynomial_for_circles_2_2 theConstruct_2_2 = + ak.construct_polynomial_for_circles_2_2_object(); + typename AK::X_critical_points theX_critical_points = + ak.x_critical_points_object(); + + typename AK::Y_critical_points theY_critical_points = + ak.y_critical_points_object(); + + for(int i = 0; i < 20; i++){ + int x = theRandom.get_int(random_min,random_max); + int y = theRandom.get_int(random_min,random_max); + int r = theRandom.get_int(1,random_max); + + assert(theX_critical_points(theConstruct_2_2(x,y,r*r),true) + == Root_for_circles_2_2(x - r, y)); + assert(theX_critical_points(theConstruct_2_2(x,y,r*r),false) + == Root_for_circles_2_2(x + r, y)); + assert(theY_critical_points(theConstruct_2_2(x,y,r*r),true) + == Root_for_circles_2_2(x, y - r)); + assert(theY_critical_points(theConstruct_2_2(x,y,r*r),false) + == Root_for_circles_2_2(x, y + r)); + } + +} + +template +void _test_compare_Root_for_circles(AK ak) +{ + CGAL::Random generatorOfgenerator; + int random_seed = generatorOfgenerator.get_int(0, 123456); + std::cout << "random_seed = " << random_seed << std::endl; + CGAL::Random theRandom(random_seed); + int random_max = 127; + int random_min = -127; + + typedef typename AK::Root_for_circles_2_2 Root_for_circles_2_2; + + typename AK::Compare_x theCompare_x = + ak.compare_x_object(); + + typename AK::Compare_y theCompare_y = + ak.compare_y_object(); + + typename AK::Compare_xy theCompare_xy = + ak.compare_xy_object(); + + for (int i = 0; i < 20; i++){ + Root_for_circles_2_2 r1(theRandom.get_int(random_min,random_max), + theRandom.get_int(random_min,random_max)); + Root_for_circles_2_2 r2(theRandom.get_int(random_min,random_max), + theRandom.get_int(random_min,random_max)); + if(r1.x() > r2.x()){ + assert(theCompare_x(r1, r2) == CGAL::LARGER); + assert(theCompare_xy(r1, r2) == CGAL::LARGER); + } + else if(r1.x() == r2.x()){ + assert(theCompare_x(r1, r2) == CGAL::EQUAL); + if(r1.y() < r2.y()){ + assert(theCompare_y(r1, r2) == CGAL::SMALLER); + assert(theCompare_xy(r1, r2) == CGAL::SMALLER); + } + else if(r1.y() > r2.y()){ + assert(theCompare_y(r1, r2) == CGAL::LARGER); + assert(theCompare_xy(r1, r2) == CGAL::LARGER); + } + else { + assert(theCompare_y(r1, r2) == CGAL::EQUAL); + assert(theCompare_xy(r1, r2) == CGAL::EQUAL); + } + } + else { + assert(theCompare_x(r1, r2) == CGAL::SMALLER); + assert(theCompare_xy(r1, r2) == CGAL::SMALLER); + } + if(r1.y() > r2.y()) + assert(theCompare_y(r1, r2) == CGAL::LARGER); + else if(r1.y() < r2.y()) + assert(theCompare_y(r1, r2) == CGAL::SMALLER); + else + assert(theCompare_y(r1, r2) == CGAL::EQUAL); + } +} diff --git a/Algebraic_kernel_for_circles/test/Algebraic_kernel_for_circles/test_Algebraic_kernel.cpp b/Algebraic_kernel_for_circles/test/Algebraic_kernel_for_circles/test_Algebraic_kernel.cpp new file mode 100644 index 00000000000..f46dc0af420 --- /dev/null +++ b/Algebraic_kernel_for_circles/test/Algebraic_kernel_for_circles/test_Algebraic_kernel.cpp @@ -0,0 +1,20 @@ +#include +#include +#include +#include +#include +#include + +int main() +{ + typedef CGAL::Quotient NT1; + typedef CGAL::Algebraic_kernel_for_circles_2_2 Algebraic_k1; + Algebraic_k1 ak1; + _test_solve(ak1); + _test_sign_at(ak1); + _test_critical_points(ak1); + _test_compare_Root_for_circles(ak1); + _test_constuctor(ak1); + + return 0; +} diff --git a/Arrangement_on_surface_2/demo/Arrangement_on_surface_2/CMakeLists.txt b/Arrangement_on_surface_2/demo/Arrangement_on_surface_2/CMakeLists.txt index 2bed310a6e0..21a67c6a7a7 100644 --- a/Arrangement_on_surface_2/demo/Arrangement_on_surface_2/CMakeLists.txt +++ b/Arrangement_on_surface_2/demo/Arrangement_on_surface_2/CMakeLists.txt @@ -19,7 +19,6 @@ find_package( Qt5 QUIET COMPONENTS Gui Widgets) if ( CGAL_FOUND AND CGAL_Qt5_FOUND AND Qt5_FOUND AND CGAL_Core_FOUND) include(${CGAL_USE_FILE}) - include_directories( ./ ) # Arrangement package includes add_definitions(-DQT_NO_KEYWORDS) diff --git a/BGL/examples/BGL_polyhedron_3/CMakeLists.txt b/BGL/examples/BGL_polyhedron_3/CMakeLists.txt index 01378916001..61216b99fdf 100644 --- a/BGL/examples/BGL_polyhedron_3/CMakeLists.txt +++ b/BGL/examples/BGL_polyhedron_3/CMakeLists.txt @@ -27,23 +27,6 @@ if ( NOT Boost_FOUND ) endif() -find_package( OpenMesh QUIET ) - -if ( OpenMesh_FOUND ) - include( UseOpenMesh ) - add_definitions( -DCGAL_USE_OPENMESH ) -else() - message(STATUS "Examples that use OpenMesh will not be compiled.") -endif() - -find_package( METIS ) - -if( METIS_FOUND ) - include_directories(${METIS_INCLUDE_DIRS} ) -else() - message( STATUS "Examples that use the METIS library will not be compiled." ) -endif() - # include for local directory # include for local package @@ -67,12 +50,24 @@ create_single_source_cgal_program( "transform_iterator.cpp" ) create_single_source_cgal_program( "copy_polyhedron.cpp" ) -if(OpenMesh_FOUND) +find_package( OpenMesh QUIET ) + +if ( OpenMesh_FOUND ) + include( UseOpenMesh ) + target_compile_definitions( copy_polyhedron PRIVATE -DCGAL_USE_OPENMESH ) target_link_libraries( copy_polyhedron PRIVATE ${OPENMESH_LIBRARIES} ) +else() + message(STATUS "Examples that use OpenMesh will not be compiled.") endif() +find_package( METIS ) if( METIS_FOUND ) create_single_source_cgal_program( "polyhedron_partition.cpp" ) - target_link_libraries( polyhedron_partition PRIVATE ${METIS_LIBRARIES} ) + if( METIS_FOUND ) + target_include_directories( polyhedron_partition PRIVATE ${METIS_INCLUDE_DIRS} ) + target_link_libraries( polyhedron_partition PRIVATE ${METIS_LIBRARIES} ) + else() + message( STATUS "Examples that use the METIS library will not be compiled." ) + endif() endif() diff --git a/BGL/examples/BGL_surface_mesh/CMakeLists.txt b/BGL/examples/BGL_surface_mesh/CMakeLists.txt index 13ba8575799..c545ffa17da 100644 --- a/BGL/examples/BGL_surface_mesh/CMakeLists.txt +++ b/BGL/examples/BGL_surface_mesh/CMakeLists.txt @@ -21,9 +21,9 @@ create_single_source_cgal_program( "connected_components.cpp" ) find_package( METIS ) if( METIS_FOUND ) - include_directories(${METIS_INCLUDE_DIRS} ) create_single_source_cgal_program( "surface_mesh_partition.cpp" ) + target_include_directories( surface_mesh_partition PRIVATE ${METIS_INCLUDE_DIRS} ) target_link_libraries( surface_mesh_partition PRIVATE ${METIS_LIBRARIES} ) else() message( STATUS "Examples that use the METIS library will not be compiled." ) diff --git a/CGAL_ipelets/demo/CGAL_ipelets/CMakeLists.txt b/CGAL_ipelets/demo/CGAL_ipelets/CMakeLists.txt index 6e6749d8619..fb13cb1e124 100644 --- a/CGAL_ipelets/demo/CGAL_ipelets/CMakeLists.txt +++ b/CGAL_ipelets/demo/CGAL_ipelets/CMakeLists.txt @@ -36,8 +36,6 @@ if ( CGAL_FOUND ) find_package(IPE 6) if ( IPE_FOUND ) - include_directories(BEFORE ${IPE_INCLUDE_DIR}) - if (${IPE_VERSION} EQUAL "7") set(WITH_IPE_7 ON) elseif(${IPE_VERSION} EQUAL "6") @@ -66,10 +64,6 @@ if ( CGAL_FOUND ) endif() if ( IPE_FOUND AND IPE_VERSION) - if (WITH_IPE_7) - add_definitions(-DCGAL_USE_IPE_7) - endif() - message("-- Using IPE version ${IPE_VERSION} compatibility.") #setting installation directory @@ -140,6 +134,11 @@ if ( CGAL_FOUND ) foreach(IPELET ${CGAL_IPELETS}) add_library(CGAL_${IPELET} MODULE ${IPELET}.cpp) + target_include_directories(CGAL_${IPELET} BEFORE PRIVATE ${IPE_INCLUDE_DIR}) + if (WITH_IPE_7) + target_compile_definitions(CGAL_${IPELET} PRIVATE CGAL_USE_IPE_7) + endif() + add_to_cached_list(CGAL_EXECUTABLE_TARGETS CGAL_${IPELET}) target_link_libraries(CGAL_${IPELET} PRIVATE CGAL::CGAL CGAL::Eigen_support ${IPE_LIBRARIES}) if ( IPELET_INSTALL_DIR ) @@ -152,11 +151,19 @@ if ( CGAL_FOUND ) endforeach(IPELET) if(CGAL_Core_FOUND) target_link_libraries(CGAL_cone_spanners PRIVATE CGAL::CGAL_Core CGAL::Eigen_support) + target_include_directories(CGAL_cone_spanners BEFORE PRIVATE ${IPE_INCLUDE_DIR}) + if (WITH_IPE_7) + target_compile_definitions(CGAL_cone_spanners PRIVATE CGAL_USE_IPE_7) + endif() endif() #example in doc not installed add_library(simple_triangulation MODULE simple_triangulation.cpp) add_to_cached_list(CGAL_EXECUTABLE_TARGETS simple_triangulation) target_link_libraries(simple_triangulation CGAL::Eigen_support ${IPE_LIBRARIES}) + target_include_directories(simple_triangulation BEFORE PRIVATE ${IPE_INCLUDE_DIR}) + if (WITH_IPE_7) + target_compile_definitions(simple_triangulation PRIVATE CGAL_USE_IPE_7) + endif() cgal_add_compilation_test(simple_triangulation) else() diff --git a/Hyperbolic_triangulation_2/demo/Hyperbolic_triangulation_2/CMakeLists.txt b/Hyperbolic_triangulation_2/demo/Hyperbolic_triangulation_2/CMakeLists.txt index 61dd2e41455..0f54382257e 100644 --- a/Hyperbolic_triangulation_2/demo/Hyperbolic_triangulation_2/CMakeLists.txt +++ b/Hyperbolic_triangulation_2/demo/Hyperbolic_triangulation_2/CMakeLists.txt @@ -18,7 +18,6 @@ find_package(LEDA QUIET) find_package(Qt5 QUIET COMPONENTS OpenGL Gui) if(CGAL_FOUND AND CGAL_Qt5_FOUND AND Qt5_FOUND AND (CGAL_Core_FOUND OR LEDA_FOUND)) - include_directories( BEFORE ./ ./include ) # ui files, created with Qt Designer qt5_wrap_ui( UIS HDT2.ui ) diff --git a/Installation/cmake/modules/UseCGAL.cmake b/Installation/cmake/modules/UseCGAL.cmake index aa79191bbbd..47e8335c364 100644 --- a/Installation/cmake/modules/UseCGAL.cmake +++ b/Installation/cmake/modules/UseCGAL.cmake @@ -28,7 +28,7 @@ if(NOT USE_CGAL_FILE_INCLUDED) endforeach() - include_directories( "${CMAKE_CURRENT_BINARY_DIR}" ) + target_include_directories(CGAL INTERFACE "${CMAKE_CURRENT_BINARY_DIR}" ) if(TARGET CGAL::CGAL) add_to_list( CGAL_LIBRARIES CGAL::CGAL ) @@ -38,15 +38,7 @@ if(NOT USE_CGAL_FILE_INCLUDED) add_to_list( CGAL_LIBRARIES ${CGAL_LIBRARY} ) endif() - #message (STATUS "LIB: ${CGAL_LIBRARY}") - #message (STATUS "LIBS: ${CGAL_LIBRARIES}") - - include_directories ( ${CGAL_INCLUDE_DIRS}) - include_directories ( SYSTEM ${CGAL_3RD_PARTY_INCLUDE_DIRS} ) - add_definitions ( ${CGAL_3RD_PARTY_DEFINITIONS} ${CGAL_DEFINITIONS} ) - - if(NOT CGAL_NO_BLANKET_LINKING) - link_directories ( ${CGAL_3RD_PARTY_LIBRARIES_DIRS} ) - link_libraries ( ${CGAL_LIBRARIES} ${CGAL_3RD_PARTY_LIBRARIES} ) - endif() + target_include_directories (CGAL INTERFACE ${CGAL_INCLUDE_DIRS}) + target_include_directories (CGAL SYSTEM INTERFACE ${CGAL_3RD_PARTY_INCLUDE_DIRS} ) + target_compile_definitions (CGAL INTERFACE ${CGAL_3RD_PARTY_DEFINITIONS} ${CGAL_DEFINITIONS} ) endif() From 733c487cc20b2a2876d8c63e8faa41c7f0da4070 Mon Sep 17 00:00:00 2001 From: Maxime Gimeno Date: Wed, 7 Oct 2020 15:20:13 +0200 Subject: [PATCH 05/32] Fix file(GLOB...) in Installation/CMakeLists --- .../Developer_manual/Chapter_checks.txt | 4 +- Installation/CMakeLists.txt | 124 +- .../modules/list_of_documented_examples.cmake | 894 +++++++++++++++ .../modules/list_of_documented_headers.cmake | 1002 +++++++++++++++++ .../modules/list_of_whitelisted_headers.cmake | 2 +- 5 files changed, 1973 insertions(+), 53 deletions(-) create mode 100644 Installation/cmake/modules/list_of_documented_examples.cmake create mode 100644 Installation/cmake/modules/list_of_documented_headers.cmake diff --git a/Documentation/doc/Documentation/Developer_manual/Chapter_checks.txt b/Documentation/doc/Documentation/Developer_manual/Chapter_checks.txt index 2646529280a..52083c63a03 100644 --- a/Documentation/doc/Documentation/Developer_manual/Chapter_checks.txt +++ b/Documentation/doc/Documentation/Developer_manual/Chapter_checks.txt @@ -183,9 +183,9 @@ You should place the generated file in the proper directory (and possibly rename it). Then you can use the checks in the following fashion. \code{.cpp} - #include + #include - void optimisation\_foo( int i) + void optimisation_foo( int i) { CGAL_optimisation_precondition_msg( i == 42, "Only 42 allowed!"); // ... diff --git a/Installation/CMakeLists.txt b/Installation/CMakeLists.txt index cc477df0a7e..fa79e141409 100644 --- a/Installation/CMakeLists.txt +++ b/Installation/CMakeLists.txt @@ -8,18 +8,14 @@ if(NOT PROJECT_NAME) project(CGAL CXX C) endif() - -if(POLICY CMP0056) - # https://cmake.org/cmake/help/v3.2/policy/CMP0056.html - # - # Fix a bug: `try_compile` should use `CMAKE_EXE_LINKER_FLAGS`. - # That variable can contain important flags like - # - # -static-libstdc++ -static-libgcc - # - cmake_policy(SET CMP0056 NEW) -endif() - +# https://cmake.org/cmake/help/v3.2/policy/CMP0056.html +# +# Fix a bug: `try_compile` should use `CMAKE_EXE_LINKER_FLAGS`. +# That variable can contain important flags like +# +# -static-libstdc++ -static-libgcc +# +cmake_policy(SET CMP0056 NEW) # Use GNUInstallDirs to get canonical paths include(GNUInstallDirs) @@ -97,10 +93,6 @@ else ( CGAL_BRANCH_BUILD ) # Enable testing with BUILD_TESTING option(BUILD_TESTING "Build the testing tree." OFF) - if(BUILD_TESTING AND NOT POLICY CMP0064) - message(FATAL_ERROR "CGAL support of CTest requires CMake version 3.4 or later. -The variable BUILD_TESTING must be set of OFF.") - endif() if(BUILD_TESTING) enable_testing() endif() @@ -1048,20 +1040,71 @@ You must disable CGAL_ENABLE_CHECK_HEADERS.") WORKING_DIRECTORY "${DOC_DIR}" ) #Get the list of the documented headers + file(GLOB check_example_files RELATIVE "${CMAKE_SOURCE_DIR}/" "${CMAKE_SOURCE_DIR}/*/examples/*/*.cpp") + include(${CMAKE_CURRENT_SOURCE_DIR}/cmake/modules/list_of_documented_examples.cmake) + list(SORT example_files) + list(SORT check_example_files) + foreach( example ${example_files}) + if(NOT ${example} IN_LIST check_example_files) + list(APPEND not_in_list "${example}") + endif() + endforeach() + foreach( example ${check_example_files}) + if(NOT ${example} IN_LIST example_files) + list(APPEND list_in_not "${example}") + endif() + endforeach() + if(not_in_list OR list_in_not) + message("Example files list do not match : ") + if(not_in_list) + message ("${not_in_list} do not exist.") + endif() + if(list_in_not) + message("${list_in_not} are not in ${CMAKE_CURRENT_SOURCE_DIR}/cmake/modules/list_of_documented_examples.cmake") + endif() + message (FATAL_ERROR "") + endif() + - file(GLOB html_files RELATIVE "${DOC_DIR}/doc_output/" "${DOC_DIR}/doc_output/*/*.html") - file(GLOB example_files RELATIVE "${CMAKE_SOURCE_DIR}/" "${CMAKE_SOURCE_DIR}/*/examples/*/*.cpp") find_program(AWK awk) set(awk_arguments [=[{ match($0, /# *include *(<|[<"])(CGAL\/[^>&"]*)([>"]|>)| (CGAL\/[^>&"]*\.h)/,arr); if(arr[2]!="") print arr[2]; if(arr[4]!="") print arr[4] }]=]) message("listing headers from html files") + file(GLOB html_files RELATIVE "${DOC_DIR}/doc_output/" "${DOC_DIR}/doc_output/*/*.html") + include(${CMAKE_CURRENT_SOURCE_DIR}/cmake/modules/list_of_documented_headers.cmake) foreach(f ${html_files}) execute_process(COMMAND "${AWK}" "${awk_arguments}" "${DOC_DIR}/doc_output/${f}" OUTPUT_VARIABLE tmp_list) if (NOT "${tmp_list}" STREQUAL "") string(REPLACE "\n" ";" tmp_list ${tmp_list}) - LIST( APPEND list_of_documented_headers ${tmp_list}) + LIST( APPEND check_list_of_documented_headers ${tmp_list}) endif() endforeach() + #compare the computed list of headers with the stored one to check for changes + list(SORT check_list_of_documented_headers) + list(REMOVE_DUPLICATES check_list_of_documented_headers) + foreach( hdr ${list_of_documented_headers}) + if(NOT hdr IN_LIST check_list_of_documented_headers) + list(APPEND not_in_list "${hdr}") + endif() + endforeach() + foreach( hdr ${check_list_of_documented_headers}) + if(NOT hdr IN_LIST list_of_documented_headers) + list(APPEND list_in_not "${hdr}") + endif() + endforeach() + if(not_in_list OR list_in_not) + message("Header files list do not match : ") + if(not_in_list) + message ("${not_in_list} do not exist.") + endif() + if(list_in_not) + message("${list_in_not} are not in ${CMAKE_CURRENT_SOURCE_DIR}/cmake/modules/list_of_documented_headers.cmake") + endif() + message (FATAL_ERROR "") + endif() + + + message("listing headers from examples files") foreach(f ${example_files}) execute_process(COMMAND "${AWK}" "${awk_arguments}" "${CMAKE_SOURCE_DIR}/${f}" @@ -1076,43 +1119,27 @@ You must disable CGAL_ENABLE_CHECK_HEADERS.") message("sorting:") list(SORT list_of_documented_headers) #string(REPLACE ";" " \n" list_of_documented_headers "${list_of_documented_headers}") - if (NOT "${list_of_documented_headers}" STREQUAL "") - set(has_list_of_documented_headers TRUE) - else() - set(has_list_of_documented_headers FALSE) - endif() include(${CMAKE_CURRENT_SOURCE_DIR}/cmake/modules/list_of_whitelisted_headers.cmake OPTIONAL RESULT_VARIABLE has_list_of_whitelisted_headers) message("list_of_whitelisted_headers: ${list_of_whitelisted_headers}") ## Loop on package and headers set(check_pkg_target_list) - if(POLICY CMP0057) - cmake_policy(SET CMP0057 NEW) - endif() + cmake_policy(SET CMP0057 NEW) #get build dir for removal from deps get_filename_component(BUILD_DIR ${CMAKE_BINARY_DIR} NAME) foreach (package ${CGAL_CONFIGURED_PACKAGES_NAMES}) if(EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/../${package}/include) set(check_pkg_headers_depends "") - if(has_list_of_documented_headers AND POLICY CMP0057) - # Then recurse2 - file(GLOB_RECURSE ${package}_HEADERS - RELATIVE "${CMAKE_CURRENT_SOURCE_DIR}/../${package}/include" - "${CMAKE_CURRENT_SOURCE_DIR}/../${package}/include/CGAL/*.h*") - else() # do not recurse - file(GLOB ${package}_HEADERS - RELATIVE "${CMAKE_CURRENT_SOURCE_DIR}/../${package}/include" - "${CMAKE_CURRENT_SOURCE_DIR}/../${package}/include/CGAL/*.h*") - endif() + # Then recurse2 + file(GLOB_RECURSE ${package}_HEADERS + RELATIVE "${CMAKE_CURRENT_SOURCE_DIR}/../${package}/include" + "${CMAKE_CURRENT_SOURCE_DIR}/../${package}/include/CGAL/*.h*") list(SORT ${package}_HEADERS) foreach(header ${${package}_HEADERS}) set(skip_hdr FALSE) - if(POLICY CMP0057) - if(has_list_of_documented_headers - AND NOT header IN_LIST list_of_documented_headers) -# message(STATUS "Skip non-documented header \"${header}\".") - set(skip_hdr TRUE) - endif() + if(NOT header IN_LIST list_of_documented_headers) +# message(STATUS "Skip non-documented header \"${header}\".") + set(skip_hdr TRUE) endif() if(NOT VTK_FOUND) string(REGEX MATCH ".*vtk.*" is_a_vtk_header ${header}) @@ -1128,12 +1155,10 @@ VTK_FOUND is false.") LEDA_FOUND is false.") set(skip_hdr TRUE) endif() - if(POLICY CMP0057) - if(has_list_of_whitelisted_headers - AND header IN_LIST list_of_whitelisted_headers) - message(STATUS "Skip whitelisted header \"${header}\".") - set(skip_hdr TRUE) - endif() + if(has_list_of_whitelisted_headers + AND header IN_LIST list_of_whitelisted_headers) + message(STATUS "Skip whitelisted header \"${header}\".") + set(skip_hdr TRUE) endif() if(NOT skip_hdr) LIST( APPEND list_of_headers_to_test ${header}) @@ -1201,7 +1226,6 @@ ${CMAKE_CURRENT_SOURCE_DIR}/../${package}/include/${header}" list(REMOVE_DUPLICATES packages_deps) endif() endforeach() # loop on packages - #Now check that a cpp file including all documented headers compiles file(WRITE ${CGAL_BINARY_DIR}/test_headers.cpp "#define BOOST_PARAMETER_MAX_ARITY 12 \n") foreach(header ${list_of_headers_to_test}) diff --git a/Installation/cmake/modules/list_of_documented_examples.cmake b/Installation/cmake/modules/list_of_documented_examples.cmake new file mode 100644 index 00000000000..c7b90cbc3cf --- /dev/null +++ b/Installation/cmake/modules/list_of_documented_examples.cmake @@ -0,0 +1,894 @@ +set(list_of_examples_txt [=[ + AABB_tree/examples/AABB_tree/AABB_cached_bbox_example.cpp + AABB_tree/examples/AABB_tree/AABB_custom_example.cpp + AABB_tree/examples/AABB_tree/AABB_custom_indexed_triangle_set_array_example.cpp + AABB_tree/examples/AABB_tree/AABB_custom_indexed_triangle_set_example.cpp + AABB_tree/examples/AABB_tree/AABB_custom_triangle_soup_example.cpp + AABB_tree/examples/AABB_tree/AABB_face_graph_triangle_example.cpp + AABB_tree/examples/AABB_tree/AABB_halfedge_graph_edge_example.cpp + AABB_tree/examples/AABB_tree/AABB_insertion_example.cpp + AABB_tree/examples/AABB_tree/AABB_polyhedron_edge_example.cpp + AABB_tree/examples/AABB_tree/AABB_polyhedron_facet_distance_example.cpp + AABB_tree/examples/AABB_tree/AABB_polyhedron_facet_intersection_example.cpp + AABB_tree/examples/AABB_tree/AABB_ray_shooting_example.cpp + AABB_tree/examples/AABB_tree/AABB_segment_3_example.cpp + AABB_tree/examples/AABB_tree/AABB_triangle_3_example.cpp + Advancing_front_surface_reconstruction/examples/Advancing_front_surface_reconstruction/boundaries.cpp + Advancing_front_surface_reconstruction/examples/Advancing_front_surface_reconstruction/reconstruction_class.cpp + Advancing_front_surface_reconstruction/examples/Advancing_front_surface_reconstruction/reconstruction_fct.cpp + Advancing_front_surface_reconstruction/examples/Advancing_front_surface_reconstruction/reconstruction_structured.cpp + Advancing_front_surface_reconstruction/examples/Advancing_front_surface_reconstruction/reconstruction_surface_mesh.cpp + Algebraic_foundations/examples/Algebraic_foundations/algebraic_structure_dispatch.cpp + Algebraic_foundations/examples/Algebraic_foundations/fraction_traits.cpp + Algebraic_foundations/examples/Algebraic_foundations/implicit_interoperable_dispatch.cpp + Algebraic_foundations/examples/Algebraic_foundations/integralize.cpp + Algebraic_foundations/examples/Algebraic_foundations/interoperable.cpp + Algebraic_kernel_d/examples/Algebraic_kernel_d/Compare_1.cpp + Algebraic_kernel_d/examples/Algebraic_kernel_d/Construct_algebraic_real_1.cpp + Algebraic_kernel_d/examples/Algebraic_kernel_d/Isolate_1.cpp + Algebraic_kernel_d/examples/Algebraic_kernel_d/Sign_at_1.cpp + Algebraic_kernel_d/examples/Algebraic_kernel_d/Solve_1.cpp + Alpha_shapes_2/examples/Alpha_shapes_2/ex_alpha_projection_traits.cpp + Alpha_shapes_2/examples/Alpha_shapes_2/ex_alpha_shapes_2.cpp + Alpha_shapes_2/examples/Alpha_shapes_2/ex_periodic_alpha_shapes_2.cpp + Alpha_shapes_2/examples/Alpha_shapes_2/ex_weighted_alpha_shapes_2.cpp + Alpha_shapes_3/examples/Alpha_shapes_3/ex_alpha_shapes_3.cpp + Alpha_shapes_3/examples/Alpha_shapes_3/ex_alpha_shapes_exact_alpha.cpp + Alpha_shapes_3/examples/Alpha_shapes_3/ex_alpha_shapes_with_fast_location_3.cpp + Alpha_shapes_3/examples/Alpha_shapes_3/ex_fixed_weighted_alpha_shapes_3.cpp + Alpha_shapes_3/examples/Alpha_shapes_3/ex_periodic_alpha_shapes_3.cpp + Alpha_shapes_3/examples/Alpha_shapes_3/ex_weighted_alpha_shapes_3.cpp + Alpha_shapes_3/examples/Alpha_shapes_3/ex_weighted_periodic_alpha_shapes_3.cpp + Alpha_shapes_3/examples/Alpha_shapes_3/visible_alpha_shape_facets_to_OFF.cpp + Apollonius_graph_2/examples/Apollonius_graph_2/ag2_exact_traits.cpp + Apollonius_graph_2/examples/Apollonius_graph_2/ag2_exact_traits_sqrt.cpp + Apollonius_graph_2/examples/Apollonius_graph_2/ag2_filtered_traits_no_hidden.cpp + Apollonius_graph_2/examples/Apollonius_graph_2/ag2_hierarchy.cpp + Arrangement_on_surface_2/examples/Arrangement_on_surface_2/Bezier_curves.cpp + Arrangement_on_surface_2/examples/Arrangement_on_surface_2/aggregated_insertion.cpp + Arrangement_on_surface_2/examples/Arrangement_on_surface_2/algebraic_curves.cpp + Arrangement_on_surface_2/examples/Arrangement_on_surface_2/algebraic_segments.cpp + Arrangement_on_surface_2/examples/Arrangement_on_surface_2/batched_point_location.cpp + Arrangement_on_surface_2/examples/Arrangement_on_surface_2/bgl_dual_adapter.cpp + Arrangement_on_surface_2/examples/Arrangement_on_surface_2/bgl_primal_adapter.cpp + Arrangement_on_surface_2/examples/Arrangement_on_surface_2/bounded_planar_vertical_decomposition.cpp + Arrangement_on_surface_2/examples/Arrangement_on_surface_2/circles.cpp + Arrangement_on_surface_2/examples/Arrangement_on_surface_2/circular_arcs.cpp + Arrangement_on_surface_2/examples/Arrangement_on_surface_2/circular_line_arcs.cpp + Arrangement_on_surface_2/examples/Arrangement_on_surface_2/conic_multiplicities.cpp + Arrangement_on_surface_2/examples/Arrangement_on_surface_2/conics.cpp + Arrangement_on_surface_2/examples/Arrangement_on_surface_2/consolidated_curve_data.cpp + Arrangement_on_surface_2/examples/Arrangement_on_surface_2/curve_history.cpp + Arrangement_on_surface_2/examples/Arrangement_on_surface_2/dcel_extension.cpp + Arrangement_on_surface_2/examples/Arrangement_on_surface_2/dcel_extension_io.cpp + Arrangement_on_surface_2/examples/Arrangement_on_surface_2/dual_lines.cpp + Arrangement_on_surface_2/examples/Arrangement_on_surface_2/dual_with_data.cpp + Arrangement_on_surface_2/examples/Arrangement_on_surface_2/edge_insertion.cpp + Arrangement_on_surface_2/examples/Arrangement_on_surface_2/edge_manipulation.cpp + Arrangement_on_surface_2/examples/Arrangement_on_surface_2/edge_manipulation_curve_history.cpp + Arrangement_on_surface_2/examples/Arrangement_on_surface_2/face_extension.cpp + Arrangement_on_surface_2/examples/Arrangement_on_surface_2/face_extension_overlay.cpp + Arrangement_on_surface_2/examples/Arrangement_on_surface_2/generic_curve_data.cpp + Arrangement_on_surface_2/examples/Arrangement_on_surface_2/global_insertion.cpp + Arrangement_on_surface_2/examples/Arrangement_on_surface_2/global_removal.cpp + Arrangement_on_surface_2/examples/Arrangement_on_surface_2/incremental_insertion.cpp + Arrangement_on_surface_2/examples/Arrangement_on_surface_2/io.cpp + Arrangement_on_surface_2/examples/Arrangement_on_surface_2/io_curve_history.cpp + Arrangement_on_surface_2/examples/Arrangement_on_surface_2/io_unbounded.cpp + Arrangement_on_surface_2/examples/Arrangement_on_surface_2/isolated_vertices.cpp + Arrangement_on_surface_2/examples/Arrangement_on_surface_2/observer.cpp + Arrangement_on_surface_2/examples/Arrangement_on_surface_2/overlay.cpp + Arrangement_on_surface_2/examples/Arrangement_on_surface_2/overlay_unbounded.cpp + Arrangement_on_surface_2/examples/Arrangement_on_surface_2/point_location_example.cpp + Arrangement_on_surface_2/examples/Arrangement_on_surface_2/polycurve_bezier.cpp + Arrangement_on_surface_2/examples/Arrangement_on_surface_2/polycurve_circular_arc.cpp + Arrangement_on_surface_2/examples/Arrangement_on_surface_2/polycurve_conic.cpp + Arrangement_on_surface_2/examples/Arrangement_on_surface_2/polycurve_geodesic.cpp + Arrangement_on_surface_2/examples/Arrangement_on_surface_2/polycurves_basic.cpp + Arrangement_on_surface_2/examples/Arrangement_on_surface_2/polylines.cpp + Arrangement_on_surface_2/examples/Arrangement_on_surface_2/predefined_kernel.cpp + Arrangement_on_surface_2/examples/Arrangement_on_surface_2/predefined_kernel_non_intersecting.cpp + Arrangement_on_surface_2/examples/Arrangement_on_surface_2/rational_functions.cpp + Arrangement_on_surface_2/examples/Arrangement_on_surface_2/rational_functions_rational_coefficients.cpp + Arrangement_on_surface_2/examples/Arrangement_on_surface_2/special_edge_insertion.cpp + Arrangement_on_surface_2/examples/Arrangement_on_surface_2/spherical_insert.cpp + Arrangement_on_surface_2/examples/Arrangement_on_surface_2/tracing_counting.cpp + Arrangement_on_surface_2/examples/Arrangement_on_surface_2/unb_planar_vertical_decomposition.cpp + Arrangement_on_surface_2/examples/Arrangement_on_surface_2/unbounded_non_intersecting.cpp + Arrangement_on_surface_2/examples/Arrangement_on_surface_2/unbounded_rational_functions.cpp + Arrangement_on_surface_2/examples/Arrangement_on_surface_2/vertical_ray_shooting.cpp + BGL/examples/BGL_LCC/copy_lcc.cpp + BGL/examples/BGL_LCC/distance_lcc.cpp + BGL/examples/BGL_LCC/incident_vertices_lcc.cpp + BGL/examples/BGL_LCC/kruskal_lcc.cpp + BGL/examples/BGL_LCC/normals_lcc.cpp + BGL/examples/BGL_LCC/range_lcc.cpp + BGL/examples/BGL_LCC/transform_iterator_lcc.cpp + BGL/examples/BGL_OpenMesh/TriMesh.cpp + BGL/examples/BGL_arrangement_2/arrangement_dual.cpp + BGL/examples/BGL_arrangement_2/primal.cpp + BGL/examples/BGL_graphcut/alpha_expansion_example.cpp + BGL/examples/BGL_graphcut/face_selection_borders_regularization_example.cpp + BGL/examples/BGL_polyhedron_3/copy_polyhedron.cpp + BGL/examples/BGL_polyhedron_3/distance.cpp + BGL/examples/BGL_polyhedron_3/incident_vertices.cpp + BGL/examples/BGL_polyhedron_3/kruskal.cpp + BGL/examples/BGL_polyhedron_3/kruskal_with_stored_id.cpp + BGL/examples/BGL_polyhedron_3/normals.cpp + BGL/examples/BGL_polyhedron_3/polyhedron_partition.cpp + BGL/examples/BGL_polyhedron_3/range.cpp + BGL/examples/BGL_polyhedron_3/transform_iterator.cpp + BGL/examples/BGL_surface_mesh/connected_components.cpp + BGL/examples/BGL_surface_mesh/gwdwg.cpp + BGL/examples/BGL_surface_mesh/prim.cpp + BGL/examples/BGL_surface_mesh/seam_mesh.cpp + BGL/examples/BGL_surface_mesh/surface_mesh_dual.cpp + BGL/examples/BGL_surface_mesh/surface_mesh_partition.cpp + BGL/examples/BGL_surface_mesh/write_inp.cpp + BGL/examples/BGL_triangulation_2/dijkstra.cpp + BGL/examples/BGL_triangulation_2/dijkstra_with_internal_properties.cpp + BGL/examples/BGL_triangulation_2/emst.cpp + BGL/examples/BGL_triangulation_2/emst_cdt_plus_hierarchy.cpp + BGL/examples/BGL_triangulation_2/emst_regular.cpp + BGL/examples/BGL_triangulation_2/face_graph.cpp + Barycentric_coordinates_2/examples/Barycentric_coordinates_2/Discrete_harmonic_coordinates_example.cpp + Barycentric_coordinates_2/examples/Barycentric_coordinates_2/Mean_value_coordinates_example.cpp + Barycentric_coordinates_2/examples/Barycentric_coordinates_2/Segment_coordinates_example.cpp + Barycentric_coordinates_2/examples/Barycentric_coordinates_2/Terrain_height_modeling.cpp + Barycentric_coordinates_2/examples/Barycentric_coordinates_2/Triangle_coordinates_example.cpp + Barycentric_coordinates_2/examples/Barycentric_coordinates_2/Triangle_coordinates_speed_test.cpp + Barycentric_coordinates_2/examples/Barycentric_coordinates_2/Wachspress_coordinates_example.cpp + Boolean_set_operations_2/examples/Boolean_set_operations_2/bezier_traits_adapter.cpp + Boolean_set_operations_2/examples/Boolean_set_operations_2/bezier_traits_adapter2.cpp + Boolean_set_operations_2/examples/Boolean_set_operations_2/circle_segment.cpp + Boolean_set_operations_2/examples/Boolean_set_operations_2/conic_traits_adapter.cpp + Boolean_set_operations_2/examples/Boolean_set_operations_2/connect_polygon.cpp + Boolean_set_operations_2/examples/Boolean_set_operations_2/do_intersect.cpp + Boolean_set_operations_2/examples/Boolean_set_operations_2/dxf_union.cpp + Boolean_set_operations_2/examples/Boolean_set_operations_2/sequence.cpp + Boolean_set_operations_2/examples/Boolean_set_operations_2/set_union.cpp + Boolean_set_operations_2/examples/Boolean_set_operations_2/simple_join_intersect.cpp + Boolean_set_operations_2/examples/Boolean_set_operations_2/symmetric_difference.cpp + Bounding_volumes/examples/Approximate_min_ellipsoid_d/ellipsoid.cpp + Bounding_volumes/examples/Approximate_min_ellipsoid_d/ellipsoid_for_maple.cpp + Bounding_volumes/examples/Min_annulus_d/min_annulus_d.cpp + Bounding_volumes/examples/Min_annulus_d/min_annulus_d_fast_exact.cpp + Bounding_volumes/examples/Min_circle_2/min_circle_2.cpp + Bounding_volumes/examples/Min_circle_2/min_circle_homogeneous_2.cpp + Bounding_volumes/examples/Min_ellipse_2/min_ellipse_2.cpp + Bounding_volumes/examples/Min_quadrilateral_2/minimum_enclosing_parallelogram_2.cpp + Bounding_volumes/examples/Min_quadrilateral_2/minimum_enclosing_rectangle_2.cpp + Bounding_volumes/examples/Min_quadrilateral_2/minimum_enclosing_strip_2.cpp + Bounding_volumes/examples/Min_sphere_d/min_sphere_3.cpp + Bounding_volumes/examples/Min_sphere_d/min_sphere_homogeneous_3.cpp + Bounding_volumes/examples/Min_sphere_of_spheres_d/benchmark.cpp + Bounding_volumes/examples/Min_sphere_of_spheres_d/min_sphere_of_spheres_d_2.cpp + Bounding_volumes/examples/Min_sphere_of_spheres_d/min_sphere_of_spheres_d_3.cpp + Bounding_volumes/examples/Min_sphere_of_spheres_d/min_sphere_of_spheres_d_d.cpp + Bounding_volumes/examples/Rectangular_p_center_2/rectangular_p_center_2.cpp + Box_intersection_d/examples/Box_intersection_d/box_d_do_intersect_polylines.cpp + Box_intersection_d/examples/Box_intersection_d/box_grid.cpp + Box_intersection_d/examples/Box_intersection_d/custom_box_grid.cpp + Box_intersection_d/examples/Box_intersection_d/minimal.cpp + Box_intersection_d/examples/Box_intersection_d/minimal_self.cpp + Box_intersection_d/examples/Box_intersection_d/proximity_custom_box_traits.cpp + Box_intersection_d/examples/Box_intersection_d/triangle_self_intersect.cpp + Box_intersection_d/examples/Box_intersection_d/triangle_self_intersect_pointers.cpp + CGAL_Core/examples/Core/delaunay.cpp + CGAL_ImageIO/examples/CGALimageIO/convert_raw_image_to_inr.cpp + CGAL_ImageIO/examples/CGALimageIO/extract_a_sub_image.cpp + CGAL_ImageIO/examples/CGALimageIO/test_imageio.cpp + CGAL_ipelets/examples/CGAL_ipelets/test_grabbers.cpp + Circular_kernel_2/examples/Circular_kernel_2/functor_has_on_2.cpp + Circular_kernel_2/examples/Circular_kernel_2/intersecting_arcs.cpp + Circular_kernel_3/examples/Circular_kernel_3/functor_compare_theta_3.cpp + Circular_kernel_3/examples/Circular_kernel_3/functor_has_on_3.cpp + Circular_kernel_3/examples/Circular_kernel_3/intersecting_spheres.cpp + Circulator/examples/Circulator/circulator_prog1.cpp + Circulator/examples/Circulator/circulator_prog2.cpp + Circulator/examples/Circulator/circulator_prog3.cpp + Classification/examples/Classification/example_classification.cpp + Classification/examples/Classification/example_cluster_classification.cpp + Classification/examples/Classification/example_ethz_random_forest.cpp + Classification/examples/Classification/example_feature.cpp + Classification/examples/Classification/example_generation_and_training.cpp + Classification/examples/Classification/example_mesh_classification.cpp + Classification/examples/Classification/example_opencv_random_forest.cpp + Classification/examples/Classification/example_tensorflow_neural_network.cpp + Classification/examples/Classification/gis_tutorial_example.cpp + Combinatorial_map/examples/Combinatorial_map/map_3_dynamic_onmerge.cpp + Combinatorial_map/examples/Combinatorial_map/map_3_foreach.cpp + Combinatorial_map/examples/Combinatorial_map/map_3_marks.cpp + Combinatorial_map/examples/Combinatorial_map/map_3_operations.cpp + Combinatorial_map/examples/Combinatorial_map/map_3_simple_example.cpp + Combinatorial_map/examples/Combinatorial_map/map_3_with_colored_facets.cpp + Combinatorial_map/examples/Combinatorial_map/map_4_simple_example.cpp + Cone_spanners_2/examples/Cone_spanners_2/compute_cones.cpp + Cone_spanners_2/examples/Cone_spanners_2/dijkstra_theta.cpp + Cone_spanners_2/examples/Cone_spanners_2/theta_io.cpp + Convex_decomposition_3/examples/Convex_decomposition_3/list_of_convex_parts.cpp + Convex_hull_2/examples/Convex_hull_2/array_convex_hull_2.cpp + Convex_hull_2/examples/Convex_hull_2/ch_from_cin_to_cout.cpp + Convex_hull_2/examples/Convex_hull_2/ch_graham_anderson.cpp + Convex_hull_2/examples/Convex_hull_2/ch_timing.cpp + Convex_hull_2/examples/Convex_hull_2/convex_hull_indices_2.cpp + Convex_hull_2/examples/Convex_hull_2/convex_hull_yz.cpp + Convex_hull_2/examples/Convex_hull_2/iostream_convex_hull_2.cpp + Convex_hull_2/examples/Convex_hull_2/vector_convex_hull_2.cpp + Convex_hull_3/examples/Convex_hull_3/dynamic_hull_3.cpp + Convex_hull_3/examples/Convex_hull_3/dynamic_hull_LCC_3.cpp + Convex_hull_3/examples/Convex_hull_3/dynamic_hull_OM_3.cpp + Convex_hull_3/examples/Convex_hull_3/dynamic_hull_SM_3.cpp + Convex_hull_3/examples/Convex_hull_3/extreme_indices_3.cpp + Convex_hull_3/examples/Convex_hull_3/extreme_points_3_sm.cpp + Convex_hull_3/examples/Convex_hull_3/graph_hull_3.cpp + Convex_hull_3/examples/Convex_hull_3/halfspace_intersection_3.cpp + Convex_hull_3/examples/Convex_hull_3/lloyd_algorithm.cpp + Convex_hull_3/examples/Convex_hull_3/quickhull_3.cpp + Convex_hull_3/examples/Convex_hull_3/quickhull_OM_3.cpp + Convex_hull_3/examples/Convex_hull_3/quickhull_any_dim_3.cpp + Envelope_2/examples/Envelope_2/convex_hull_2.cpp + Envelope_2/examples/Envelope_2/envelope_circles.cpp + Envelope_2/examples/Envelope_2/envelope_segments.cpp + Envelope_3/examples/Envelope_3/envelope_planes.cpp + Envelope_3/examples/Envelope_3/envelope_spheres.cpp + Envelope_3/examples/Envelope_3/envelope_triangles.cpp + Filtered_kernel/examples/Filtered_kernel/Filtered_predicate.cpp + Generalized_map/examples/Generalized_map/comparison_gmap_cmap.cpp + Generalized_map/examples/Generalized_map/gmap_2_moebius.cpp + Generalized_map/examples/Generalized_map/gmap_3_dynamic_onmerge.cpp + Generalized_map/examples/Generalized_map/gmap_3_marks.cpp + Generalized_map/examples/Generalized_map/gmap_3_operations.cpp + Generalized_map/examples/Generalized_map/gmap_3_simple_example.cpp + Generalized_map/examples/Generalized_map/gmap_3_with_colored_facets.cpp + Generalized_map/examples/Generalized_map/gmap_4_simple_example.cpp + Generator/examples/Generator/ball_d.cpp + Generator/examples/Generator/combination_enumerator.cpp + Generator/examples/Generator/cube_d.cpp + Generator/examples/Generator/grid_d.cpp + Generator/examples/Generator/name_pairs.cpp + Generator/examples/Generator/random_convex_hull_2.cpp + Generator/examples/Generator/random_convex_set.cpp + Generator/examples/Generator/random_degenerate_point_set.cpp + Generator/examples/Generator/random_grid.cpp + Generator/examples/Generator/random_points_in_tetrahedral_mesh_3.cpp + Generator/examples/Generator/random_points_in_triangles_2.cpp + Generator/examples/Generator/random_points_in_triangles_3.cpp + Generator/examples/Generator/random_points_on_tetrahedral_mesh_3.cpp + Generator/examples/Generator/random_points_on_triangle_mesh_2.cpp + Generator/examples/Generator/random_points_on_triangle_mesh_3.cpp + Generator/examples/Generator/random_points_tetrahedron_and_triangle_3.cpp + Generator/examples/Generator/random_points_triangle_2.cpp + Generator/examples/Generator/random_polygon.cpp + Generator/examples/Generator/random_polygon2.cpp + Generator/examples/Generator/random_segments1.cpp + Generator/examples/Generator/random_segments2.cpp + Generator/examples/Generator/sphere_d.cpp + HalfedgeDS/examples/HalfedgeDS/hds_prog_color.cpp + HalfedgeDS/examples/HalfedgeDS/hds_prog_compact.cpp + HalfedgeDS/examples/HalfedgeDS/hds_prog_compact2.cpp + HalfedgeDS/examples/HalfedgeDS/hds_prog_default.cpp + HalfedgeDS/examples/HalfedgeDS/hds_prog_edge_iterator.cpp + HalfedgeDS/examples/HalfedgeDS/hds_prog_graph.cpp + HalfedgeDS/examples/HalfedgeDS/hds_prog_graph2.cpp + HalfedgeDS/examples/HalfedgeDS/hds_prog_halfedge_iterator.cpp + HalfedgeDS/examples/HalfedgeDS/hds_prog_vector.cpp + Heat_method_3/examples/Heat_method_3/heat_method.cpp + Heat_method_3/examples/Heat_method_3/heat_method_polyhedron.cpp + Heat_method_3/examples/Heat_method_3/heat_method_surface_mesh.cpp + Heat_method_3/examples/Heat_method_3/heat_method_surface_mesh_direct.cpp + Hyperbolic_triangulation_2/examples/Hyperbolic_triangulation_2/ht2_example.cpp + Hyperbolic_triangulation_2/examples/Hyperbolic_triangulation_2/ht2_example_color.cpp + Inscribed_areas/examples/Inscribed_areas/extremal_polygon_2_area.cpp + Inscribed_areas/examples/Inscribed_areas/extremal_polygon_2_perimeter.cpp + Inscribed_areas/examples/Inscribed_areas/largest_empty_rectangle.cpp + Interpolation/examples/Interpolation/interpolation_2.cpp + Interpolation/examples/Interpolation/interpolation_vertex_with_info_2.cpp + Interpolation/examples/Interpolation/linear_interpolation_2.cpp + Interpolation/examples/Interpolation/linear_interpolation_of_vector_3.cpp + Interpolation/examples/Interpolation/nn_coordinates_2.cpp + Interpolation/examples/Interpolation/nn_coordinates_3.cpp + Interpolation/examples/Interpolation/nn_coordinates_with_info_2.cpp + Interpolation/examples/Interpolation/rn_coordinates_2.cpp + Interpolation/examples/Interpolation/sibson_interpolation_2.cpp + Interpolation/examples/Interpolation/sibson_interpolation_rn_2.cpp + Interpolation/examples/Interpolation/sibson_interpolation_rn_vertex_with_info_2.cpp + Interpolation/examples/Interpolation/sibson_interpolation_vertex_with_info_2.cpp + Interpolation/examples/Interpolation/surface_neighbor_coordinates_3.cpp + Interval_skip_list/examples/Interval_skip_list/intervals.cpp + Interval_skip_list/examples/Interval_skip_list/isl_terrain.cpp + Jet_fitting_3/examples/Jet_fitting_3/Mesh_estimation.cpp + Jet_fitting_3/examples/Jet_fitting_3/Single_estimation.cpp + Kernel_23/examples/Kernel_23/MyKernel.cpp + Kernel_23/examples/Kernel_23/cartesian_converter.cpp + Kernel_23/examples/Kernel_23/exact.cpp + Kernel_23/examples/Kernel_23/intersection_get.cpp + Kernel_23/examples/Kernel_23/intersection_visitor.cpp + Kernel_23/examples/Kernel_23/intersections.cpp + Kernel_23/examples/Kernel_23/points_and_segment.cpp + Kernel_23/examples/Kernel_23/surprising.cpp + Linear_cell_complex/examples/Linear_cell_complex/draw_linear_cell_complex.cpp + Linear_cell_complex/examples/Linear_cell_complex/gmap_linear_cell_complex_3.cpp + Linear_cell_complex/examples/Linear_cell_complex/linear_cell_complex_3.cpp + Linear_cell_complex/examples/Linear_cell_complex/linear_cell_complex_3_attributes_management.cpp + Linear_cell_complex/examples/Linear_cell_complex/linear_cell_complex_3_operations.cpp + Linear_cell_complex/examples/Linear_cell_complex/linear_cell_complex_3_with_colored_vertices.cpp + Linear_cell_complex/examples/Linear_cell_complex/linear_cell_complex_3_with_mypoint.cpp + Linear_cell_complex/examples/Linear_cell_complex/linear_cell_complex_4.cpp + Linear_cell_complex/examples/Linear_cell_complex/plane_graph_to_lcc_2.cpp + Linear_cell_complex/examples/Linear_cell_complex/voronoi_2.cpp + Linear_cell_complex/examples/Linear_cell_complex/voronoi_3.cpp + Matrix_search/examples/Matrix_search/sorted_matrix_search.cpp + Mesh_2/examples/Mesh_2/conforming.cpp + Mesh_2/examples/Mesh_2/mesh_class.cpp + Mesh_2/examples/Mesh_2/mesh_global.cpp + Mesh_2/examples/Mesh_2/mesh_optimization.cpp + Mesh_2/examples/Mesh_2/mesh_with_seeds.cpp + Mesh_3/examples/Mesh_3/implicit_functions.cpp + Mesh_3/examples/Mesh_3/mesh_3D_gray_image.cpp + Mesh_3/examples/Mesh_3/mesh_3D_gray_image_multiple_values.cpp + Mesh_3/examples/Mesh_3/mesh_3D_gray_vtk_image.cpp + Mesh_3/examples/Mesh_3/mesh_3D_image.cpp + Mesh_3/examples/Mesh_3/mesh_3D_image_variable_size.cpp + Mesh_3/examples/Mesh_3/mesh_3D_image_with_custom_initialization.cpp + Mesh_3/examples/Mesh_3/mesh_3D_image_with_features.cpp + Mesh_3/examples/Mesh_3/mesh_cubes_intersection.cpp + Mesh_3/examples/Mesh_3/mesh_cubes_intersection_with_features.cpp + Mesh_3/examples/Mesh_3/mesh_hybrid_mesh_domain.cpp + Mesh_3/examples/Mesh_3/mesh_implicit_domains.cpp + Mesh_3/examples/Mesh_3/mesh_implicit_domains_2.cpp + Mesh_3/examples/Mesh_3/mesh_implicit_ellipsoid.cpp + Mesh_3/examples/Mesh_3/mesh_implicit_sphere.cpp + Mesh_3/examples/Mesh_3/mesh_implicit_sphere_variable_size.cpp + Mesh_3/examples/Mesh_3/mesh_optimization_example.cpp + Mesh_3/examples/Mesh_3/mesh_optimization_lloyd_example.cpp + Mesh_3/examples/Mesh_3/mesh_polyhedral_complex.cpp + Mesh_3/examples/Mesh_3/mesh_polyhedral_complex_sm.cpp + Mesh_3/examples/Mesh_3/mesh_polyhedral_domain.cpp + Mesh_3/examples/Mesh_3/mesh_polyhedral_domain_sm.cpp + Mesh_3/examples/Mesh_3/mesh_polyhedral_domain_with_features.cpp + Mesh_3/examples/Mesh_3/mesh_polyhedral_domain_with_features_sm.cpp + Mesh_3/examples/Mesh_3/mesh_polyhedral_domain_with_lipschitz_sizing.cpp + Mesh_3/examples/Mesh_3/mesh_polyhedral_domain_with_surface_inside.cpp + Mesh_3/examples/Mesh_3/mesh_two_implicit_spheres_with_balls.cpp + Mesh_3/examples/Mesh_3/remesh_polyhedral_surface.cpp + Mesh_3/examples/Mesh_3/remesh_polyhedral_surface_sm.cpp + Minkowski_sum_2/examples/Minkowski_sum_2/approx_inset.cpp + Minkowski_sum_2/examples/Minkowski_sum_2/approx_offset.cpp + Minkowski_sum_2/examples/Minkowski_sum_2/exact_inset.cpp + Minkowski_sum_2/examples/Minkowski_sum_2/exact_offset.cpp + Minkowski_sum_2/examples/Minkowski_sum_2/sum_by_decomposition.cpp + Minkowski_sum_2/examples/Minkowski_sum_2/sum_of_holes.cpp + Minkowski_sum_2/examples/Minkowski_sum_2/sum_triangle_square.cpp + Minkowski_sum_2/examples/Minkowski_sum_2/sum_with_holes.cpp + Minkowski_sum_3/examples/Minkowski_sum_3/cube_offset.cpp + Minkowski_sum_3/examples/Minkowski_sum_3/glide.cpp + Modular_arithmetic/examples/Modular_arithmetic/modular_filter.cpp + Nef_2/examples/Nef_2/nef_2_construction.cpp + Nef_2/examples/Nef_2/nef_2_exploration.cpp + Nef_2/examples/Nef_2/nef_2_intersection.cpp + Nef_2/examples/Nef_2/nef_2_polylines.cpp + Nef_3/examples/Nef_3/comparison.cpp + Nef_3/examples/Nef_3/complex_construction.cpp + Nef_3/examples/Nef_3/draw_nef_3.cpp + Nef_3/examples/Nef_3/exploration_SM.cpp + Nef_3/examples/Nef_3/extended_kernel.cpp + Nef_3/examples/Nef_3/handling_double_coordinates.cpp + Nef_3/examples/Nef_3/interface_polyhedron.cpp + Nef_3/examples/Nef_3/nefIO.cpp + Nef_3/examples/Nef_3/nef_3_construction.cpp + Nef_3/examples/Nef_3/nef_3_point_location.cpp + Nef_3/examples/Nef_3/nef_3_simple.cpp + Nef_3/examples/Nef_3/nef_3_to_surface_mesh.cpp + Nef_3/examples/Nef_3/offIO.cpp + Nef_3/examples/Nef_3/point_set_operations.cpp + Nef_3/examples/Nef_3/polyline_construction.cpp + Nef_3/examples/Nef_3/set_operations.cpp + Nef_3/examples/Nef_3/shell_exploration.cpp + Nef_3/examples/Nef_3/surface_mesh_to_nef.cpp + Nef_3/examples/Nef_3/topological_operations.cpp + Nef_3/examples/Nef_3/transformation.cpp + Nef_S2/examples/Nef_S2/nef_s2_construction.cpp + Nef_S2/examples/Nef_S2/nef_s2_exploration.cpp + Nef_S2/examples/Nef_S2/nef_s2_point_location.cpp + Nef_S2/examples/Nef_S2/nef_s2_simple.cpp + Optimal_bounding_box/examples/Optimal_bounding_box/obb_example.cpp + Optimal_bounding_box/examples/Optimal_bounding_box/obb_with_point_maps_example.cpp + Optimal_bounding_box/examples/Optimal_bounding_box/rotated_aabb_tree_example.cpp + Optimal_transportation_reconstruction_2/examples/Optimal_transportation_reconstruction_2/otr2_indexed_output_example.cpp + Optimal_transportation_reconstruction_2/examples/Optimal_transportation_reconstruction_2/otr2_list_output_example.cpp + Optimal_transportation_reconstruction_2/examples/Optimal_transportation_reconstruction_2/otr2_mass_example.cpp + Optimal_transportation_reconstruction_2/examples/Optimal_transportation_reconstruction_2/otr2_simplest_example.cpp + Optimal_transportation_reconstruction_2/examples/Optimal_transportation_reconstruction_2/otr2_simplest_example_with_tolerance.cpp + Partition_2/examples/Partition_2/approx_convex_partition_2.cpp + Partition_2/examples/Partition_2/greene_approx_convex_partition_2.cpp + Partition_2/examples/Partition_2/optimal_convex_partition_2.cpp + Partition_2/examples/Partition_2/y_monotone_partition_2.cpp + Partition_2/examples/Partition_2/y_monotone_partition_indices_2.cpp + Periodic_2_triangulation_2/examples/Periodic_2_triangulation_2/draw_periodic_2_triangulation_2.cpp + Periodic_2_triangulation_2/examples/Periodic_2_triangulation_2/p2t2_adding_handles.cpp + Periodic_2_triangulation_2/examples/Periodic_2_triangulation_2/p2t2_colored_vertices.cpp + Periodic_2_triangulation_2/examples/Periodic_2_triangulation_2/p2t2_covering.cpp + Periodic_2_triangulation_2/examples/Periodic_2_triangulation_2/p2t2_find_conflicts.cpp + Periodic_2_triangulation_2/examples/Periodic_2_triangulation_2/p2t2_geometric_access.cpp + Periodic_2_triangulation_2/examples/Periodic_2_triangulation_2/p2t2_hierarchy.cpp + Periodic_2_triangulation_2/examples/Periodic_2_triangulation_2/p2t2_info_insert_with_pair_iterator_2.cpp + Periodic_2_triangulation_2/examples/Periodic_2_triangulation_2/p2t2_info_insert_with_transform_iterator_2.cpp + Periodic_2_triangulation_2/examples/Periodic_2_triangulation_2/p2t2_info_insert_with_zip_iterator_2.cpp + Periodic_2_triangulation_2/examples/Periodic_2_triangulation_2/p2t2_large_point_set.cpp + Periodic_2_triangulation_2/examples/Periodic_2_triangulation_2/p2t2_simple_example.cpp + Periodic_3_mesh_3/examples/Periodic_3_mesh_3/mesh_implicit_multi_domain.cpp + Periodic_3_mesh_3/examples/Periodic_3_mesh_3/mesh_implicit_shape.cpp + Periodic_3_mesh_3/examples/Periodic_3_mesh_3/mesh_implicit_shape_with_features.cpp + Periodic_3_mesh_3/examples/Periodic_3_mesh_3/mesh_implicit_shape_with_optimizers.cpp + Periodic_3_mesh_3/examples/Periodic_3_mesh_3/mesh_implicit_shape_with_subdomains.cpp + Periodic_3_triangulation_3/examples/Periodic_3_triangulation_3/colored_vertices.cpp + Periodic_3_triangulation_3/examples/Periodic_3_triangulation_3/covering.cpp + Periodic_3_triangulation_3/examples/Periodic_3_triangulation_3/find_conflicts.cpp + Periodic_3_triangulation_3/examples/Periodic_3_triangulation_3/geometric_access.cpp + Periodic_3_triangulation_3/examples/Periodic_3_triangulation_3/large_point_set.cpp + Periodic_3_triangulation_3/examples/Periodic_3_triangulation_3/p3rt3_hidden_points.cpp + Periodic_3_triangulation_3/examples/Periodic_3_triangulation_3/p3rt3_insert_only.cpp + Periodic_3_triangulation_3/examples/Periodic_3_triangulation_3/p3rt3_insert_point_with_bad_weight.cpp + Periodic_3_triangulation_3/examples/Periodic_3_triangulation_3/p3rt3_insert_remove.cpp + Periodic_3_triangulation_3/examples/Periodic_3_triangulation_3/periodic_adding_handles.cpp + Periodic_3_triangulation_3/examples/Periodic_3_triangulation_3/simple_example.cpp + Periodic_3_triangulation_3/examples/Periodic_3_triangulation_3/simple_regular_example.cpp + Periodic_4_hyperbolic_triangulation_2/examples/Periodic_4_hyperbolic_triangulation_2/p4ht2_example_insertion.cpp + Point_set_2/examples/Point_set_2/nearest_neighbor.cpp + Point_set_2/examples/Point_set_2/range_search.cpp + Point_set_3/examples/Point_set_3/draw_point_set_3.cpp + Point_set_3/examples/Point_set_3/point_set.cpp + Point_set_3/examples/Point_set_3/point_set_advanced.cpp + Point_set_3/examples/Point_set_3/point_set_algo.cpp + Point_set_3/examples/Point_set_3/point_set_property.cpp + Point_set_3/examples/Point_set_3/point_set_read_ply.cpp + Point_set_3/examples/Point_set_3/point_set_read_xyz.cpp + Point_set_3/examples/build-Point_set_3-GCC-Debug/qrc_CGAL.cpp + Point_set_3/examples/build-Point_set_3-GCC-Debug/qrc_File.cpp + Point_set_3/examples/build-Point_set_3-GCC-Debug/qrc_Input.cpp + Point_set_3/examples/build-Point_set_3-GCC-Debug/qrc_Triangulation_2.cpp + Point_set_processing_3/examples/Point_set_processing_3/average_spacing_example.cpp + Point_set_processing_3/examples/Point_set_processing_3/bilateral_smooth_point_set_example.cpp + Point_set_processing_3/examples/Point_set_processing_3/callback_example.cpp + Point_set_processing_3/examples/Point_set_processing_3/clustering_example.cpp + Point_set_processing_3/examples/Point_set_processing_3/edge_aware_upsample_point_set_example.cpp + Point_set_processing_3/examples/Point_set_processing_3/edges_example.cpp + Point_set_processing_3/examples/Point_set_processing_3/grid_simplification_example.cpp + Point_set_processing_3/examples/Point_set_processing_3/grid_simplify_indices.cpp + Point_set_processing_3/examples/Point_set_processing_3/hierarchy_simplification_example.cpp + Point_set_processing_3/examples/Point_set_processing_3/jet_smoothing_example.cpp + Point_set_processing_3/examples/Point_set_processing_3/normal_estimation.cpp + Point_set_processing_3/examples/Point_set_processing_3/normals_example.cpp + Point_set_processing_3/examples/Point_set_processing_3/property_map.cpp + Point_set_processing_3/examples/Point_set_processing_3/random_simplification_example.cpp + Point_set_processing_3/examples/Point_set_processing_3/read_las_example.cpp + Point_set_processing_3/examples/Point_set_processing_3/read_ply_points_with_colors_example.cpp + Point_set_processing_3/examples/Point_set_processing_3/read_write_xyz_point_set_example.cpp + Point_set_processing_3/examples/Point_set_processing_3/registration_with_OpenGR.cpp + Point_set_processing_3/examples/Point_set_processing_3/registration_with_opengr_pointmatcher_pipeline.cpp + Point_set_processing_3/examples/Point_set_processing_3/registration_with_pointmatcher.cpp + Point_set_processing_3/examples/Point_set_processing_3/remove_outliers_example.cpp + Point_set_processing_3/examples/Point_set_processing_3/scale_estimation_2d_example.cpp + Point_set_processing_3/examples/Point_set_processing_3/scale_estimation_example.cpp + Point_set_processing_3/examples/Point_set_processing_3/structuring_example.cpp + Point_set_processing_3/examples/Point_set_processing_3/wlop_simplify_and_regularize_point_set_example.cpp + Point_set_processing_3/examples/Point_set_processing_3/write_ply_points_example.cpp + Poisson_surface_reconstruction_3/examples/Poisson_surface_reconstruction_3/poisson_reconstruction.cpp + Poisson_surface_reconstruction_3/examples/Poisson_surface_reconstruction_3/poisson_reconstruction_example.cpp + Poisson_surface_reconstruction_3/examples/Poisson_surface_reconstruction_3/poisson_reconstruction_function.cpp + Poisson_surface_reconstruction_3/examples/Poisson_surface_reconstruction_3/tutorial_example.cpp + Polygon/examples/Polygon/Example.cpp + Polygon/examples/Polygon/Polygon.cpp + Polygon/examples/Polygon/draw_polygon.cpp + Polygon/examples/Polygon/draw_polygon_with_holes.cpp + Polygon/examples/Polygon/polygon_algorithms.cpp + Polygon/examples/Polygon/projected_polygon.cpp + Polygon_mesh_processing/examples/Polygon_mesh_processing/compute_normals_example.cpp + Polygon_mesh_processing/examples/Polygon_mesh_processing/compute_normals_example_OM.cpp + Polygon_mesh_processing/examples/Polygon_mesh_processing/compute_normals_example_Polyhedron.cpp + Polygon_mesh_processing/examples/Polygon_mesh_processing/connected_components_example.cpp + Polygon_mesh_processing/examples/Polygon_mesh_processing/corefinement_LCC.cpp + Polygon_mesh_processing/examples/Polygon_mesh_processing/corefinement_SM.cpp + Polygon_mesh_processing/examples/Polygon_mesh_processing/corefinement_consecutive_bool_op.cpp + Polygon_mesh_processing/examples/Polygon_mesh_processing/corefinement_difference_remeshed.cpp + Polygon_mesh_processing/examples/Polygon_mesh_processing/corefinement_mesh_union.cpp + Polygon_mesh_processing/examples/Polygon_mesh_processing/corefinement_mesh_union_and_intersection.cpp + Polygon_mesh_processing/examples/Polygon_mesh_processing/corefinement_mesh_union_with_attributes.cpp + Polygon_mesh_processing/examples/Polygon_mesh_processing/corefinement_polyhedron_union.cpp + Polygon_mesh_processing/examples/Polygon_mesh_processing/detect_features_example.cpp + Polygon_mesh_processing/examples/Polygon_mesh_processing/face_filtered_graph_example.cpp + Polygon_mesh_processing/examples/Polygon_mesh_processing/hausdorff_distance_remeshing_example.cpp + Polygon_mesh_processing/examples/Polygon_mesh_processing/hole_filling_example.cpp + Polygon_mesh_processing/examples/Polygon_mesh_processing/hole_filling_example_LCC.cpp + Polygon_mesh_processing/examples/Polygon_mesh_processing/hole_filling_example_OM.cpp + Polygon_mesh_processing/examples/Polygon_mesh_processing/hole_filling_example_SM.cpp + Polygon_mesh_processing/examples/Polygon_mesh_processing/isotropic_remeshing_example.cpp + Polygon_mesh_processing/examples/Polygon_mesh_processing/isotropic_remeshing_of_patch_example.cpp + Polygon_mesh_processing/examples/Polygon_mesh_processing/locate_example.cpp + Polygon_mesh_processing/examples/Polygon_mesh_processing/manifoldness_repair_example.cpp + Polygon_mesh_processing/examples/Polygon_mesh_processing/mesh_slicer_example.cpp + Polygon_mesh_processing/examples/Polygon_mesh_processing/mesh_smoothing_example.cpp + Polygon_mesh_processing/examples/Polygon_mesh_processing/orient_polygon_soup_example.cpp + Polygon_mesh_processing/examples/Polygon_mesh_processing/orientation_pipeline_example.cpp + Polygon_mesh_processing/examples/Polygon_mesh_processing/point_inside_example.cpp + Polygon_mesh_processing/examples/Polygon_mesh_processing/point_inside_example_OM.cpp + Polygon_mesh_processing/examples/Polygon_mesh_processing/random_perturbation_SM_example.cpp + Polygon_mesh_processing/examples/Polygon_mesh_processing/refine_fair_example.cpp + Polygon_mesh_processing/examples/Polygon_mesh_processing/repair_polygon_soup_example.cpp + Polygon_mesh_processing/examples/Polygon_mesh_processing/self_intersections_example.cpp + Polygon_mesh_processing/examples/Polygon_mesh_processing/shape_smoothing_example.cpp + Polygon_mesh_processing/examples/Polygon_mesh_processing/stitch_borders_example.cpp + Polygon_mesh_processing/examples/Polygon_mesh_processing/stitch_borders_example_OM.cpp + Polygon_mesh_processing/examples/Polygon_mesh_processing/surface_mesh_intersection.cpp + Polygon_mesh_processing/examples/Polygon_mesh_processing/triangulate_faces_example.cpp + Polygon_mesh_processing/examples/Polygon_mesh_processing/triangulate_faces_example_OM.cpp + Polygon_mesh_processing/examples/Polygon_mesh_processing/triangulate_faces_split_visitor_example.cpp + Polygon_mesh_processing/examples/Polygon_mesh_processing/triangulate_polyline_example.cpp + Polygon_mesh_processing/examples/Polygon_mesh_processing/volume_connected_components.cpp + Polygonal_surface_reconstruction/examples/Polygonal_surface_reconstruction/polyfit_example_model_complexty_control.cpp + Polygonal_surface_reconstruction/examples/Polygonal_surface_reconstruction/polyfit_example_user_provided_planes.cpp + Polygonal_surface_reconstruction/examples/Polygonal_surface_reconstruction/polyfit_example_with_region_growing.cpp + Polygonal_surface_reconstruction/examples/Polygonal_surface_reconstruction/polyfit_example_without_input_planes.cpp + Polyhedron/examples/Polyhedron/draw_polyhedron.cpp + Polyhedron/examples/Polyhedron/poly_derivation.cpp + Polyhedron/examples/Polyhedron/polyhedron_prog_color.cpp + Polyhedron/examples/Polyhedron/polyhedron_prog_cube.cpp + Polyhedron/examples/Polyhedron/polyhedron_prog_cut_cube.cpp + Polyhedron/examples/Polyhedron/polyhedron_prog_incr_builder.cpp + Polyhedron/examples/Polyhedron/polyhedron_prog_normals.cpp + Polyhedron/examples/Polyhedron/polyhedron_prog_off.cpp + Polyhedron/examples/Polyhedron/polyhedron_prog_planes.cpp + Polyhedron/examples/Polyhedron/polyhedron_prog_simple.cpp + Polyhedron/examples/Polyhedron/polyhedron_prog_subdiv.cpp + Polyhedron/examples/Polyhedron/polyhedron_prog_subdiv_with_boundary.cpp + Polyhedron/examples/Polyhedron/polyhedron_prog_tetra.cpp + Polyhedron/examples/Polyhedron/polyhedron_prog_traits.cpp + Polyhedron/examples/Polyhedron/polyhedron_prog_vector.cpp + Polyhedron/examples/Polyhedron/polyhedron_prog_vertex_color.cpp + Polyhedron/examples/Polyhedron/polyhedron_prog_vertex_normal.cpp + Polyhedron/examples/Polyhedron/polyhedron_self_intersection.cpp + Polyhedron/examples/build/qrc_CGAL.cpp + Polyhedron/examples/build/qrc_File.cpp + Polyhedron/examples/build/qrc_Input.cpp + Polyhedron/examples/build/qrc_Triangulation_2.cpp + Polyhedron_IO/examples/Polyhedron_IO/iv2off.cpp + Polyhedron_IO/examples/Polyhedron_IO/off2iv.cpp + Polyhedron_IO/examples/Polyhedron_IO/off2off.cpp + Polyhedron_IO/examples/Polyhedron_IO/off2stl.cpp + Polyhedron_IO/examples/Polyhedron_IO/off2vrml.cpp + Polyhedron_IO/examples/Polyhedron_IO/off2wav.cpp + Polyhedron_IO/examples/Polyhedron_IO/off_bbox.cpp + Polyhedron_IO/examples/Polyhedron_IO/off_glue.cpp + Polyhedron_IO/examples/Polyhedron_IO/off_transform.cpp + Polyhedron_IO/examples/Polyhedron_IO/polyhedron2vrml.cpp + Polyhedron_IO/examples/Polyhedron_IO/polyhedron_copy.cpp + Polyhedron_IO/examples/Polyhedron_IO/terr_trian.cpp + Polyline_simplification_2/examples/Polyline_simplification_2/points_and_vertices.cpp + Polyline_simplification_2/examples/Polyline_simplification_2/simplify.cpp + Polyline_simplification_2/examples/Polyline_simplification_2/simplify_polygon.cpp + Polyline_simplification_2/examples/Polyline_simplification_2/simplify_polyline.cpp + Polyline_simplification_2/examples/Polyline_simplification_2/simplify_terrain.cpp + Polynomial/examples/Polynomial/coefficient_access.cpp + Polynomial/examples/Polynomial/construction.cpp + Polynomial/examples/Polynomial/degree.cpp + Polynomial/examples/Polynomial/gcd_up_to_constant_factor.cpp + Polynomial/examples/Polynomial/subresultants.cpp + Polynomial/examples/Polynomial/substitute.cpp + Polynomial/examples/Polynomial/swap_move.cpp + Polytope_distance_d/examples/Polytope_distance_d/all_furthest_neighbors_2.cpp + Polytope_distance_d/examples/Polytope_distance_d/polytope_distance_d.cpp + Polytope_distance_d/examples/Polytope_distance_d/polytope_distance_d_fast_exact.cpp + Polytope_distance_d/examples/Polytope_distance_d/width_simplex.cpp + Principal_component_analysis/examples/Principal_component_analysis/barycenter.cpp + Principal_component_analysis/examples/Principal_component_analysis/bounding_box.cpp + Principal_component_analysis/examples/Principal_component_analysis/centroid.cpp + Principal_component_analysis/examples/Principal_component_analysis/linear_least_squares_fitting_points_2.cpp + Principal_component_analysis/examples/Principal_component_analysis/linear_least_squares_fitting_triangles_3.cpp + Profiling_tools/examples/Profiling_tools/Profile_counter.cpp + Profiling_tools/examples/Profiling_tools/Profile_histogram_counter.cpp + Profiling_tools/examples/Profiling_tools/Profile_timer.cpp + Property_map/examples/Property_map/custom_property_map.cpp + Property_map/examples/Property_map/dynamic_properties.cpp + QP_solver/examples/QP_solver/convex_hull_containment.cpp + QP_solver/examples/QP_solver/convex_hull_containment2.cpp + QP_solver/examples/QP_solver/convex_hull_containment_benchmarks.cpp + QP_solver/examples/QP_solver/cycling.cpp + QP_solver/examples/QP_solver/first_lp.cpp + QP_solver/examples/QP_solver/first_lp_from_iterators.cpp + QP_solver/examples/QP_solver/first_lp_from_mps.cpp + QP_solver/examples/QP_solver/first_nonnegative_lp.cpp + QP_solver/examples/QP_solver/first_nonnegative_lp_from_iterators.cpp + QP_solver/examples/QP_solver/first_nonnegative_lp_from_mps.cpp + QP_solver/examples/QP_solver/first_nonnegative_qp.cpp + QP_solver/examples/QP_solver/first_nonnegative_qp_from_iterators.cpp + QP_solver/examples/QP_solver/first_nonnegative_qp_from_mps.cpp + QP_solver/examples/QP_solver/first_qp.cpp + QP_solver/examples/QP_solver/first_qp_basic_constraints.cpp + QP_solver/examples/QP_solver/first_qp_from_iterators.cpp + QP_solver/examples/QP_solver/first_qp_from_mps.cpp + QP_solver/examples/QP_solver/important_variables.cpp + QP_solver/examples/QP_solver/infeasibility_certificate.cpp + QP_solver/examples/QP_solver/invert_matrix.cpp + QP_solver/examples/QP_solver/optimality_certificate.cpp + QP_solver/examples/QP_solver/print_first_lp.cpp + QP_solver/examples/QP_solver/print_first_nonnegative_lp.cpp + QP_solver/examples/QP_solver/print_first_nonnegative_qp.cpp + QP_solver/examples/QP_solver/print_first_qp.cpp + QP_solver/examples/QP_solver/unboundedness_certificate.cpp + Ridges_3/examples/Ridges_3/Compute_Ridges_Umbilics.cpp + Ridges_3/examples/Ridges_3/Ridges_Umbilics_LCC.cpp + Ridges_3/examples/Ridges_3/Ridges_Umbilics_SM.cpp + STL_Extension/examples/STL_Extension/Default.cpp + STL_Extension/examples/STL_Extension/Dispatch_output_iterator.cpp + STL_Extension/examples/STL_Extension/in_place_list_prog.cpp + STL_Extension/examples/STL_Extension/min_element_if_example.cpp + STL_Extension/examples/STL_Extension/min_max_element_example.cpp + STL_Extension/examples/STL_Extension/unordered_map.cpp + Scale_space_reconstruction_3/examples/Scale_space_reconstruction_3/scale_space.cpp + Scale_space_reconstruction_3/examples/Scale_space_reconstruction_3/scale_space_advancing_front.cpp + Scale_space_reconstruction_3/examples/Scale_space_reconstruction_3/scale_space_incremental.cpp + Scale_space_reconstruction_3/examples/Scale_space_reconstruction_3/scale_space_manifold.cpp + SearchStructures/examples/RangeSegmentTrees/range_tree_1.cpp + SearchStructures/examples/RangeSegmentTrees/range_tree_2.cpp + SearchStructures/examples/RangeSegmentTrees/range_tree_3.cpp + SearchStructures/examples/RangeSegmentTrees/range_tree_4.cpp + SearchStructures/examples/RangeSegmentTrees/range_tree_map_2.cpp + SearchStructures/examples/RangeSegmentTrees/range_tree_set_2.cpp + SearchStructures/examples/RangeSegmentTrees/segment_tree_1.cpp + SearchStructures/examples/RangeSegmentTrees/segment_tree_2.cpp + SearchStructures/examples/RangeSegmentTrees/segment_tree_3.cpp + SearchStructures/examples/RangeSegmentTrees/segment_tree_4.cpp + SearchStructures/examples/RangeSegmentTrees/segment_tree_map_2.cpp + SearchStructures/examples/RangeSegmentTrees/segment_tree_set_2.cpp + SearchStructures/examples/RangeSegmentTrees/segment_tree_set_3.cpp + SearchStructures/examples/RangeSegmentTrees/software_design_rgs.cpp + Segment_Delaunay_graph_2/examples/Segment_Delaunay_graph_2/sdg-count-sites.cpp + Segment_Delaunay_graph_2/examples/Segment_Delaunay_graph_2/sdg-fast-sp-polygon.cpp + Segment_Delaunay_graph_2/examples/Segment_Delaunay_graph_2/sdg-fast-sp.cpp + Segment_Delaunay_graph_2/examples/Segment_Delaunay_graph_2/sdg-filtered-traits.cpp + Segment_Delaunay_graph_2/examples/Segment_Delaunay_graph_2/sdg-info-set.cpp + Segment_Delaunay_graph_2/examples/Segment_Delaunay_graph_2/sdg-red-blue-info.cpp + Segment_Delaunay_graph_2/examples/Segment_Delaunay_graph_2/sdg-voronoi-edges.cpp + Segment_Delaunay_graph_Linf_2/examples/Segment_Delaunay_graph_Linf_2/print-sdg-linf.cpp + Segment_Delaunay_graph_Linf_2/examples/Segment_Delaunay_graph_Linf_2/sdg-count-sites-linf.cpp + Segment_Delaunay_graph_Linf_2/examples/Segment_Delaunay_graph_Linf_2/sdg-fast-sp-linf.cpp + Segment_Delaunay_graph_Linf_2/examples/Segment_Delaunay_graph_Linf_2/sdg-fast-sp-polygon-linf.cpp + Segment_Delaunay_graph_Linf_2/examples/Segment_Delaunay_graph_Linf_2/sdg-filtered-traits-linf.cpp + Segment_Delaunay_graph_Linf_2/examples/Segment_Delaunay_graph_Linf_2/sdg-info-set-linf.cpp + Segment_Delaunay_graph_Linf_2/examples/Segment_Delaunay_graph_Linf_2/sdg-red-blue-info-linf.cpp + Segment_Delaunay_graph_Linf_2/examples/Segment_Delaunay_graph_Linf_2/sdg-voronoi-edges-exact-linf.cpp + Segment_Delaunay_graph_Linf_2/examples/Segment_Delaunay_graph_Linf_2/sdg-voronoi-edges-linf.cpp + Set_movable_separability_2/examples/Set_movable_separability_2/is_pullout_direction_single_mold_trans_cast.cpp + Set_movable_separability_2/examples/Set_movable_separability_2/pullout_directions_single_mold_trans_cast.cpp + Set_movable_separability_2/examples/Set_movable_separability_2/top_edges_single_mold_trans_cast.cpp + Shape_detection/examples/Shape_detection/efficient_RANSAC_and_plane_regularization.cpp + Shape_detection/examples/Shape_detection/efficient_RANSAC_basic.cpp + Shape_detection/examples/Shape_detection/efficient_RANSAC_with_callback.cpp + Shape_detection/examples/Shape_detection/efficient_RANSAC_with_custom_shape.cpp + Shape_detection/examples/Shape_detection/efficient_RANSAC_with_parameters.cpp + Shape_detection/examples/Shape_detection/efficient_RANSAC_with_point_access.cpp + Shape_detection/examples/Shape_detection/region_growing_on_point_set_2.cpp + Shape_detection/examples/Shape_detection/region_growing_on_point_set_3.cpp + Shape_detection/examples/Shape_detection/region_growing_on_polygon_mesh.cpp + Shape_detection/examples/Shape_detection/region_growing_with_custom_classes.cpp + Shape_detection/examples/Shape_detection/shape_detection_basic_deprecated.cpp + Skin_surface_3/examples/Skin_surface_3/skin_surface_pdb_reader.cpp + Skin_surface_3/examples/Skin_surface_3/skin_surface_retrieve_defining_weighted_points.cpp + Skin_surface_3/examples/Skin_surface_3/skin_surface_simple.cpp + Skin_surface_3/examples/Skin_surface_3/skin_surface_subdiv.cpp + Skin_surface_3/examples/Skin_surface_3/skin_surface_subdiv_with_normals.cpp + Skin_surface_3/examples/Skin_surface_3/union_of_balls_simple.cpp + Skin_surface_3/examples/Skin_surface_3/union_of_balls_subdiv.cpp + Snap_rounding_2/examples/Snap_rounding_2/snap_rounding.cpp + Snap_rounding_2/examples/Snap_rounding_2/snap_rounding_data.cpp + Snap_rounding_2/examples/Snap_rounding_2/snap_rounding_to_integer.cpp + Solver_interface/examples/Solver_interface/diagonalize_matrix.cpp + Solver_interface/examples/Solver_interface/mixed_integer_program.cpp + Solver_interface/examples/Solver_interface/singular_value_decomposition.cpp + Solver_interface/examples/Solver_interface/sparse_solvers.cpp + Spatial_searching/examples/Spatial_searching/circular_query.cpp + Spatial_searching/examples/Spatial_searching/distance_browsing.cpp + Spatial_searching/examples/Spatial_searching/fuzzy_range_query.cpp + Spatial_searching/examples/Spatial_searching/general_neighbor_searching.cpp + Spatial_searching/examples/Spatial_searching/iso_rectangle_2_query.cpp + Spatial_searching/examples/Spatial_searching/nearest_neighbor_searching.cpp + Spatial_searching/examples/Spatial_searching/parallel_kdtree.cpp + Spatial_searching/examples/Spatial_searching/searching_polyhedron_vertices.cpp + Spatial_searching/examples/Spatial_searching/searching_polyhedron_vertices_with_fuzzy_sphere.cpp + Spatial_searching/examples/Spatial_searching/searching_sphere_orthogonally.cpp + Spatial_searching/examples/Spatial_searching/searching_surface_mesh_vertices.cpp + Spatial_searching/examples/Spatial_searching/searching_with_circular_query.cpp + Spatial_searching/examples/Spatial_searching/searching_with_point_with_info.cpp + Spatial_searching/examples/Spatial_searching/searching_with_point_with_info_inplace.cpp + Spatial_searching/examples/Spatial_searching/searching_with_point_with_info_pmap.cpp + Spatial_searching/examples/Spatial_searching/splitter_worst_cases.cpp + Spatial_searching/examples/Spatial_searching/user_defined_point_and_distance.cpp + Spatial_searching/examples/Spatial_searching/using_fair_splitting_rule.cpp + Spatial_searching/examples/Spatial_searching/weighted_Minkowski_distance.cpp + Spatial_sorting/examples/Spatial_sorting/example_delaunay_2.cpp + Spatial_sorting/examples/Spatial_sorting/hilbert.cpp + Spatial_sorting/examples/Spatial_sorting/hilbert_policies.cpp + Spatial_sorting/examples/Spatial_sorting/hilbert_sort_on_sphere.cpp + Spatial_sorting/examples/Spatial_sorting/myPoint.cpp + Spatial_sorting/examples/Spatial_sorting/parallel_spatial_sort_3.cpp + Spatial_sorting/examples/Spatial_sorting/small_example_delaunay_2.cpp + Spatial_sorting/examples/Spatial_sorting/sort_indices.cpp + Spatial_sorting/examples/Spatial_sorting/sp_sort_using_property_map_2.cpp + Spatial_sorting/examples/Spatial_sorting/sp_sort_using_property_map_3.cpp + Spatial_sorting/examples/Spatial_sorting/sp_sort_using_property_map_d.cpp + Spatial_sorting/examples/Spatial_sorting/spatial_sort_on_sphere.cpp + Straight_skeleton_2/examples/Straight_skeleton_2/Create_offset_polygons_2.cpp + Straight_skeleton_2/examples/Straight_skeleton_2/Create_saop_from_polygon_with_holes_2.cpp + Straight_skeleton_2/examples/Straight_skeleton_2/Create_skeleton_and_offset_polygons_2.cpp + Straight_skeleton_2/examples/Straight_skeleton_2/Create_skeleton_and_offset_polygons_with_holes_2.cpp + Straight_skeleton_2/examples/Straight_skeleton_2/Create_straight_skeleton_2.cpp + Straight_skeleton_2/examples/Straight_skeleton_2/Create_straight_skeleton_from_polygon_with_holes_2.cpp + Straight_skeleton_2/examples/Straight_skeleton_2/Low_level_API.cpp + Straight_skeleton_2/examples/Straight_skeleton_2/Show_offset_polygon.cpp + Straight_skeleton_2/examples/Straight_skeleton_2/Show_straight_skeleton.cpp + Stream_lines_2/examples/Stream_lines_2/stl_regular_field.cpp + Stream_lines_2/examples/Stream_lines_2/stl_triangular_field.cpp + Stream_support/examples/Stream_support/Linestring_WKT.cpp + Stream_support/examples/Stream_support/Point_WKT.cpp + Stream_support/examples/Stream_support/Polygon_WKT.cpp + Stream_support/examples/Stream_support/read_WKT.cpp + Stream_support/examples/Stream_support/read_xml.cpp + Subdivision_method_3/examples/Subdivision_method_3/CatmullClark_subdivision.cpp + Subdivision_method_3/examples/Subdivision_method_3/Customized_subdivision.cpp + Subdivision_method_3/examples/Subdivision_method_3/DooSabin_subdivision.cpp + Subdivision_method_3/examples/Subdivision_method_3/Loop_subdivision.cpp + Subdivision_method_3/examples/Subdivision_method_3/Sqrt3_subdivision.cpp + Surface_mesh/examples/Surface_mesh/check_orientation.cpp + Surface_mesh/examples/Surface_mesh/draw_surface_mesh.cpp + Surface_mesh/examples/Surface_mesh/sm_aabbtree.cpp + Surface_mesh/examples/Surface_mesh/sm_bgl.cpp + Surface_mesh/examples/Surface_mesh/sm_circulators.cpp + Surface_mesh/examples/Surface_mesh/sm_derivation.cpp + Surface_mesh/examples/Surface_mesh/sm_do_intersect.cpp + Surface_mesh/examples/Surface_mesh/sm_draw_small_faces.cpp + Surface_mesh/examples/Surface_mesh/sm_iterators.cpp + Surface_mesh/examples/Surface_mesh/sm_join.cpp + Surface_mesh/examples/Surface_mesh/sm_kruskal.cpp + Surface_mesh/examples/Surface_mesh/sm_memory.cpp + Surface_mesh/examples/Surface_mesh/sm_properties.cpp + Surface_mesh_approximation/examples/Surface_mesh_approximation/vsa_approximation_2_example.cpp + Surface_mesh_approximation/examples/Surface_mesh_approximation/vsa_approximation_example.cpp + Surface_mesh_approximation/examples/Surface_mesh_approximation/vsa_class_interface_example.cpp + Surface_mesh_approximation/examples/Surface_mesh_approximation/vsa_isotropic_metric_example.cpp + Surface_mesh_approximation/examples/Surface_mesh_approximation/vsa_segmentation_example.cpp + Surface_mesh_approximation/examples/Surface_mesh_approximation/vsa_simple_approximation_example.cpp + Surface_mesh_deformation/examples/Surface_mesh_deformation/all_roi_assign_example.cpp + Surface_mesh_deformation/examples/Surface_mesh_deformation/all_roi_assign_example_Surface_mesh.cpp + Surface_mesh_deformation/examples/Surface_mesh_deformation/all_roi_assign_example_custom_polyhedron.cpp + Surface_mesh_deformation/examples/Surface_mesh_deformation/all_roi_assign_example_with_OpenMesh.cpp + Surface_mesh_deformation/examples/Surface_mesh_deformation/custom_weight_for_edges_example.cpp + Surface_mesh_deformation/examples/Surface_mesh_deformation/deform_mesh_for_botsch08_format_sre_arap.cpp + Surface_mesh_deformation/examples/Surface_mesh_deformation/deform_polyhedron_with_custom_pmap_example.cpp + Surface_mesh_deformation/examples/Surface_mesh_deformation/k_ring_roi_translate_rotate_Surface_mesh.cpp + Surface_mesh_deformation/examples/Surface_mesh_deformation/k_ring_roi_translate_rotate_example.cpp + Surface_mesh_parameterization/examples/Surface_mesh_parameterization/discrete_authalic.cpp + Surface_mesh_parameterization/examples/Surface_mesh_parameterization/lscm.cpp + Surface_mesh_parameterization/examples/Surface_mesh_parameterization/orbifold.cpp + Surface_mesh_parameterization/examples/Surface_mesh_parameterization/seam_Polyhedron_3.cpp + Surface_mesh_parameterization/examples/Surface_mesh_parameterization/simple_parameterization.cpp + Surface_mesh_parameterization/examples/Surface_mesh_parameterization/square_border_parameterizer.cpp + Surface_mesh_segmentation/examples/Surface_mesh_segmentation/extract_segmentation_into_mesh_example.cpp + Surface_mesh_segmentation/examples/Surface_mesh_segmentation/sdf_values_example.cpp + Surface_mesh_segmentation/examples/Surface_mesh_segmentation/segmentation_from_sdf_values_LCC_example.cpp + Surface_mesh_segmentation/examples/Surface_mesh_segmentation/segmentation_from_sdf_values_OpenMesh_example.cpp + Surface_mesh_segmentation/examples/Surface_mesh_segmentation/segmentation_from_sdf_values_SM_example.cpp + Surface_mesh_segmentation/examples/Surface_mesh_segmentation/segmentation_from_sdf_values_example.cpp + Surface_mesh_segmentation/examples/Surface_mesh_segmentation/segmentation_via_sdf_values_example.cpp + Surface_mesh_segmentation/examples/Surface_mesh_segmentation/segmentation_with_facet_ids_example.cpp + Surface_mesh_shortest_path/examples/Surface_mesh_shortest_path/shortest_path_sequence.cpp + Surface_mesh_shortest_path/examples/Surface_mesh_shortest_path/shortest_path_with_locate.cpp + Surface_mesh_shortest_path/examples/Surface_mesh_shortest_path/shortest_paths.cpp + Surface_mesh_shortest_path/examples/Surface_mesh_shortest_path/shortest_paths_OpenMesh.cpp + Surface_mesh_shortest_path/examples/Surface_mesh_shortest_path/shortest_paths_multiple_sources.cpp + Surface_mesh_shortest_path/examples/Surface_mesh_shortest_path/shortest_paths_no_id.cpp + Surface_mesh_shortest_path/examples/Surface_mesh_shortest_path/shortest_paths_with_id.cpp + Surface_mesh_simplification/examples/Surface_mesh_simplification/edge_collapse_OpenMesh.cpp + Surface_mesh_simplification/examples/Surface_mesh_simplification/edge_collapse_all_short_edges.cpp + Surface_mesh_simplification/examples/Surface_mesh_simplification/edge_collapse_bounded_normal_change.cpp + Surface_mesh_simplification/examples/Surface_mesh_simplification/edge_collapse_constrain_sharp_edges.cpp + Surface_mesh_simplification/examples/Surface_mesh_simplification/edge_collapse_constrained_border_polyhedron.cpp + Surface_mesh_simplification/examples/Surface_mesh_simplification/edge_collapse_constrained_border_surface_mesh.cpp + Surface_mesh_simplification/examples/Surface_mesh_simplification/edge_collapse_enriched_polyhedron.cpp + Surface_mesh_simplification/examples/Surface_mesh_simplification/edge_collapse_garland_heckbert.cpp + Surface_mesh_simplification/examples/Surface_mesh_simplification/edge_collapse_linear_cell_complex.cpp + Surface_mesh_simplification/examples/Surface_mesh_simplification/edge_collapse_polyhedron.cpp + Surface_mesh_simplification/examples/Surface_mesh_simplification/edge_collapse_surface_mesh.cpp + Surface_mesh_simplification/examples/Surface_mesh_simplification/edge_collapse_visitor_surface_mesh.cpp + Surface_mesh_skeletonization/examples/Surface_mesh_skeletonization/MCF_Skeleton_LCC_example.cpp + Surface_mesh_skeletonization/examples/Surface_mesh_skeletonization/MCF_Skeleton_example.cpp + Surface_mesh_skeletonization/examples/Surface_mesh_skeletonization/MCF_Skeleton_sm_example.cpp + Surface_mesh_skeletonization/examples/Surface_mesh_skeletonization/segmentation_example.cpp + Surface_mesh_skeletonization/examples/Surface_mesh_skeletonization/simple_mcfskel_LCC_example.cpp + Surface_mesh_skeletonization/examples/Surface_mesh_skeletonization/simple_mcfskel_example.cpp + Surface_mesh_skeletonization/examples/Surface_mesh_skeletonization/simple_mcfskel_sm_example.cpp + Surface_mesh_topology/examples/Surface_mesh_topology/edgewidth_lcc.cpp + Surface_mesh_topology/examples/Surface_mesh_topology/edgewidth_surface_mesh.cpp + Surface_mesh_topology/examples/Surface_mesh_topology/facewidth.cpp + Surface_mesh_topology/examples/Surface_mesh_topology/map_2_constructor.cpp + Surface_mesh_topology/examples/Surface_mesh_topology/open_path_homotopy.cpp + Surface_mesh_topology/examples/Surface_mesh_topology/path_homotopy.cpp + Surface_mesh_topology/examples/Surface_mesh_topology/path_homotopy_double_torus.cpp + Surface_mesh_topology/examples/Surface_mesh_topology/path_homotopy_torus.cpp + Surface_mesh_topology/examples/Surface_mesh_topology/path_homotopy_with_sm_and_polyhedron.cpp + Surface_mesh_topology/examples/Surface_mesh_topology/path_homotopy_with_symbols.cpp + Surface_mesh_topology/examples/Surface_mesh_topology/path_homotopy_with_symbols_2.cpp + Surface_mesh_topology/examples/Surface_mesh_topology/shortest_noncontractible_cycle.cpp + Surface_mesh_topology/examples/Surface_mesh_topology/shortest_noncontractible_cycle_2.cpp + Surface_mesh_topology/examples/Surface_mesh_topology/unsew_edgewidth_repeatedly.cpp + Surface_mesher/examples/Surface_mesher/mesh_a_3d_gray_image.cpp + Surface_mesher/examples/Surface_mesher/mesh_an_implicit_function.cpp + Surface_sweep_2/examples/Surface_sweep_2/plane_sweep.cpp + TDS_3/examples/TDS_3/linking_2d_and_3d.cpp + TDS_3/examples/TDS_3/tds.cpp + Tetrahedral_remeshing/examples/Tetrahedral_remeshing/mesh_and_remesh_polyhedral_domain_with_features.cpp + Tetrahedral_remeshing/examples/Tetrahedral_remeshing/tetrahedral_remeshing_example.cpp + Tetrahedral_remeshing/examples/Tetrahedral_remeshing/tetrahedral_remeshing_from_mesh.cpp + Tetrahedral_remeshing/examples/Tetrahedral_remeshing/tetrahedral_remeshing_of_one_subdomain.cpp + Tetrahedral_remeshing/examples/Tetrahedral_remeshing/tetrahedral_remeshing_with_features.cpp + Triangulation/examples/Triangulation/barycentric_subdivision.cpp + Triangulation/examples/Triangulation/convex_hull.cpp + Triangulation/examples/Triangulation/delaunay_triangulation.cpp + Triangulation/examples/Triangulation/regular_triangulation.cpp + Triangulation/examples/Triangulation/triangulation.cpp + Triangulation/examples/Triangulation/triangulation1.cpp + Triangulation/examples/Triangulation/triangulation2.cpp + Triangulation/examples/Triangulation/triangulation_data_structure_dynamic.cpp + Triangulation/examples/Triangulation/triangulation_data_structure_static.cpp + Triangulation_2/examples/Triangulation_2/adding_handles.cpp + Triangulation_2/examples/Triangulation_2/colored_face.cpp + Triangulation_2/examples/Triangulation_2/constrained.cpp + Triangulation_2/examples/Triangulation_2/constrained_hierarchy_plus.cpp + Triangulation_2/examples/Triangulation_2/constrained_plus.cpp + Triangulation_2/examples/Triangulation_2/copy_triangulation_2.cpp + Triangulation_2/examples/Triangulation_2/draw_triangulation_2.cpp + Triangulation_2/examples/Triangulation_2/for_loop_2.cpp + Triangulation_2/examples/Triangulation_2/hierarchy.cpp + Triangulation_2/examples/Triangulation_2/info_insert_with_pair_iterator_2.cpp + Triangulation_2/examples/Triangulation_2/info_insert_with_pair_iterator_regular_2.cpp + Triangulation_2/examples/Triangulation_2/info_insert_with_transform_iterator_2.cpp + Triangulation_2/examples/Triangulation_2/info_insert_with_zip_iterator_2.cpp + Triangulation_2/examples/Triangulation_2/low_dimensional.cpp + Triangulation_2/examples/Triangulation_2/polygon_triangulation.cpp + Triangulation_2/examples/Triangulation_2/polylines_triangulation.cpp + Triangulation_2/examples/Triangulation_2/print_cropped_voronoi.cpp + Triangulation_2/examples/Triangulation_2/regular.cpp + Triangulation_2/examples/Triangulation_2/segment_soup_to_polylines.cpp + Triangulation_2/examples/Triangulation_2/terrain.cpp + Triangulation_2/examples/Triangulation_2/terrain_with_info.cpp + Triangulation_2/examples/Triangulation_2/triangulation_prog1.cpp + Triangulation_2/examples/Triangulation_2/voronoi.cpp + Triangulation_2/examples/build-Triangulation_2-Desktop_Qt_GCC_64bit-Debug/qrc_CGAL.cpp + Triangulation_2/examples/build-Triangulation_2-Desktop_Qt_GCC_64bit-Debug/qrc_File.cpp + Triangulation_2/examples/build-Triangulation_2-Desktop_Qt_GCC_64bit-Debug/qrc_Input.cpp + Triangulation_2/examples/build-Triangulation_2-Desktop_Qt_GCC_64bit-Debug/qrc_Triangulation_2.cpp + Triangulation_3/examples/Triangulation_3/adding_handles_3.cpp + Triangulation_3/examples/Triangulation_3/color.cpp + Triangulation_3/examples/Triangulation_3/copy_triangulation_3.cpp + Triangulation_3/examples/Triangulation_3/draw_triangulation_3.cpp + Triangulation_3/examples/Triangulation_3/fast_location_3.cpp + Triangulation_3/examples/Triangulation_3/find_conflicts_3.cpp + Triangulation_3/examples/Triangulation_3/for_loop.cpp + Triangulation_3/examples/Triangulation_3/info_insert_with_pair_iterator.cpp + Triangulation_3/examples/Triangulation_3/info_insert_with_pair_iterator_regular.cpp + Triangulation_3/examples/Triangulation_3/info_insert_with_transform_iterator.cpp + Triangulation_3/examples/Triangulation_3/info_insert_with_zip_iterator.cpp + Triangulation_3/examples/Triangulation_3/parallel_insertion_and_removal_in_regular_3.cpp + Triangulation_3/examples/Triangulation_3/parallel_insertion_in_delaunay_3.cpp + Triangulation_3/examples/Triangulation_3/regular_3.cpp + Triangulation_3/examples/Triangulation_3/regular_with_info_3.cpp + Triangulation_3/examples/Triangulation_3/sequential_parallel.cpp + Triangulation_3/examples/Triangulation_3/simple_triangulation_3.cpp + Triangulation_3/examples/Triangulation_3/simplex.cpp + Visibility_2/examples/Visibility_2/general_polygon_example.cpp + Visibility_2/examples/Visibility_2/simple_polygon_visibility_2.cpp + Voronoi_diagram_2/examples/Voronoi_diagram_2/draw_voronoi_diagram_2.cpp + Voronoi_diagram_2/examples/Voronoi_diagram_2/vd_2_point_location.cpp + Voronoi_diagram_2/examples/Voronoi_diagram_2/vd_2_point_location_sdg_linf.cpp + ]=]) +separate_arguments(example_files UNIX_COMMAND ${list_of_examples_txt}) diff --git a/Installation/cmake/modules/list_of_documented_headers.cmake b/Installation/cmake/modules/list_of_documented_headers.cmake new file mode 100644 index 00000000000..37317a5e5f5 --- /dev/null +++ b/Installation/cmake/modules/list_of_documented_headers.cmake @@ -0,0 +1,1002 @@ +set(list_of_documented_headers_txt [=[ + CGAL/AABB_face_graph_triangle_primitive.h + CGAL/AABB_halfedge_graph_segment_primitive.h + CGAL/AABB_polyhedron_segment_primitive.h + CGAL/AABB_polyhedron_triangle_primitive.h + CGAL/AABB_primitive.h + CGAL/AABB_segment_primitive.h + CGAL/AABB_traits.h + CGAL/AABB_tree.h + CGAL/AABB_triangle_primitive.h + CGAL/Advancing_front_surface_reconstruction.h + CGAL/Advancing_front_surface_reconstruction_cell_base_3.h + CGAL/Advancing_front_surface_reconstruction_vertex_base_3.h + CGAL/Aff_transformation_2.h + CGAL/Aff_transformation_3.h + CGAL/Algebraic_kernel_d_1.h + CGAL/Algebraic_kernel_d_2.h + CGAL/Algebraic_kernel_for_circles_2_2.h + CGAL/Algebraic_kernel_for_spheres_2_3.h + CGAL/Algebraic_kernel_rs_gmpq_d_1.h + CGAL/Algebraic_kernel_rs_gmpz_d_1.h + CGAL/Algebraic_structure_traits.h + CGAL/Alpha_shape_2.h + CGAL/Alpha_shape_3.h + CGAL/Alpha_shape_cell_base_3.h + CGAL/Alpha_shape_face_base_2.h + CGAL/Alpha_shape_vertex_base_2.h + CGAL/Alpha_shape_vertex_base_3.h + CGAL/Apollonius_graph_2.h + CGAL/Apollonius_graph_adaptation_policies_2.h + CGAL/Apollonius_graph_adaptation_traits_2.h + CGAL/Apollonius_graph_filtered_traits_2.h + CGAL/Apollonius_graph_hierarchy_2.h + CGAL/Apollonius_graph_hierarchy_vertex_base_2.h + CGAL/Apollonius_graph_traits_2.h + CGAL/Apollonius_graph_vertex_base_2.h + CGAL/Apollonius_site_2.h + CGAL/Approximate_min_ellipsoid_d.h + CGAL/Approximate_min_ellipsoid_d_traits_2.h + CGAL/Approximate_min_ellipsoid_d_traits_3.h + CGAL/Approximate_min_ellipsoid_d_traits_d.h + CGAL/Arr_Bezier_curve_traits_2.h + CGAL/Arr_accessor.h + CGAL/Arr_algebraic_segment_traits_2.h + CGAL/Arr_batched_point_location.h + CGAL/Arr_circle_segment_traits_2.h + CGAL/Arr_circular_arc_traits_2.h + CGAL/Arr_circular_line_arc_traits_2.h + CGAL/Arr_conic_traits_2.h + CGAL/Arr_consolidated_curve_data_traits_2.h + CGAL/Arr_curve_data_traits_2.h + CGAL/Arr_dcel_base.h + CGAL/Arr_default_dcel.h + CGAL/Arr_default_overlay_traits.h + CGAL/Arr_enums.h + CGAL/Arr_extended_dcel.h + CGAL/Arr_face_index_map.h + CGAL/Arr_landmarks_point_location.h + CGAL/Arr_line_arc_traits_2.h + CGAL/Arr_linear_traits_2.h + CGAL/Arr_naive_point_location.h + CGAL/Arr_non_caching_segment_basic_traits_2.h + CGAL/Arr_non_caching_segment_traits_2.h + CGAL/Arr_observer.h + CGAL/Arr_overlay_2.h + CGAL/Arr_point_location_result.h + CGAL/Arr_polycurve_traits_2.h + CGAL/Arr_polyline_traits_2.h + CGAL/Arr_rational_function_traits_2.h + CGAL/Arr_segment_traits_2.h + CGAL/Arr_tags.h + CGAL/Arr_trapezoid_ric_point_location.h + CGAL/Arr_vertex_index_map.h + CGAL/Arr_vertical_decomposition_2.h + CGAL/Arr_walk_along_line_point_location.h + CGAL/Arrangement_2.h + CGAL/Arrangement_with_history_2.h + CGAL/Barycentric_coordinates_2/Discrete_harmonic_2.h + CGAL/Barycentric_coordinates_2/Generalized_barycentric_coordinates_2.h + CGAL/Barycentric_coordinates_2/Mean_value_2.h + CGAL/Barycentric_coordinates_2/Segment_coordinates_2.h + CGAL/Barycentric_coordinates_2/Triangle_coordinates_2.h + CGAL/Barycentric_coordinates_2/Wachspress_2.h + CGAL/Bbox_2.h + CGAL/Bbox_3.h + CGAL/Boolean_set_operations_2.h + CGAL/Boolean_set_operations_2/Gps_default_dcel.h + CGAL/Box_intersection_d/Box_d.h + CGAL/Box_intersection_d/Box_traits_d.h + CGAL/Box_intersection_d/Box_with_handle_d.h + CGAL/CC_safe_handle.h + CGAL/CGAL_Ipelet_base.h + CGAL/CORE_BigFloat.h + CGAL/CORE_BigInt.h + CGAL/CORE_BigRat.h + CGAL/CORE_Expr.h + CGAL/Cartesian.h + CGAL/Cartesian_converter.h + CGAL/Cartesian_d.h + CGAL/Cell_attribute.h + CGAL/Cell_attribute_with_id.h + CGAL/Cell_attribute_with_point.h + CGAL/Cell_attribute_with_point_and_id.h + CGAL/Circle_2.h + CGAL/Circle_3.h + CGAL/Circle_type.h + CGAL/Circular_arc_2.h + CGAL/Circular_arc_3.h + CGAL/Circular_arc_point_2.h + CGAL/Circular_arc_point_3.h + CGAL/Circular_kernel_2.h + CGAL/Circular_kernel_intersections.h + CGAL/Classification/Cluster.h + CGAL/Classification/ETHZ/Random_forest_classifier.h + CGAL/Classification/Evaluation.h + CGAL/Classification/Feature/Cluster_mean_of_feature.h + CGAL/Classification/Feature/Cluster_size.h + CGAL/Classification/Feature/Cluster_variance_of_feature.h + CGAL/Classification/Feature/Cluster_vertical_extent.h + CGAL/Classification/Feature/Color_channel.h + CGAL/Classification/Feature/Distance_to_plane.h + CGAL/Classification/Feature/Echo_scatter.h + CGAL/Classification/Feature/Eigenvalue.h + CGAL/Classification/Feature/Elevation.h + CGAL/Classification/Feature/Height_above.h + CGAL/Classification/Feature/Height_below.h + CGAL/Classification/Feature/Simple_feature.h + CGAL/Classification/Feature/Vertical_dispersion.h + CGAL/Classification/Feature/Vertical_range.h + CGAL/Classification/Feature/Verticality.h + CGAL/Classification/Feature_base.h + CGAL/Classification/Feature_set.h + CGAL/Classification/Label.h + CGAL/Classification/Label_set.h + CGAL/Classification/Local_eigen_analysis.h + CGAL/Classification/Mesh_feature_generator.h + CGAL/Classification/Mesh_neighborhood.h + CGAL/Classification/OpenCV/Random_forest_classifier.h + CGAL/Classification/Planimetric_grid.h + CGAL/Classification/Point_set_feature_generator.h + CGAL/Classification/Point_set_neighborhood.h + CGAL/Classification/Sum_of_weighted_features_classifier.h + CGAL/Classification/TensorFlow/Neural_network_classifier.h + CGAL/Classification/classify.h + CGAL/Classification/property_maps.h + CGAL/Coercion_traits.h + CGAL/Combination_enumerator.h + CGAL/Combinatorial_map.h + CGAL/Combinatorial_map_constructors.h + CGAL/Combinatorial_map_min_items.h + CGAL/Combinatorial_map_operations.h + CGAL/Compact_container.h + CGAL/Compact_mesh_cell_base_3.h + CGAL/Complexity_tags.h + CGAL/Compute_cone_boundaries_2.h + CGAL/Concurrent_compact_container.h + CGAL/Cone_spanners_enum_2.h + CGAL/Constrained_Delaunay_triangulation_2.h + CGAL/Constrained_triangulation_2.h + CGAL/Constrained_triangulation_face_base_2.h + CGAL/Constrained_triangulation_plus_2.h + CGAL/Construct_theta_graph_2.h + CGAL/Construct_yao_graph_2.h + CGAL/Convex_hull_3/dual/halfspace_intersection_3.h + CGAL/Convex_hull_3/dual/halfspace_intersection_interior_point_3.h + CGAL/Convex_hull_3/dual/halfspace_intersection_with_constructions_3.h + CGAL/Convex_hull_d.h + CGAL/Convex_hull_d_traits_3.h + CGAL/Convex_hull_traits_3.h + CGAL/Convex_hull_traits_adapter_2.h + CGAL/Curves_on_surface_topology.h + CGAL/Dart.h + CGAL/Default.h + CGAL/Deformation_Eigen_closest_rotation_traits_3.h + CGAL/Deformation_Eigen_polar_closest_rotation_traits_3.h + CGAL/Delaunay_d.h + CGAL/Delaunay_mesh_criteria_2.h + CGAL/Delaunay_mesh_face_base_2.h + CGAL/Delaunay_mesh_size_criteria_2.h + CGAL/Delaunay_mesh_vertex_base_2.h + CGAL/Delaunay_mesher_2.h + CGAL/Delaunay_triangulation.h + CGAL/Delaunay_triangulation_2.h + CGAL/Delaunay_triangulation_3.h + CGAL/Delaunay_triangulation_adaptation_policies_2.h + CGAL/Delaunay_triangulation_adaptation_traits_2.h + CGAL/Delaunay_triangulation_cell_base_3.h + CGAL/Delaunay_triangulation_cell_base_with_circumcenter_3.h + CGAL/Dimension.h + CGAL/Direction_2.h + CGAL/Direction_3.h + CGAL/Dynamic_matrix.h + CGAL/Eigen_diagonalize_traits.h + CGAL/Eigen_matrix.h + CGAL/Eigen_solver_traits.h + CGAL/Eigen_sparse_matrix.h + CGAL/Eigen_svd.h + CGAL/Eigen_vector.h + CGAL/Env_plane_traits_3.h + CGAL/Env_sphere_traits_3.h + CGAL/Env_surface_data_traits_3.h + CGAL/Env_triangle_traits_3.h + CGAL/Envelope_diagram_1.h + CGAL/Epeck_d.h + CGAL/Epick_d.h + CGAL/Euclidean_distance.h + CGAL/Euclidean_distance_sphere_point.h + CGAL/Euler_integrator_2.h + CGAL/Exact_circular_kernel_2.h + CGAL/Exact_integer.h + CGAL/Exact_predicates_exact_constructions_kernel.h + CGAL/Exact_predicates_exact_constructions_kernel_with_kth_root.h + CGAL/Exact_predicates_exact_constructions_kernel_with_root_of.h + CGAL/Exact_predicates_exact_constructions_kernel_with_sqrt.h + CGAL/Exact_predicates_inexact_constructions_kernel.h + CGAL/Exact_rational.h + CGAL/Exact_spherical_kernel_3.h + CGAL/Exponent_vector.h + CGAL/Extended_cartesian.h + CGAL/Extended_homogeneous.h + CGAL/Extremal_polygon_traits_2.h + CGAL/Extreme_points_traits_adapter_3.h + CGAL/FPU.h + CGAL/Filtered_extended_homogeneous.h + CGAL/Filtered_kernel.h + CGAL/Filtered_predicate.h + CGAL/Fixed_alpha_shape_3.h + CGAL/Fixed_alpha_shape_cell_base_3.h + CGAL/Fixed_alpha_shape_vertex_base_3.h + CGAL/Fourtuple.h + CGAL/Fraction_traits.h + CGAL/Fuzzy_iso_box.h + CGAL/Fuzzy_sphere.h + CGAL/GLPK_mixed_integer_program_traits.h + CGAL/General_polygon_2.h + CGAL/General_polygon_set_2.h + CGAL/General_polygon_with_holes_2.h + CGAL/Generalized_map.h + CGAL/Generic_map_min_items.h + CGAL/Gmpfi.h + CGAL/Gmpfr.h + CGAL/Gmpq.h + CGAL/Gmpz.h + CGAL/Gmpzf.h + CGAL/Gps_circle_segment_traits_2.h + CGAL/Gps_segment_traits_2.h + CGAL/Gps_traits_2.h + CGAL/Gray_image_mesh_domain_3.h + CGAL/Gray_level_image_3.h + CGAL/HalfedgeDS_bases.h + CGAL/HalfedgeDS_const_decorator.h + CGAL/HalfedgeDS_decorator.h + CGAL/HalfedgeDS_default.h + CGAL/HalfedgeDS_face_base.h + CGAL/HalfedgeDS_face_max_base_with_id.h + CGAL/HalfedgeDS_face_min_base.h + CGAL/HalfedgeDS_halfedge_base.h + CGAL/HalfedgeDS_halfedge_max_base_with_id.h + CGAL/HalfedgeDS_halfedge_min_base.h + CGAL/HalfedgeDS_items_2.h + CGAL/HalfedgeDS_items_decorator.h + CGAL/HalfedgeDS_list.h + CGAL/HalfedgeDS_min_items.h + CGAL/HalfedgeDS_vector.h + CGAL/HalfedgeDS_vertex_base.h + CGAL/HalfedgeDS_vertex_max_base_with_id.h + CGAL/HalfedgeDS_vertex_min_base.h + CGAL/Handle_hash_function.h + CGAL/Heat_method_3/Surface_mesh_geodesic_distances_3.h + CGAL/Hilbert_policy_tags.h + CGAL/Hilbert_sort_2.h + CGAL/Hilbert_sort_3.h + CGAL/Hilbert_sort_d.h + CGAL/Hilbert_sort_on_sphere_3.h + CGAL/Homogeneous.h + CGAL/Homogeneous_converter.h + CGAL/Homogeneous_d.h + CGAL/Hyperbolic_Delaunay_triangulation_2.h + CGAL/Hyperbolic_Delaunay_triangulation_CK_traits_2.h + CGAL/Hyperbolic_Delaunay_triangulation_traits_2.h + CGAL/Hyperbolic_octagon_translation.h + CGAL/Hyperbolic_triangulation_face_base_2.h + CGAL/IO/Arr_iostream.h + CGAL/IO/Arr_text_formatter.h + CGAL/IO/Arr_with_history_iostream.h + CGAL/IO/Arr_with_history_text_formatter.h + CGAL/IO/Color.h + CGAL/IO/Complex_2_in_triangulation_3_file_writer.h + CGAL/IO/File_medit.h + CGAL/IO/Geomview_stream.h + CGAL/IO/Istream_iterator.h + CGAL/IO/Nef_polyhedron_iostream_3.h + CGAL/IO/Ostream_iterator.h + CGAL/IO/Polyhedron_inventor_ostream.h + CGAL/IO/Polyhedron_iostream.h + CGAL/IO/Triangulation_geomview_ostream_3.h + CGAL/IO/Verbose_ostream.h + CGAL/IO/WKT.h + CGAL/IO/facets_in_complex_2_to_triangle_mesh.h + CGAL/IO/facets_in_complex_3_to_triangle_mesh.h + CGAL/IO/io.h + CGAL/IO/output_to_vtu.h + CGAL/IO/read_las_points.h + CGAL/IO/read_off_points.h + CGAL/IO/read_ply_points.h + CGAL/IO/read_xyz_points.h + CGAL/IO/write_las_points.h + CGAL/IO/write_off_points.h + CGAL/IO/write_ply_points.h + CGAL/IO/write_vtu.h + CGAL/IO/write_xyz_points.h + CGAL/Identity_policy_2.h + CGAL/Image_3.h + CGAL/Implicit_mesh_domain_3.h + CGAL/Implicit_surface_3.h + CGAL/Implicit_to_labeled_subdomains_function_wrapper.h + CGAL/Implicit_to_labeling_function_wrapper.h + CGAL/In_place_list.h + CGAL/Incremental_neighbor_search.h + CGAL/Interpolation_gradient_fitting_traits_2.h + CGAL/Interpolation_traits_2.h + CGAL/Interval_nt.h + CGAL/Interval_skip_list.h + CGAL/Interval_skip_list_interval.h + CGAL/Iso_cuboid_3.h + CGAL/Iso_rectangle_2.h + CGAL/Iterator_range.h + CGAL/K_neighbor_search.h + CGAL/Kd_tree.h + CGAL/Kd_tree_node.h + CGAL/Kd_tree_rectangle.h + CGAL/Kernel/global_functions.h + CGAL/Kernel_d/Aff_transformation_d.h + CGAL/Kernel_d/Direction_d.h + CGAL/Kernel_d/Hyperplane_d.h + CGAL/Kernel_d/Iso_box_d.h + CGAL/Kernel_d/Line_d.h + CGAL/Kernel_d/Point_d.h + CGAL/Kernel_d/Ray_d.h + CGAL/Kernel_d/Segment_d.h + CGAL/Kernel_d/Sphere_d.h + CGAL/Kernel_d/Vector_d.h + CGAL/Kernel_traits.h + CGAL/Labeled_image_mesh_domain_3.h + CGAL/Labeled_mesh_domain_3.h + CGAL/Largest_empty_iso_rectangle_2.h + CGAL/Lazy_exact_nt.h + CGAL/Level_interval.h + CGAL/Line_2.h + CGAL/Line_3.h + CGAL/Line_arc_2.h + CGAL/Line_arc_3.h + CGAL/Linear_algebraCd.h + CGAL/Linear_algebraHd.h + CGAL/Linear_cell_complex.h + CGAL/Linear_cell_complex_bgl_min_items.h + CGAL/Linear_cell_complex_constructors.h + CGAL/Linear_cell_complex_for_bgl_combinatorial_map_helper.h + CGAL/Linear_cell_complex_for_combinatorial_map.h + CGAL/Linear_cell_complex_for_generalized_map.h + CGAL/Linear_cell_complex_min_items.h + CGAL/Linear_cell_complex_operations.h + CGAL/Linear_cell_complex_traits.h + CGAL/Location_policy.h + CGAL/MP_Float.h + CGAL/Manhattan_distance_iso_box_point.h + CGAL/Mean_curvature_flow_skeletonization.h + CGAL/Memory_sizer.h + CGAL/Mesh_2/Face_badness.h + CGAL/Mesh_3/initialize_triangulation_from_labeled_image.h + CGAL/Mesh_3/polylines_to_protect.h + CGAL/Mesh_cell_base_3.h + CGAL/Mesh_cell_criteria_3.h + CGAL/Mesh_complex_3_in_triangulation_3.h + CGAL/Mesh_constant_domain_field_3.h + CGAL/Mesh_criteria_3.h + CGAL/Mesh_domain_with_polyline_features_3.h + CGAL/Mesh_edge_criteria_3.h + CGAL/Mesh_facet_criteria_3.h + CGAL/Mesh_facet_topology.h + CGAL/Mesh_optimization_return_code.h + CGAL/Mesh_polyhedron_3.h + CGAL/Mesh_triangulation_3.h + CGAL/Mesh_vertex_base_3.h + CGAL/Min_annulus_d.h + CGAL/Min_circle_2.h + CGAL/Min_circle_2_traits_2.h + CGAL/Min_ellipse_2.h + CGAL/Min_ellipse_2_traits_2.h + CGAL/Min_quadrilateral_traits_2.h + CGAL/Min_sphere_annulus_d_traits_2.h + CGAL/Min_sphere_annulus_d_traits_3.h + CGAL/Min_sphere_annulus_d_traits_d.h + CGAL/Min_sphere_d.h + CGAL/Min_sphere_of_points_d_traits_2.h + CGAL/Min_sphere_of_points_d_traits_3.h + CGAL/Min_sphere_of_points_d_traits_d.h + CGAL/Min_sphere_of_spheres_d.h + CGAL/Min_sphere_of_spheres_d_traits_2.h + CGAL/Min_sphere_of_spheres_d_traits_3.h + CGAL/Min_sphere_of_spheres_d_traits_d.h + CGAL/Mixed_integer_program_traits.h + CGAL/Modifier_base.h + CGAL/Modular_traits.h + CGAL/Monge_via_jet_fitting.h + CGAL/Mpzf.h + CGAL/Multiscale_sort.h + CGAL/Multiset.h + CGAL/NT_converter.h + CGAL/Nef_nary_union_3.h + CGAL/Nef_polyhedron_2.h + CGAL/Nef_polyhedron_3.h + CGAL/Nef_polyhedron_S2.h + CGAL/Number_type_checker.h + CGAL/OFF_to_nef_3.h + CGAL/Object.h + CGAL/OpenGR/compute_registration_transformation.h + CGAL/OpenGR/register_point_sets.h + CGAL/Optimal_bounding_box/Oriented_bounding_box_traits_3.h + CGAL/Optimal_bounding_box/oriented_bounding_box.h + CGAL/Optimal_transportation_reconstruction_2.h + CGAL/Origin.h + CGAL/Orthogonal_incremental_neighbor_search.h + CGAL/Orthogonal_k_neighbor_search.h + CGAL/Partition_is_valid_traits_2.h + CGAL/Partition_traits_2.h + CGAL/Path_on_surface.h + CGAL/Periodic_2_Delaunay_triangulation_2.h + CGAL/Periodic_2_Delaunay_triangulation_traits_2.h + CGAL/Periodic_2_offset_2.h + CGAL/Periodic_2_triangulation_2.h + CGAL/Periodic_2_triangulation_face_base_2.h + CGAL/Periodic_2_triangulation_hierarchy_2.h + CGAL/Periodic_2_triangulation_traits_2.h + CGAL/Periodic_2_triangulation_vertex_base_2.h + CGAL/Periodic_3_Delaunay_triangulation_3.h + CGAL/Periodic_3_Delaunay_triangulation_traits_3.h + CGAL/Periodic_3_function_wrapper.h + CGAL/Periodic_3_mesh_3/IO/File_medit.h + CGAL/Periodic_3_mesh_3/config.h + CGAL/Periodic_3_mesh_triangulation_3.h + CGAL/Periodic_3_offset_3.h + CGAL/Periodic_3_regular_triangulation_3.h + CGAL/Periodic_3_regular_triangulation_traits_3.h + CGAL/Periodic_3_triangulation_3.h + CGAL/Periodic_3_triangulation_ds_cell_base_3.h + CGAL/Periodic_3_triangulation_ds_vertex_base_3.h + CGAL/Periodic_3_triangulation_hierarchy_3.h + CGAL/Periodic_3_triangulation_traits_3.h + CGAL/Periodic_4_hyperbolic_Delaunay_triangulation_2.h + CGAL/Periodic_4_hyperbolic_Delaunay_triangulation_traits_2.h + CGAL/Periodic_4_hyperbolic_triangulation_2.h + CGAL/Periodic_4_hyperbolic_triangulation_face_base_2.h + CGAL/Periodic_4_hyperbolic_triangulation_vertex_base_2.h + CGAL/Plane_3.h + CGAL/Plane_separator.h + CGAL/Point_2.h + CGAL/Point_3.h + CGAL/Point_container.h + CGAL/Point_set_2.h + CGAL/Point_set_3.h + CGAL/Point_set_3/IO.h + CGAL/Poisson_reconstruction_function.h + CGAL/Polygon_2.h + CGAL/Polygon_2_algorithms.h + CGAL/Polygon_convex_decomposition_2.h + CGAL/Polygon_mesh_processing/bbox.h + CGAL/Polygon_mesh_processing/border.h + CGAL/Polygon_mesh_processing/clip.h + CGAL/Polygon_mesh_processing/compute_normal.h + CGAL/Polygon_mesh_processing/connected_components.h + CGAL/Polygon_mesh_processing/corefinement.h + CGAL/Polygon_mesh_processing/detect_features.h + CGAL/Polygon_mesh_processing/distance.h + CGAL/Polygon_mesh_processing/extrude.h + CGAL/Polygon_mesh_processing/fair.h + CGAL/Polygon_mesh_processing/intersection.h + CGAL/Polygon_mesh_processing/locate.h + CGAL/Polygon_mesh_processing/manifoldness.h + CGAL/Polygon_mesh_processing/measure.h + CGAL/Polygon_mesh_processing/merge_border_vertices.h + CGAL/Polygon_mesh_processing/orient_polygon_soup.h + CGAL/Polygon_mesh_processing/orient_polygon_soup_extension.h + CGAL/Polygon_mesh_processing/orientation.h + CGAL/Polygon_mesh_processing/polygon_mesh_to_polygon_soup.h + CGAL/Polygon_mesh_processing/polygon_soup_to_polygon_mesh.h + CGAL/Polygon_mesh_processing/random_perturbation.h + CGAL/Polygon_mesh_processing/refine.h + CGAL/Polygon_mesh_processing/remesh.h + CGAL/Polygon_mesh_processing/repair.h + CGAL/Polygon_mesh_processing/repair_degeneracies.h + CGAL/Polygon_mesh_processing/repair_polygon_soup.h + CGAL/Polygon_mesh_processing/repair_self_intersections.h + CGAL/Polygon_mesh_processing/self_intersections.h + CGAL/Polygon_mesh_processing/shape_predicates.h + CGAL/Polygon_mesh_processing/smooth_mesh.h + CGAL/Polygon_mesh_processing/smooth_shape.h + CGAL/Polygon_mesh_processing/stitch_borders.h + CGAL/Polygon_mesh_processing/transform.h + CGAL/Polygon_mesh_processing/triangulate_faces.h + CGAL/Polygon_mesh_processing/triangulate_hole.h + CGAL/Polygon_mesh_slicer.h + CGAL/Polygon_nop_decomposition_2.h + CGAL/Polygon_offset_builder_2.h + CGAL/Polygon_offset_builder_traits_2.h + CGAL/Polygon_set_2.h + CGAL/Polygon_triangulation_decomposition_2.h + CGAL/Polygon_vertical_decomposition_2.h + CGAL/Polygon_with_holes_2.h + CGAL/Polygonal_schema.h + CGAL/Polygonal_schema_min_items.h + CGAL/Polygonal_surface_reconstruction.h + CGAL/Polyhedral_complex_mesh_domain_3.h + CGAL/Polyhedral_mesh_domain_3.h + CGAL/Polyhedral_mesh_domain_with_features_3.h + CGAL/Polyhedron_3.h + CGAL/Polyhedron_3_to_lcc.h + CGAL/Polyhedron_incremental_builder_3.h + CGAL/Polyhedron_items_3.h + CGAL/Polyhedron_items_with_id_3.h + CGAL/Polyhedron_min_items_3.h + CGAL/Polyhedron_traits_3.h + CGAL/Polyhedron_traits_with_normals_3.h + CGAL/Polyline_simplification_2/Hybrid_squared_distance_cost.h + CGAL/Polyline_simplification_2/Scaled_squared_distance_cost.h + CGAL/Polyline_simplification_2/Squared_distance_cost.h + CGAL/Polyline_simplification_2/Stop_above_cost_threshold.h + CGAL/Polyline_simplification_2/Stop_below_count_ratio_threshold.h + CGAL/Polyline_simplification_2/Stop_below_count_threshold.h + CGAL/Polyline_simplification_2/Vertex_base_2.h + CGAL/Polyline_simplification_2/simplify.h + CGAL/Polynomial.h + CGAL/Polynomial_traits_d.h + CGAL/Polynomial_type_generator.h + CGAL/Polynomials_1_2.h + CGAL/Polynomials_1_3.h + CGAL/Polynomials_2_2.h + CGAL/Polynomials_2_3.h + CGAL/Polynomials_for_line_3.h + CGAL/Polytope_distance_d.h + CGAL/Polytope_distance_d_traits_2.h + CGAL/Polytope_distance_d_traits_3.h + CGAL/Polytope_distance_d_traits_d.h + CGAL/Profile_counter.h + CGAL/Projection_traits_xy_3.h + CGAL/Projection_traits_xz_3.h + CGAL/Projection_traits_yz_3.h + CGAL/QP_functions.h + CGAL/QP_models.h + CGAL/QP_options.h + CGAL/QP_solution.h + CGAL/Qt/CircularArcGraphicsItem.h + CGAL/Qt/ConstrainedTriangulationGraphicsItem.h + CGAL/Qt/Converter.h + CGAL/Qt/GraphicsItem.h + CGAL/Qt/GraphicsViewCircleInput.h + CGAL/Qt/GraphicsViewCircularArcInput.h + CGAL/Qt/GraphicsViewInput.h + CGAL/Qt/GraphicsViewIsoRectangleInput.h + CGAL/Qt/GraphicsViewNavigation.h + CGAL/Qt/GraphicsViewPolylineInput.h + CGAL/Qt/PainterOstream.h + CGAL/Qt/TriangulationGraphicsItem.h + CGAL/Qt/VoronoiGraphicsItem.h + CGAL/Quotient.h + CGAL/Random.h + CGAL/Random_convex_set_traits_2.h + CGAL/Range_segment_tree_traits.h + CGAL/Range_tree_d.h + CGAL/Range_tree_k.h + CGAL/Rational_traits.h + CGAL/Ray_2.h + CGAL/Ray_3.h + CGAL/Real_embeddable_traits.h + CGAL/Real_timer.h + CGAL/Regular_grid_2.h + CGAL/Regular_triangulation.h + CGAL/Regular_triangulation_2.h + CGAL/Regular_triangulation_3.h + CGAL/Regular_triangulation_adaptation_policies_2.h + CGAL/Regular_triangulation_adaptation_traits_2.h + CGAL/Regular_triangulation_cell_base_3.h + CGAL/Regular_triangulation_cell_base_with_weighted_circumcenter_3.h + CGAL/Regular_triangulation_euclidean_traits_3.h + CGAL/Regular_triangulation_face_base_2.h + CGAL/Regular_triangulation_traits_adapter.h + CGAL/Regular_triangulation_vertex_base_2.h + CGAL/Regular_triangulation_vertex_base_3.h + CGAL/Regularization/regularize_planes.h + CGAL/Residue.h + CGAL/Ridges.h + CGAL/Rigid_triangle_mesh_collision_detection.h + CGAL/Robust_weighted_circumcenter_filtered_traits_3.h + CGAL/Root_for_circles_2_2.h + CGAL/Root_for_spheres_2_3.h + CGAL/Root_of_traits.h + CGAL/Rotational_sweep_visibility_2.h + CGAL/Runge_kutta_integrator_2.h + CGAL/SCIP_mixed_integer_program_traits.h + CGAL/Scale_space_reconstruction_3/Advancing_front_mesher.h + CGAL/Scale_space_reconstruction_3/Alpha_shape_mesher.h + CGAL/Scale_space_reconstruction_3/Jet_smoother.h + CGAL/Scale_space_reconstruction_3/Weighted_PCA_smoother.h + CGAL/Scale_space_surface_reconstruction_3.h + CGAL/Search_traits.h + CGAL/Search_traits_2.h + CGAL/Search_traits_3.h + CGAL/Search_traits_adapter.h + CGAL/Search_traits_d.h + CGAL/Segment_2.h + CGAL/Segment_3.h + CGAL/Segment_Delaunay_graph_2.h + CGAL/Segment_Delaunay_graph_Linf_2.h + CGAL/Segment_Delaunay_graph_Linf_filtered_traits_2.h + CGAL/Segment_Delaunay_graph_Linf_hierarchy_2.h + CGAL/Segment_Delaunay_graph_Linf_traits_2.h + CGAL/Segment_Delaunay_graph_adaptation_policies_2.h + CGAL/Segment_Delaunay_graph_adaptation_traits_2.h + CGAL/Segment_Delaunay_graph_filtered_traits_2.h + CGAL/Segment_Delaunay_graph_hierarchy_2.h + CGAL/Segment_Delaunay_graph_hierarchy_vertex_base_2.h + CGAL/Segment_Delaunay_graph_site_2.h + CGAL/Segment_Delaunay_graph_storage_site_2.h + CGAL/Segment_Delaunay_graph_traits_2.h + CGAL/Segment_Delaunay_graph_vertex_base_2.h + CGAL/Segment_tree_d.h + CGAL/Segment_tree_k.h + CGAL/Set_movable_separability_2/Single_mold_translational_casting/is_pullout_direction.h + CGAL/Set_movable_separability_2/Single_mold_translational_casting/pullout_directions.h + CGAL/Set_movable_separability_2/Single_mold_translational_casting/top_edges.h + CGAL/Shape_detection/Efficient_RANSAC/Cone.h + CGAL/Shape_detection/Efficient_RANSAC/Cylinder.h + CGAL/Shape_detection/Efficient_RANSAC/Efficient_RANSAC.h + CGAL/Shape_detection/Efficient_RANSAC/Efficient_RANSAC_traits.h + CGAL/Shape_detection/Efficient_RANSAC/Plane.h + CGAL/Shape_detection/Efficient_RANSAC/Shape_base.h + CGAL/Shape_detection/Efficient_RANSAC/Sphere.h + CGAL/Shape_detection/Efficient_RANSAC/Torus.h + CGAL/Shape_detection/Efficient_RANSAC/property_map.h + CGAL/Shape_detection/Region_growing/Region_growing.h + CGAL/Shape_detection/Region_growing/Region_growing_on_point_set/K_neighbor_query.h + CGAL/Shape_detection/Region_growing/Region_growing_on_point_set/Least_squares_line_fit_region.h + CGAL/Shape_detection/Region_growing/Region_growing_on_point_set/Least_squares_line_fit_sorting.h + CGAL/Shape_detection/Region_growing/Region_growing_on_point_set/Least_squares_plane_fit_region.h + CGAL/Shape_detection/Region_growing/Region_growing_on_point_set/Least_squares_plane_fit_sorting.h + CGAL/Shape_detection/Region_growing/Region_growing_on_point_set/Sphere_neighbor_query.h + CGAL/Shape_detection/Region_growing/Region_growing_on_polygon_mesh/Least_squares_plane_fit_region.h + CGAL/Shape_detection/Region_growing/Region_growing_on_polygon_mesh/Least_squares_plane_fit_sorting.h + CGAL/Shape_detection/Region_growing/Region_growing_on_polygon_mesh/One_ring_neighbor_query.h + CGAL/Shape_detection/deprecated/Region_growing.h + CGAL/Shape_detection/deprecated/Shape_detection_traits.h + CGAL/Side_of_triangle_mesh.h + CGAL/Simple_cartesian.h + CGAL/Simple_homogeneous.h + CGAL/Simple_polygon_visibility_2.h + CGAL/Sixtuple.h + CGAL/Skin_surface_3.h + CGAL/Skin_surface_polyhedral_items_3.h + CGAL/Skin_surface_traits_3.h + CGAL/Small_side_angle_bisector_decomposition_2.h + CGAL/Snap_rounding_2.h + CGAL/Snap_rounding_traits_2.h + CGAL/Sorted_matrix_search_traits_adaptor.h + CGAL/Spatial_lock_grid_3.h + CGAL/Spatial_sort_traits_adapter_2.h + CGAL/Spatial_sort_traits_adapter_3.h + CGAL/Spatial_sort_traits_adapter_d.h + CGAL/Sphere_3.h + CGAL/Spherical_kernel_3.h + CGAL/Spherical_kernel_intersections.h + CGAL/Splitters.h + CGAL/Sqrt_extension.h + CGAL/Straight_skeleton_2.h + CGAL/Straight_skeleton_builder_2.h + CGAL/Straight_skeleton_builder_traits_2.h + CGAL/Straight_skeleton_converter_2.h + CGAL/Straight_skeleton_face_base_2.h + CGAL/Straight_skeleton_halfedge_base_2.h + CGAL/Straight_skeleton_vertex_base_2.h + CGAL/Stream_lines_2.h + CGAL/Subdivision_method_3/subdivision_hosts_3.h + CGAL/Subdivision_method_3/subdivision_masks_3.h + CGAL/Subdivision_method_3/subdivision_methods_3.h + CGAL/Surface_mesh.h + CGAL/Surface_mesh/Surface_mesh.h + CGAL/Surface_mesh_approximation/L21_metric_plane_proxy.h + CGAL/Surface_mesh_approximation/L2_metric_plane_proxy.h + CGAL/Surface_mesh_approximation/approximate_triangle_mesh.h + CGAL/Surface_mesh_cell_base_3.h + CGAL/Surface_mesh_complex_2_in_triangulation_3.h + CGAL/Surface_mesh_default_criteria_3.h + CGAL/Surface_mesh_default_triangulation_3.h + CGAL/Surface_mesh_deformation.h + CGAL/Surface_mesh_parameterization/ARAP_parameterizer_3.h + CGAL/Surface_mesh_parameterization/Barycentric_mapping_parameterizer_3.h + CGAL/Surface_mesh_parameterization/Circular_border_parameterizer_3.h + CGAL/Surface_mesh_parameterization/Discrete_authalic_parameterizer_3.h + CGAL/Surface_mesh_parameterization/Discrete_conformal_map_parameterizer_3.h + CGAL/Surface_mesh_parameterization/Error_code.h + CGAL/Surface_mesh_parameterization/Fixed_border_parameterizer_3.h + CGAL/Surface_mesh_parameterization/LSCM_parameterizer_3.h + CGAL/Surface_mesh_parameterization/MVC_post_processor_3.h + CGAL/Surface_mesh_parameterization/Mean_value_coordinates_parameterizer_3.h + CGAL/Surface_mesh_parameterization/Orbifold_Tutte_parameterizer_3.h + CGAL/Surface_mesh_parameterization/Square_border_parameterizer_3.h + CGAL/Surface_mesh_parameterization/Two_vertices_parameterizer_3.h + CGAL/Surface_mesh_parameterization/orbifold_enums.h + CGAL/Surface_mesh_parameterization/orbifold_shortest_path.h + CGAL/Surface_mesh_parameterization/parameterize.h + CGAL/Surface_mesh_shortest_path.h + CGAL/Surface_mesh_shortest_path/Surface_mesh_shortest_path.h + CGAL/Surface_mesh_shortest_path/Surface_mesh_shortest_path_traits.h + CGAL/Surface_mesh_simplification/Edge_collapse_visitor_base.h + CGAL/Surface_mesh_simplification/Policies/Edge_collapse/Bounded_distance_placement.h + CGAL/Surface_mesh_simplification/Policies/Edge_collapse/Bounded_normal_change_placement.h + CGAL/Surface_mesh_simplification/Policies/Edge_collapse/Constrained_placement.h + CGAL/Surface_mesh_simplification/Policies/Edge_collapse/Count_ratio_stop_predicate.h + CGAL/Surface_mesh_simplification/Policies/Edge_collapse/Count_stop_predicate.h + CGAL/Surface_mesh_simplification/Policies/Edge_collapse/Edge_length_cost.h + CGAL/Surface_mesh_simplification/Policies/Edge_collapse/Edge_length_stop_predicate.h + CGAL/Surface_mesh_simplification/Policies/Edge_collapse/Edge_profile.h + CGAL/Surface_mesh_simplification/Policies/Edge_collapse/GarlandHeckbert_policies.h + CGAL/Surface_mesh_simplification/Policies/Edge_collapse/LindstromTurk_cost.h + CGAL/Surface_mesh_simplification/Policies/Edge_collapse/LindstromTurk_placement.h + CGAL/Surface_mesh_simplification/Policies/Edge_collapse/Midpoint_placement.h + CGAL/Surface_mesh_simplification/edge_collapse.h + CGAL/Surface_mesh_traits_generator_3.h + CGAL/Surface_mesh_vertex_base_3.h + CGAL/Surface_mesher/Poisson_implicit_surface_oracle_3.h + CGAL/Surface_sweep_2_algorithms.h + CGAL/Tetrahedral_remeshing/Remeshing_cell_base_3.h + CGAL/Tetrahedral_remeshing/Remeshing_triangulation_3.h + CGAL/Tetrahedral_remeshing/Remeshing_vertex_base_3.h + CGAL/Tetrahedral_remeshing/Sizing_field.h + CGAL/Tetrahedron_3.h + CGAL/Three/Buffer_objects.h + CGAL/Three/Edge_container.h + CGAL/Three/Point_container.h + CGAL/Three/Polyhedron_demo_io_plugin_interface.h + CGAL/Three/Polyhedron_demo_plugin_helper.h + CGAL/Three/Polyhedron_demo_plugin_interface.h + CGAL/Three/Primitive_container.h + CGAL/Three/Scene_draw_interface.h + CGAL/Three/Scene_group_item.h + CGAL/Three/Scene_interface.h + CGAL/Three/Scene_item.h + CGAL/Three/Scene_item_rendering_helper.h + CGAL/Three/Scene_item_with_properties.h + CGAL/Three/Scene_print_item_interface.h + CGAL/Three/Scene_transparent_interface.h + CGAL/Three/Scene_zoomable_item_interface.h + CGAL/Three/TextRenderer.h + CGAL/Three/Triangle_container.h + CGAL/Three/Viewer_interface.h + CGAL/Threetuple.h + CGAL/Timer.h + CGAL/Tree_base.h + CGAL/Tree_traits.h + CGAL/Triangle_2.h + CGAL/Triangle_3.h + CGAL/Triangle_accessor_3.h + CGAL/Triangular_expansion_visibility_2.h + CGAL/Triangular_field_2.h + CGAL/Triangulation.h + CGAL/Triangulation_2.h + CGAL/Triangulation_3.h + CGAL/Triangulation_3_to_lcc.h + CGAL/Triangulation_cell_base_3.h + CGAL/Triangulation_cell_base_with_info_3.h + CGAL/Triangulation_conformer_2.h + CGAL/Triangulation_data_structure.h + CGAL/Triangulation_data_structure_2.h + CGAL/Triangulation_data_structure_3.h + CGAL/Triangulation_ds_cell_base_3.h + CGAL/Triangulation_ds_face_base_2.h + CGAL/Triangulation_ds_full_cell.h + CGAL/Triangulation_ds_vertex.h + CGAL/Triangulation_ds_vertex_base_2.h + CGAL/Triangulation_ds_vertex_base_3.h + CGAL/Triangulation_face.h + CGAL/Triangulation_face_base_2.h + CGAL/Triangulation_face_base_with_id_2.h + CGAL/Triangulation_face_base_with_info_2.h + CGAL/Triangulation_full_cell.h + CGAL/Triangulation_hierarchy_2.h + CGAL/Triangulation_simplex_3.h + CGAL/Triangulation_utils_3.h + CGAL/Triangulation_vertex.h + CGAL/Triangulation_vertex_base_2.h + CGAL/Triangulation_vertex_base_3.h + CGAL/Triangulation_vertex_base_with_id_2.h + CGAL/Triangulation_vertex_base_with_info_2.h + CGAL/Triangulation_vertex_base_with_info_3.h + CGAL/Twotuple.h + CGAL/Umbilics.h + CGAL/Uncertain.h + CGAL/Union_find.h + CGAL/Union_of_balls_3.h + CGAL/Unique_hash_map.h + CGAL/Variational_shape_approximation.h + CGAL/Vector_2.h + CGAL/Vector_3.h + CGAL/Voronoi_diagram_2.h + CGAL/Voronoi_intersection_2_traits_3.h + CGAL/Weighted_Minkowski_distance.h + CGAL/Weighted_alpha_shape_euclidean_traits_2.h + CGAL/Weighted_point_2.h + CGAL/Weighted_point_3.h + CGAL/Width_3.h + CGAL/Width_default_traits_3.h + CGAL/aff_transformation_tags.h + CGAL/algorithm.h + CGAL/all_furthest_neighbors_2.h + CGAL/approximated_offset_2.h + CGAL/arrange_offset_polygons_2.h + CGAL/array.h + CGAL/assertions.h + CGAL/assertions_behaviour.h + CGAL/barycenter.h + CGAL/basic.h + CGAL/bilateral_smooth_point_set.h + CGAL/boost/graph/Dual.h + CGAL/boost/graph/Euler_operations.h + CGAL/boost/graph/Face_filtered_graph.h + CGAL/boost/graph/Graph_with_descriptor_with_graph.h + CGAL/boost/graph/METIS/partition_dual_graph.h + CGAL/boost/graph/METIS/partition_graph.h + CGAL/boost/graph/Seam_mesh.h + CGAL/boost/graph/alpha_expansion_graphcut.h + CGAL/boost/graph/convert_nef_polyhedron_to_polygon_mesh.h + CGAL/boost/graph/copy_face_graph.h + CGAL/boost/graph/generators.h + CGAL/boost/graph/graph_traits_PolyMesh_ArrayKernelT.h + CGAL/boost/graph/graph_traits_inheritance_macros.h + CGAL/boost/graph/helpers.h + CGAL/boost/graph/io.h + CGAL/boost/graph/iterator.h + CGAL/boost/graph/partition.h + CGAL/boost/graph/properties.h + CGAL/boost/graph/selection.h + CGAL/boost/graph/split_graph_into_polylines.h + CGAL/boost/iterator/transform_iterator.hpp + CGAL/boost_mp.h + CGAL/bounding_box.h + CGAL/box_intersection_d.h + CGAL/cartesian_homogeneous_conversion.h + CGAL/centroid.h + CGAL/ch_akl_toussaint.h + CGAL/ch_bykat.h + CGAL/ch_eddy.h + CGAL/ch_graham_andrew.h + CGAL/ch_jarvis.h + CGAL/ch_melkman.h + CGAL/ch_selected_extreme_points_2.h + CGAL/circulator.h + CGAL/circulator_bases.h + CGAL/cluster_point_set.h + CGAL/compute_average_spacing.h + CGAL/compute_outer_frame_margin.h + CGAL/config.h + CGAL/connect_holes.h + CGAL/constructions_d.h + CGAL/convex_decomposition_3.h + CGAL/convex_hull_2.h + CGAL/convex_hull_3.h + CGAL/convex_hull_3_to_face_graph.h + CGAL/convex_hull_constructive_traits_2.h + CGAL/convex_hull_traits_2.h + CGAL/convexity_check_2.h + CGAL/convexity_check_3.h + CGAL/create_offset_polygons_2.h + CGAL/create_offset_polygons_from_polygon_with_holes_2.h + CGAL/create_straight_skeleton_2.h + CGAL/create_straight_skeleton_from_polygon_with_holes_2.h + CGAL/double.h + CGAL/draw_face_graph_with_paths.h + CGAL/draw_linear_cell_complex.h + CGAL/draw_nef_3.h + CGAL/draw_periodic_2_triangulation_2.h + CGAL/draw_point_set_3.h + CGAL/draw_polygon_2.h + CGAL/draw_polygon_with_holes_2.h + CGAL/draw_polyhedron.h + CGAL/draw_surface_mesh.h + CGAL/draw_triangulation_2.h + CGAL/draw_triangulation_3.h + CGAL/draw_voronoi_diagram_2.h + CGAL/edge_aware_upsample_point_set.h + CGAL/enum.h + CGAL/envelope_2.h + CGAL/envelope_3.h + CGAL/estimate_scale.h + CGAL/extract_mean_curvature_flow_skeleton.h + CGAL/extremal_polygon_2.h + CGAL/exude_mesh_3.h + CGAL/float.h + CGAL/function_objects.h + CGAL/functional.h + CGAL/global_functions_circular_kernel_2.h + CGAL/global_functions_circular_kernel_3.h + CGAL/global_functions_spherical_kernel_3.h + CGAL/gmpxx.h + CGAL/gnuplot_output_2.h + CGAL/grid_simplify_point_set.h + CGAL/hierarchy_simplify_point_set.h + CGAL/hilbert_sort.h + CGAL/hilbert_sort_on_sphere.h + CGAL/int.h + CGAL/internal/Exact_type_selector.h + CGAL/internal/disable_deprecation_warnings_and_errors.h + CGAL/interpolation_functions.h + CGAL/intersections.h + CGAL/intersections_d.h + CGAL/is_y_monotone_2.h + CGAL/iterator.h + CGAL/jet_estimate_normals.h + CGAL/jet_smooth_point_set.h + CGAL/leda_bigfloat.h + CGAL/leda_integer.h + CGAL/leda_rational.h + CGAL/leda_real.h + CGAL/license/Mesh_3.h + CGAL/license/Surface_mesh_shortest_path.h + CGAL/linear_least_squares_fitting_2.h + CGAL/linear_least_squares_fitting_3.h + CGAL/link_to_face_graph.h + CGAL/lloyd_optimize_mesh_2.h + CGAL/lloyd_optimize_mesh_3.h + CGAL/long_double.h + CGAL/long_long.h + CGAL/make_mesh_3.h + CGAL/make_periodic_3_mesh_3.h + CGAL/make_skin_surface_mesh_3.h + CGAL/make_surface_mesh.h + CGAL/memory.h + CGAL/mesh_segmentation.h + CGAL/mesh_skin_surface_3.h + CGAL/min_quadrilateral_2.h + CGAL/minkowski_sum_2.h + CGAL/minkowski_sum_3.h + CGAL/monotone_matrix_search.h + CGAL/mst_orient_normals.h + CGAL/natural_neighbor_coordinates_2.h + CGAL/nearest_neighbor_delaunay_2.h + CGAL/number_type_config.h + CGAL/number_utils.h + CGAL/odt_optimize_mesh_3.h + CGAL/offset_polygon_2.h + CGAL/optimal_bounding_box.h + CGAL/Optimisation/assertions.h + CGAL/optimize_periodic_3_mesh_3.h + CGAL/partition_2.h + CGAL/partition_is_valid_2.h + CGAL/pca_estimate_normals.h + CGAL/perturb_mesh_3.h + CGAL/point_generators_2.h + CGAL/point_generators_3.h + CGAL/point_generators_d.h + CGAL/pointmatcher/compute_registration_transformation.h + CGAL/pointmatcher/register_point_sets.h + CGAL/poisson_surface_reconstruction.h + CGAL/polygon_function_objects.h + CGAL/polygon_mesh_processing.h + CGAL/polynomial_utils.h + CGAL/predicates_d.h + CGAL/property_map.h + CGAL/random_convex_hull_in_disc_2.h + CGAL/random_convex_set_2.h + CGAL/random_polygon_2.h + CGAL/random_selection.h + CGAL/random_simplify_point_set.h + CGAL/range_search_delaunay_2.h + CGAL/rational_rotation.h + CGAL/rectangular_p_center_2.h + CGAL/refine_mesh_3.h + CGAL/refine_periodic_3_mesh_3.h + CGAL/regular_neighbor_coordinates_2.h + CGAL/remove_outliers.h + CGAL/result_of.h + CGAL/sibson_gradient_fitting.h + CGAL/simplest_rational_in_interval.h + CGAL/sorted_matrix_search.h + CGAL/spatial_sort.h + CGAL/spatial_sort_on_sphere.h + CGAL/squared_distance_2.h + CGAL/structure_point_set.h + CGAL/subdivide_skin_surface_mesh_3.h + CGAL/subdivision_method_3.h + CGAL/surface_neighbor_coordinates_3.h + CGAL/surface_neighbors_3.h + CGAL/tags.h + CGAL/tetrahedral_remeshing.h + CGAL/to_rational.h + CGAL/utility.h + CGAL/utils.h + CGAL/utils_classes.h + CGAL/value_type_traits.h + CGAL/vcm_estimate_edges.h + CGAL/vcm_estimate_normals.h + CGAL/wlop_simplify_and_regularize_point_set.h + ]=]) +separate_arguments(list_of_documented_headers UNIX_COMMAND ${list_of_documented_headers_txt}) diff --git a/Installation/cmake/modules/list_of_whitelisted_headers.cmake b/Installation/cmake/modules/list_of_whitelisted_headers.cmake index bb6ffd5f932..60bd8d0889e 100644 --- a/Installation/cmake/modules/list_of_whitelisted_headers.cmake +++ b/Installation/cmake/modules/list_of_whitelisted_headers.cmake @@ -34,4 +34,4 @@ set(list_of_whitelisted_headers_txt [=[ ]=]) -separate_arguments(list_of_whitelisted_headers UNIX_COMMAND ${list_of_whitelisted_headers_txt}) +separate_arguments(example_files UNIX_COMMAND ${list_of_whitelisted_headers_txt}) From 221bbdd4b14652e14cfeab68b78ba495f3b56166 Mon Sep 17 00:00:00 2001 From: Maxime Gimeno Date: Thu, 8 Oct 2020 11:50:22 +0200 Subject: [PATCH 06/32] remove CMP code now that we only support from cmake 3.13 --- Installation/CMakeLists.txt | 2 +- .../CGAL_CreateSingleSourceCGALProgram.cmake | 11 ++--- .../cmake/modules/CGAL_TweakFindBoost.cmake | 22 ++++----- .../cmake/modules/CGAL_add_test.cmake | 46 +++++-------------- .../modules/list_of_whitelisted_headers.cmake | 2 +- .../init.cmake | 6 ++- .../init.cmake | 2 + 7 files changed, 33 insertions(+), 58 deletions(-) diff --git a/Installation/CMakeLists.txt b/Installation/CMakeLists.txt index fa79e141409..4215083ee41 100644 --- a/Installation/CMakeLists.txt +++ b/Installation/CMakeLists.txt @@ -1131,7 +1131,7 @@ You must disable CGAL_ENABLE_CHECK_HEADERS.") if(EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/../${package}/include) set(check_pkg_headers_depends "") # Then recurse2 - file(GLOB_RECURSE ${package}_HEADERS + file(GLOB_RECURSE ${package}_HEADERS #don't use a hard coded list because the ones for the documented headers is enough. RELATIVE "${CMAKE_CURRENT_SOURCE_DIR}/../${package}/include" "${CMAKE_CURRENT_SOURCE_DIR}/../${package}/include/CGAL/*.h*") list(SORT ${package}_HEADERS) diff --git a/Installation/cmake/modules/CGAL_CreateSingleSourceCGALProgram.cmake b/Installation/cmake/modules/CGAL_CreateSingleSourceCGALProgram.cmake index 18d7f418ce7..8317edd6e69 100644 --- a/Installation/cmake/modules/CGAL_CreateSingleSourceCGALProgram.cmake +++ b/Installation/cmake/modules/CGAL_CreateSingleSourceCGALProgram.cmake @@ -57,13 +57,10 @@ function(create_single_source_cgal_program firstfile ) set(NO_TESTING TRUE) endif() - if(POLICY CMP0064) - # CMake 3.4 or later - if(NOT NO_TESTING) - cgal_add_test(${exe_name}) - else() - cgal_add_test(${exe_name} NO_EXECUTION) - endif() + if(NOT NO_TESTING) + cgal_add_test(${exe_name}) + else() + cgal_add_test(${exe_name} NO_EXECUTION) endif() add_to_cached_list( CGAL_EXECUTABLE_TARGETS ${exe_name} ) diff --git a/Installation/cmake/modules/CGAL_TweakFindBoost.cmake b/Installation/cmake/modules/CGAL_TweakFindBoost.cmake index 312e347f6dc..9a1c434e617 100644 --- a/Installation/cmake/modules/CGAL_TweakFindBoost.cmake +++ b/Installation/cmake/modules/CGAL_TweakFindBoost.cmake @@ -1,33 +1,31 @@ # - Defines Boost_USE_STATIC_LIBS and Boost_ADDITIONAL_VERSIONS -# +# # This module sets the CMake variables: -# +# # == Boost_USE_STATIC_LIBS == -# +# # The option CGAL_Boost_USE_STATIC_LIBS is created in the cache, as # advanced option. If CGALConfig.cmake has been loaded, the default value # of that option is the value loaded from CGALConfig.cmake (this file was # created during the configuration of CGAL libraries). Otherwise, the # default value of that option is OFF. -# +# # The variable Boost_USE_STATIC_LIBS is set to the value of the option # CGAL_Boost_USE_STATIC_LIBS. -# +# # Additionally, if Boost_USE_STATIC_LIBS is OFF, and the auto-linking is # enabled, the definition BOOST_ALL_DYN_LINK is added to # CGAL_3RD_PARTY_DEFINITIONS, so that the auto-linking feature on Windows # knows that it must search for dynamic libraries. -# +# # == Boost_ADDITIONAL_VERSIONS == -# +# # The variable Boost_ADDITIONAL_VERSIONS is filled with a long list of # Boost versions. That allows the module FindBoost to find more recent # Boost versions, even if the file FindBoost.cmake is old. if( NOT CGAL_TweakFindBoost ) - if(POLICY CMP0077) - cmake_policy(SET CMP0077 NEW) - endif() + cmake_policy(SET CMP0077 NEW) if(DEFINED CGAL_Boost_USE_STATIC_LIBS) # If the option is loaded from CGALConfig.cmake, use its value as default # value. But the user will still have the choice to change the @@ -50,7 +48,7 @@ if( NOT CGAL_TweakFindBoost ) option(CGAL_Boost_USE_STATIC_LIBS "Link with static Boost libraries" ${CGAL_Boost_USE_STATIC_LIBS_DEFAULT}) mark_as_advanced(CGAL_Boost_USE_STATIC_LIBS) - if(CGAL_Boost_USE_STATIC_LIBS) + if(CGAL_Boost_USE_STATIC_LIBS) set(Boost_USE_STATIC_LIBS ON) else() set(Boost_USE_STATIC_LIBS OFF) @@ -60,7 +58,7 @@ if( NOT CGAL_TweakFindBoost ) list(APPEND CGAL_3RD_PARTY_DEFINITIONS -DBOOST_ALL_DYN_LINK) set(CGAL_3RD_PARTY_DEFINITIONS "${CGAL_3RD_PARTY_DEFINITIONS}" - CACHE INTERNAL "3rd party definitions for CGAL") + CACHE INTERNAL "3rd party definitions for CGAL") endif() endif() diff --git a/Installation/cmake/modules/CGAL_add_test.cmake b/Installation/cmake/modules/CGAL_add_test.cmake index f6f0ec7deeb..7a6ec1197bb 100644 --- a/Installation/cmake/modules/CGAL_add_test.cmake +++ b/Installation/cmake/modules/CGAL_add_test.cmake @@ -5,25 +5,6 @@ set(CGAL_add_test_included TRUE) option(BUILD_TESTING "Build the testing tree." OFF) -if(NOT POLICY CMP0064) - # CMake <= 3.3 - if(BUILD_TESTING) - message(WARNING - "CGAL CTest support requires CMake 3.4 or later.\n" - "You must either disable BUILD_TESTING or upgrade CMake.") - endif() - - # Add a fake function to avoid CMake errors - function(cgal_add_compilation_test) - endfunction() - # Add a fake function to avoid CMake errors - function(cgal_setup_test_properties) - endfunction() - - # Then return, to exit the file - return() -endif() - if(BUILD_TESTING) enable_testing() endif() @@ -94,7 +75,7 @@ function(expand_list_with_globbing list_name) endfunction() function(cgal_add_compilation_test exe_name) - if(NOT POLICY CMP0064 OR TEST compilation_of__${exe_name}) + if(TEST compilation_of__${exe_name}) return() endif() add_test(NAME "compilation_of__${exe_name}" @@ -111,15 +92,11 @@ function(cgal_add_compilation_test exe_name) COMMAND "${CMAKE_COMMAND}" --build "${CMAKE_BINARY_DIR}" --target "cgal_check_build_system" --config "$") set_property(TEST "check_build_system" APPEND PROPERTY LABELS "${PROJECT_NAME}") - if(POLICY CMP0066) # cmake 3.7 or later - set_property(TEST "check_build_system" - PROPERTY FIXTURES_SETUP "check_build_system_SetupFixture") - endif() - endif() - if(POLICY CMP0066) # cmake 3.7 or later - set_property(TEST "compilation_of__${exe_name}" - APPEND PROPERTY FIXTURES_REQUIRED "check_build_system_SetupFixture") + set_property(TEST "check_build_system" + PROPERTY FIXTURES_SETUP "check_build_system_SetupFixture") endif() + set_property(TEST "compilation_of__${exe_name}" + APPEND PROPERTY FIXTURES_REQUIRED "check_build_system_SetupFixture") endfunction(cgal_add_compilation_test) option(CGAL_TEST_DRAW_FUNCTIONS "If set, the ctest command will not skip the tests of the draw functions.") @@ -147,8 +124,7 @@ function(cgal_setup_test_properties test_name) get_filename_component(_binary_dir_abs ${CMAKE_CURRENT_BINARY_DIR} ABSOLUTE) string(FIND "${_binary_dir_abs}" "${_source_dir_abs}" _search_binary_in_source) - if(_search_binary_in_source EQUAL "-1" - AND POLICY CMP0066) # CMake 3.7 or later + if(_search_binary_in_source EQUAL "-1") if(NOT TEST ${PROJECT_NAME}_SetupFixture) if(ANDROID) add_test(NAME ${PROJECT_NAME}_SetupFixture @@ -260,7 +236,7 @@ function(cgal_add_test exe_name) set(test_name "execution___of__${exe_name}") endif() # message(" test_name: ${test_name}") - if(cgal_add_test_NO_EXECUTION OR NOT POLICY CMP0064 OR TEST ${test_name}) + if(cgal_add_test_NO_EXECUTION OR TEST ${test_name}) return() endif() # message("Add test ${test_name}") @@ -303,11 +279,11 @@ function(cgal_add_test exe_name) set(ARGS) # message(STATUS "DEBUG test ${exe_name}") foreach(CMD_LINE ${CMD_LINES}) - # message(STATUS " command line: ${CMD_LINE}") + # message(STATUS " command line: ${CMD_LINE}") string(REGEX REPLACE "\#.*" "" CMD_LINE "${CMD_LINE}") - separate_arguments(CMD_LINE_ARGS UNIX_COMMAND ${CMD_LINE}) - # message(STATUS " args: ${CMD_LINE_ARGS}") - list(APPEND ARGS ${CMD_LINE_ARGS}) + separate_arguments(CMD_LINE_ARGS UNIX_COMMAND ${CMD_LINE}) + # message(STATUS " args: ${CMD_LINE_ARGS}") + list(APPEND ARGS ${CMD_LINE_ARGS}) endforeach() expand_list_with_globbing(ARGS) set_property(DIRECTORY ${CMAKE_CURRENT_SOURCE_DIR} diff --git a/Installation/cmake/modules/list_of_whitelisted_headers.cmake b/Installation/cmake/modules/list_of_whitelisted_headers.cmake index 60bd8d0889e..bb6ffd5f932 100644 --- a/Installation/cmake/modules/list_of_whitelisted_headers.cmake +++ b/Installation/cmake/modules/list_of_whitelisted_headers.cmake @@ -34,4 +34,4 @@ set(list_of_whitelisted_headers_txt [=[ ]=]) -separate_arguments(example_files UNIX_COMMAND ${list_of_whitelisted_headers_txt}) +separate_arguments(list_of_whitelisted_headers UNIX_COMMAND ${list_of_whitelisted_headers_txt}) diff --git a/Maintenance/infrastructure/gauguin.geometryfactory.com/reference_platforms/x64_Cygwin-Windows10_MSVC2017-Debug-64bits/init.cmake b/Maintenance/infrastructure/gauguin.geometryfactory.com/reference_platforms/x64_Cygwin-Windows10_MSVC2017-Debug-64bits/init.cmake index 5df00ea8e7b..14386bd1103 100644 --- a/Maintenance/infrastructure/gauguin.geometryfactory.com/reference_platforms/x64_Cygwin-Windows10_MSVC2017-Debug-64bits/init.cmake +++ b/Maintenance/infrastructure/gauguin.geometryfactory.com/reference_platforms/x64_Cygwin-Windows10_MSVC2017-Debug-64bits/init.cmake @@ -7,7 +7,7 @@ SET(CMAKE_CXX_FLAGS "/DWIN32 /D_WINDOWS /W3 /GR /EHsc -D_CRT_SECURE_NO_DEPRECATE SET(CMAKE_CXX_FLAGS_DEBUG "/D_DEBUG /MDd /Ob0 /Od /RTC1" CACHE STRING "") SET(CMAKE_CXX_FLAGS_RELEASE "/MD /O2 /Ob2 /DCGAL_NDEBUG" CACHE STRING "") - + SET(TBBROOT "C:/3rdPartyLibs/tbb2018_20170919oss" CACHE STRING "") SET(WITH_GMP ON CACHE BOOL "") @@ -20,6 +20,8 @@ SET(WITH_NTL OFF CACHE BOOL "") SET(WITH_demos ON CACHE BOOL "") +SET(CGAL_HEADER_ONLY ON CACHE BOOL "") + SET(Boost_DIR "C:\\3rdPartyLibs\\boost_master\\install_dir\\lib\\cmake\\Boost-1.71.0" CACHE PATH "") -SET(CGAL_Boost_USE_STATIC_LIBS ON CACHE BOOL "") +SET(CGAL_Boost_USE_STATIC_LIBS ON CACHE BOOL "") \ No newline at end of file diff --git a/Maintenance/infrastructure/gauguin.geometryfactory.com/reference_platforms/x64_Cygwin-Windows10_MSVC2017-Release-64bits/init.cmake b/Maintenance/infrastructure/gauguin.geometryfactory.com/reference_platforms/x64_Cygwin-Windows10_MSVC2017-Release-64bits/init.cmake index 31f030ec997..840d4c7eb32 100644 --- a/Maintenance/infrastructure/gauguin.geometryfactory.com/reference_platforms/x64_Cygwin-Windows10_MSVC2017-Release-64bits/init.cmake +++ b/Maintenance/infrastructure/gauguin.geometryfactory.com/reference_platforms/x64_Cygwin-Windows10_MSVC2017-Release-64bits/init.cmake @@ -21,3 +21,5 @@ SET(WITH_MPFR ON CACHE BOOL "") SET(WITH_NTL OFF CACHE BOOL "") SET(WITH_demos ON CACHE BOOL "") + +SET(CGAL_HEADER_ONLY ON CACHE BOOL "") From fe75ee4ee61a46a3d68f1246f0e826cd0a2e5fe5 Mon Sep 17 00:00:00 2001 From: Maxime Gimeno Date: Thu, 8 Oct 2020 13:42:42 +0200 Subject: [PATCH 07/32] restore CMP0077 --- .../cmake/modules/CGAL_TweakFindBoost.cmake | 22 ++++++++++--------- 1 file changed, 12 insertions(+), 10 deletions(-) diff --git a/Installation/cmake/modules/CGAL_TweakFindBoost.cmake b/Installation/cmake/modules/CGAL_TweakFindBoost.cmake index 9a1c434e617..312e347f6dc 100644 --- a/Installation/cmake/modules/CGAL_TweakFindBoost.cmake +++ b/Installation/cmake/modules/CGAL_TweakFindBoost.cmake @@ -1,31 +1,33 @@ # - Defines Boost_USE_STATIC_LIBS and Boost_ADDITIONAL_VERSIONS -# +# # This module sets the CMake variables: -# +# # == Boost_USE_STATIC_LIBS == -# +# # The option CGAL_Boost_USE_STATIC_LIBS is created in the cache, as # advanced option. If CGALConfig.cmake has been loaded, the default value # of that option is the value loaded from CGALConfig.cmake (this file was # created during the configuration of CGAL libraries). Otherwise, the # default value of that option is OFF. -# +# # The variable Boost_USE_STATIC_LIBS is set to the value of the option # CGAL_Boost_USE_STATIC_LIBS. -# +# # Additionally, if Boost_USE_STATIC_LIBS is OFF, and the auto-linking is # enabled, the definition BOOST_ALL_DYN_LINK is added to # CGAL_3RD_PARTY_DEFINITIONS, so that the auto-linking feature on Windows # knows that it must search for dynamic libraries. -# +# # == Boost_ADDITIONAL_VERSIONS == -# +# # The variable Boost_ADDITIONAL_VERSIONS is filled with a long list of # Boost versions. That allows the module FindBoost to find more recent # Boost versions, even if the file FindBoost.cmake is old. if( NOT CGAL_TweakFindBoost ) - cmake_policy(SET CMP0077 NEW) + if(POLICY CMP0077) + cmake_policy(SET CMP0077 NEW) + endif() if(DEFINED CGAL_Boost_USE_STATIC_LIBS) # If the option is loaded from CGALConfig.cmake, use its value as default # value. But the user will still have the choice to change the @@ -48,7 +50,7 @@ if( NOT CGAL_TweakFindBoost ) option(CGAL_Boost_USE_STATIC_LIBS "Link with static Boost libraries" ${CGAL_Boost_USE_STATIC_LIBS_DEFAULT}) mark_as_advanced(CGAL_Boost_USE_STATIC_LIBS) - if(CGAL_Boost_USE_STATIC_LIBS) + if(CGAL_Boost_USE_STATIC_LIBS) set(Boost_USE_STATIC_LIBS ON) else() set(Boost_USE_STATIC_LIBS OFF) @@ -58,7 +60,7 @@ if( NOT CGAL_TweakFindBoost ) list(APPEND CGAL_3RD_PARTY_DEFINITIONS -DBOOST_ALL_DYN_LINK) set(CGAL_3RD_PARTY_DEFINITIONS "${CGAL_3RD_PARTY_DEFINITIONS}" - CACHE INTERNAL "3rd party definitions for CGAL") + CACHE INTERNAL "3rd party definitions for CGAL") endif() endif() From af5d1ee5357aefc4b83c2c102dd3a2b038566ff0 Mon Sep 17 00:00:00 2001 From: Maxime Gimeno Date: Fri, 9 Oct 2020 11:16:23 +0200 Subject: [PATCH 08/32] fix list --- .../cmake/modules/list_of_documented_examples.cmake | 12 ------------ 1 file changed, 12 deletions(-) diff --git a/Installation/cmake/modules/list_of_documented_examples.cmake b/Installation/cmake/modules/list_of_documented_examples.cmake index c7b90cbc3cf..c910353d1d3 100644 --- a/Installation/cmake/modules/list_of_documented_examples.cmake +++ b/Installation/cmake/modules/list_of_documented_examples.cmake @@ -444,10 +444,6 @@ set(list_of_examples_txt [=[ Point_set_3/examples/Point_set_3/point_set_property.cpp Point_set_3/examples/Point_set_3/point_set_read_ply.cpp Point_set_3/examples/Point_set_3/point_set_read_xyz.cpp - Point_set_3/examples/build-Point_set_3-GCC-Debug/qrc_CGAL.cpp - Point_set_3/examples/build-Point_set_3-GCC-Debug/qrc_File.cpp - Point_set_3/examples/build-Point_set_3-GCC-Debug/qrc_Input.cpp - Point_set_3/examples/build-Point_set_3-GCC-Debug/qrc_Triangulation_2.cpp Point_set_processing_3/examples/Point_set_processing_3/average_spacing_example.cpp Point_set_processing_3/examples/Point_set_processing_3/bilateral_smooth_point_set_example.cpp Point_set_processing_3/examples/Point_set_processing_3/callback_example.cpp @@ -548,10 +544,6 @@ set(list_of_examples_txt [=[ Polyhedron/examples/Polyhedron/polyhedron_prog_vertex_color.cpp Polyhedron/examples/Polyhedron/polyhedron_prog_vertex_normal.cpp Polyhedron/examples/Polyhedron/polyhedron_self_intersection.cpp - Polyhedron/examples/build/qrc_CGAL.cpp - Polyhedron/examples/build/qrc_File.cpp - Polyhedron/examples/build/qrc_Input.cpp - Polyhedron/examples/build/qrc_Triangulation_2.cpp Polyhedron_IO/examples/Polyhedron_IO/iv2off.cpp Polyhedron_IO/examples/Polyhedron_IO/off2iv.cpp Polyhedron_IO/examples/Polyhedron_IO/off2off.cpp @@ -863,10 +855,6 @@ set(list_of_examples_txt [=[ Triangulation_2/examples/Triangulation_2/terrain_with_info.cpp Triangulation_2/examples/Triangulation_2/triangulation_prog1.cpp Triangulation_2/examples/Triangulation_2/voronoi.cpp - Triangulation_2/examples/build-Triangulation_2-Desktop_Qt_GCC_64bit-Debug/qrc_CGAL.cpp - Triangulation_2/examples/build-Triangulation_2-Desktop_Qt_GCC_64bit-Debug/qrc_File.cpp - Triangulation_2/examples/build-Triangulation_2-Desktop_Qt_GCC_64bit-Debug/qrc_Input.cpp - Triangulation_2/examples/build-Triangulation_2-Desktop_Qt_GCC_64bit-Debug/qrc_Triangulation_2.cpp Triangulation_3/examples/Triangulation_3/adding_handles_3.cpp Triangulation_3/examples/Triangulation_3/color.cpp Triangulation_3/examples/Triangulation_3/copy_triangulation_3.cpp From fb39fc71acc7b2a7f8c45f97b8740b5122ff08ed Mon Sep 17 00:00:00 2001 From: Maxime Gimeno Date: Fri, 9 Oct 2020 12:55:25 +0200 Subject: [PATCH 09/32] Revert most changes to the cgal_use_file --- Installation/cmake/modules/UseCGAL.cmake | 25 +++++++++++++++++++----- 1 file changed, 20 insertions(+), 5 deletions(-) diff --git a/Installation/cmake/modules/UseCGAL.cmake b/Installation/cmake/modules/UseCGAL.cmake index 47e8335c364..963354f8aee 100644 --- a/Installation/cmake/modules/UseCGAL.cmake +++ b/Installation/cmake/modules/UseCGAL.cmake @@ -27,8 +27,7 @@ if(NOT USE_CGAL_FILE_INCLUDED) use_component( ${component} ) endforeach() - - target_include_directories(CGAL INTERFACE "${CMAKE_CURRENT_BINARY_DIR}" ) + include_directories( "${CMAKE_CURRENT_BINARY_DIR}" ) if(TARGET CGAL::CGAL) add_to_list( CGAL_LIBRARIES CGAL::CGAL ) @@ -38,7 +37,23 @@ if(NOT USE_CGAL_FILE_INCLUDED) add_to_list( CGAL_LIBRARIES ${CGAL_LIBRARY} ) endif() - target_include_directories (CGAL INTERFACE ${CGAL_INCLUDE_DIRS}) - target_include_directories (CGAL SYSTEM INTERFACE ${CGAL_3RD_PARTY_INCLUDE_DIRS} ) - target_compile_definitions (CGAL INTERFACE ${CGAL_3RD_PARTY_DEFINITIONS} ${CGAL_DEFINITIONS} ) + #message (STATUS "LIB: ${CGAL_LIBRARY}") + #message (STATUS "LIBS: ${CGAL_LIBRARIES}") + + include_directories ( ${CGAL_INCLUDE_DIRS}) + include_directories ( SYSTEM ${CGAL_3RD_PARTY_INCLUDE_DIRS} ) + add_definitions ( ${CGAL_3RD_PARTY_DEFINITIONS} ${CGAL_DEFINITIONS} ) + + if (CGAL_HEADER_ONLY) + if(NOT CGAL_NO_BLANKET_LINKING) + link_directories ( ${CGAL_3RD_PARTY_LIBRARIES_DIRS} ) + link_libraries ( ${CGAL_LIBRARIES} ${CGAL_3RD_PARTY_LIBRARIES} ) + endif() + else() + if(NOT CGAL_NO_BLANKET_LINKING) + link_directories ( ${CGAL_LIBRARIES_DIR} ${CGAL_3RD_PARTY_LIBRARIES_DIRS} ) + link_libraries ( ${CGAL_LIBRARIES} ${CGAL_3RD_PARTY_LIBRARIES} ) + endif() + endif() + endif() From 9a90628fa5547730fb4cefaf02c3730db9bfbee8 Mon Sep 17 00:00:00 2001 From: Maxime Gimeno Date: Fri, 9 Oct 2020 14:29:40 +0200 Subject: [PATCH 10/32] Fix header check --- Installation/CMakeLists.txt | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) diff --git a/Installation/CMakeLists.txt b/Installation/CMakeLists.txt index 4215083ee41..0ff23d0357b 100644 --- a/Installation/CMakeLists.txt +++ b/Installation/CMakeLists.txt @@ -1046,12 +1046,12 @@ You must disable CGAL_ENABLE_CHECK_HEADERS.") list(SORT check_example_files) foreach( example ${example_files}) if(NOT ${example} IN_LIST check_example_files) - list(APPEND not_in_list "${example}") + list(APPEND not_in_list "${example}") endif() endforeach() foreach( example ${check_example_files}) if(NOT ${example} IN_LIST example_files) - list(APPEND list_in_not "${example}") + list(APPEND list_in_not "${example}") endif() endforeach() if(not_in_list OR list_in_not) @@ -1083,14 +1083,14 @@ You must disable CGAL_ENABLE_CHECK_HEADERS.") list(SORT check_list_of_documented_headers) list(REMOVE_DUPLICATES check_list_of_documented_headers) foreach( hdr ${list_of_documented_headers}) - if(NOT hdr IN_LIST check_list_of_documented_headers) - list(APPEND not_in_list "${hdr}") - endif() + if(NOT ${hdr} IN_LIST check_list_of_documented_headers) + list(APPEND not_in_list "${hdr}") + endif() endforeach() foreach( hdr ${check_list_of_documented_headers}) - if(NOT hdr IN_LIST list_of_documented_headers) - list(APPEND list_in_not "${hdr}") - endif() + if(NOT ${hdr} IN_LIST list_of_documented_headers) + list(APPEND list_in_not "${hdr}") + endif() endforeach() if(not_in_list OR list_in_not) message("Header files list do not match : ") From 3aa2f81ad9de12a08a5747188b8eb3867bf6b1cd Mon Sep 17 00:00:00 2001 From: Maxime Gimeno Date: Fri, 9 Oct 2020 15:03:11 +0200 Subject: [PATCH 11/32] test travis. --- Installation/CMakeLists.txt | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/Installation/CMakeLists.txt b/Installation/CMakeLists.txt index 0ff23d0357b..d877ac2ce45 100644 --- a/Installation/CMakeLists.txt +++ b/Installation/CMakeLists.txt @@ -1080,18 +1080,22 @@ You must disable CGAL_ENABLE_CHECK_HEADERS.") endif() endforeach() #compare the computed list of headers with the stored one to check for changes + list(SORT check_list_of_documented_headers) list(REMOVE_DUPLICATES check_list_of_documented_headers) foreach( hdr ${list_of_documented_headers}) if(NOT ${hdr} IN_LIST check_list_of_documented_headers) + message("${hdr} is not in check") list(APPEND not_in_list "${hdr}") endif() endforeach() foreach( hdr ${check_list_of_documented_headers}) if(NOT ${hdr} IN_LIST list_of_documented_headers) + message("${hdr} is not in list") list(APPEND list_in_not "${hdr}") endif() endforeach() + if(not_in_list OR list_in_not) message("Header files list do not match : ") if(not_in_list) From 988343731503ee6ac3878c26d2190a4f60be0ac6 Mon Sep 17 00:00:00 2001 From: Maxime Gimeno Date: Fri, 9 Oct 2020 15:59:27 +0200 Subject: [PATCH 12/32] revert the GLOB rework --- Installation/CMakeLists.txt | 57 +++---------------------------------- 1 file changed, 4 insertions(+), 53 deletions(-) diff --git a/Installation/CMakeLists.txt b/Installation/CMakeLists.txt index d877ac2ce45..e984f8f8bb8 100644 --- a/Installation/CMakeLists.txt +++ b/Installation/CMakeLists.txt @@ -1040,74 +1040,25 @@ You must disable CGAL_ENABLE_CHECK_HEADERS.") WORKING_DIRECTORY "${DOC_DIR}" ) #Get the list of the documented headers - file(GLOB check_example_files RELATIVE "${CMAKE_SOURCE_DIR}/" "${CMAKE_SOURCE_DIR}/*/examples/*/*.cpp") - include(${CMAKE_CURRENT_SOURCE_DIR}/cmake/modules/list_of_documented_examples.cmake) + file(GLOB example_files RELATIVE "${CMAKE_SOURCE_DIR}/" "${CMAKE_SOURCE_DIR}/*/examples/*/*.cpp") list(SORT example_files) - list(SORT check_example_files) - foreach( example ${example_files}) - if(NOT ${example} IN_LIST check_example_files) - list(APPEND not_in_list "${example}") - endif() - endforeach() - foreach( example ${check_example_files}) - if(NOT ${example} IN_LIST example_files) - list(APPEND list_in_not "${example}") - endif() - endforeach() - if(not_in_list OR list_in_not) - message("Example files list do not match : ") - if(not_in_list) - message ("${not_in_list} do not exist.") - endif() - if(list_in_not) - message("${list_in_not} are not in ${CMAKE_CURRENT_SOURCE_DIR}/cmake/modules/list_of_documented_examples.cmake") - endif() - message (FATAL_ERROR "") - endif() - find_program(AWK awk) set(awk_arguments [=[{ match($0, /# *include *(<|[<"])(CGAL\/[^>&"]*)([>"]|>)| (CGAL\/[^>&"]*\.h)/,arr); if(arr[2]!="") print arr[2]; if(arr[4]!="") print arr[4] }]=]) message("listing headers from html files") file(GLOB html_files RELATIVE "${DOC_DIR}/doc_output/" "${DOC_DIR}/doc_output/*/*.html") - include(${CMAKE_CURRENT_SOURCE_DIR}/cmake/modules/list_of_documented_headers.cmake) foreach(f ${html_files}) execute_process(COMMAND "${AWK}" "${awk_arguments}" "${DOC_DIR}/doc_output/${f}" OUTPUT_VARIABLE tmp_list) if (NOT "${tmp_list}" STREQUAL "") string(REPLACE "\n" ";" tmp_list ${tmp_list}) - LIST( APPEND check_list_of_documented_headers ${tmp_list}) + LIST( APPEND list_of_documented_headers ${tmp_list}) endif() endforeach() #compare the computed list of headers with the stored one to check for changes - list(SORT check_list_of_documented_headers) - list(REMOVE_DUPLICATES check_list_of_documented_headers) - foreach( hdr ${list_of_documented_headers}) - if(NOT ${hdr} IN_LIST check_list_of_documented_headers) - message("${hdr} is not in check") - list(APPEND not_in_list "${hdr}") - endif() - endforeach() - foreach( hdr ${check_list_of_documented_headers}) - if(NOT ${hdr} IN_LIST list_of_documented_headers) - message("${hdr} is not in list") - list(APPEND list_in_not "${hdr}") - endif() - endforeach() - - if(not_in_list OR list_in_not) - message("Header files list do not match : ") - if(not_in_list) - message ("${not_in_list} do not exist.") - endif() - if(list_in_not) - message("${list_in_not} are not in ${CMAKE_CURRENT_SOURCE_DIR}/cmake/modules/list_of_documented_headers.cmake") - endif() - message (FATAL_ERROR "") - endif() - - + list(SORT list_of_documented_headers) + list(REMOVE_DUPLICATES list_of_documented_headers) message("listing headers from examples files") foreach(f ${example_files}) From 97320dbfd2c820d581e2f387e874c910d3172556 Mon Sep 17 00:00:00 2001 From: Maxime Gimeno Date: Mon, 12 Oct 2020 09:10:12 +0200 Subject: [PATCH 13/32] Fix HDT2 demo cmakelists --- .../demo/Hyperbolic_triangulation_2/CMakeLists.txt | 1 + .../demo/Hyperbolic_triangulation_2/HDT2.cpp | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/Hyperbolic_triangulation_2/demo/Hyperbolic_triangulation_2/CMakeLists.txt b/Hyperbolic_triangulation_2/demo/Hyperbolic_triangulation_2/CMakeLists.txt index 0f54382257e..c389e9a0d3d 100644 --- a/Hyperbolic_triangulation_2/demo/Hyperbolic_triangulation_2/CMakeLists.txt +++ b/Hyperbolic_triangulation_2/demo/Hyperbolic_triangulation_2/CMakeLists.txt @@ -25,6 +25,7 @@ if(CGAL_FOUND AND CGAL_Qt5_FOUND AND Qt5_FOUND AND (CGAL_Core_FOUND OR LEDA_FOUN # cpp files add_executable ( HDT2 HDT2.cpp ${CGAL_Qt5_RESOURCE_FILES} ${RESOURCE_FILES} ${UIS}) + target_include_directories(HDT2 PRIVATE ./ ./include) add_to_cached_list( CGAL_EXECUTABLE_TARGETS HDT2 ) target_link_libraries ( HDT2 CGAL::CGAL CGAL::CGAL_Qt5 CGAL::CGAL_Core Qt5::Widgets) else() diff --git a/Hyperbolic_triangulation_2/demo/Hyperbolic_triangulation_2/HDT2.cpp b/Hyperbolic_triangulation_2/demo/Hyperbolic_triangulation_2/HDT2.cpp index 9fbb9e6d730..1d32eba2c8f 100644 --- a/Hyperbolic_triangulation_2/demo/Hyperbolic_triangulation_2/HDT2.cpp +++ b/Hyperbolic_triangulation_2/demo/Hyperbolic_triangulation_2/HDT2.cpp @@ -11,7 +11,7 @@ #else #include #include - #include + #include "internal/Qt/HyperbolicPainterOstream.h" #endif #include From 0f46df37dfc991766a4181d64fe32c25d3fd49d0 Mon Sep 17 00:00:00 2001 From: Maxime Gimeno Date: Mon, 12 Oct 2020 10:06:13 +0200 Subject: [PATCH 14/32] Restore GLOB --- Installation/CMakeLists.txt | 29 +- .../modules/list_of_documented_examples.cmake | 882 --------------- .../modules/list_of_documented_headers.cmake | 1002 ----------------- 3 files changed, 19 insertions(+), 1894 deletions(-) delete mode 100644 Installation/cmake/modules/list_of_documented_examples.cmake delete mode 100644 Installation/cmake/modules/list_of_documented_headers.cmake diff --git a/Installation/CMakeLists.txt b/Installation/CMakeLists.txt index e984f8f8bb8..7b2fbe73e9f 100644 --- a/Installation/CMakeLists.txt +++ b/Installation/CMakeLists.txt @@ -1040,13 +1040,13 @@ You must disable CGAL_ENABLE_CHECK_HEADERS.") WORKING_DIRECTORY "${DOC_DIR}" ) #Get the list of the documented headers + file(GLOB html_files RELATIVE "${DOC_DIR}/doc_output/" "${DOC_DIR}/doc_output/*/*.html") file(GLOB example_files RELATIVE "${CMAKE_SOURCE_DIR}/" "${CMAKE_SOURCE_DIR}/*/examples/*/*.cpp") list(SORT example_files) find_program(AWK awk) set(awk_arguments [=[{ match($0, /# *include *(<|[<"])(CGAL\/[^>&"]*)([>"]|>)| (CGAL\/[^>&"]*\.h)/,arr); if(arr[2]!="") print arr[2]; if(arr[4]!="") print arr[4] }]=]) message("listing headers from html files") - file(GLOB html_files RELATIVE "${DOC_DIR}/doc_output/" "${DOC_DIR}/doc_output/*/*.html") foreach(f ${html_files}) execute_process(COMMAND "${AWK}" "${awk_arguments}" "${DOC_DIR}/doc_output/${f}" OUTPUT_VARIABLE tmp_list) @@ -1055,10 +1055,6 @@ You must disable CGAL_ENABLE_CHECK_HEADERS.") LIST( APPEND list_of_documented_headers ${tmp_list}) endif() endforeach() - #compare the computed list of headers with the stored one to check for changes - - list(SORT list_of_documented_headers) - list(REMOVE_DUPLICATES list_of_documented_headers) message("listing headers from examples files") foreach(f ${example_files}) @@ -1074,6 +1070,13 @@ You must disable CGAL_ENABLE_CHECK_HEADERS.") message("sorting:") list(SORT list_of_documented_headers) #string(REPLACE ";" " \n" list_of_documented_headers "${list_of_documented_headers}") + if (NOT "${list_of_documented_headers}" STREQUAL "") + set(has_list_of_documented_headers TRUE) + else() + set(has_list_of_documented_headers FALSE) + endif() + list(SORT list_of_documented_headers) + list(REMOVE_DUPLICATES list_of_documented_headers) include(${CMAKE_CURRENT_SOURCE_DIR}/cmake/modules/list_of_whitelisted_headers.cmake OPTIONAL RESULT_VARIABLE has_list_of_whitelisted_headers) message("list_of_whitelisted_headers: ${list_of_whitelisted_headers}") @@ -1085,14 +1088,20 @@ You must disable CGAL_ENABLE_CHECK_HEADERS.") foreach (package ${CGAL_CONFIGURED_PACKAGES_NAMES}) if(EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/../${package}/include) set(check_pkg_headers_depends "") - # Then recurse2 - file(GLOB_RECURSE ${package}_HEADERS #don't use a hard coded list because the ones for the documented headers is enough. - RELATIVE "${CMAKE_CURRENT_SOURCE_DIR}/../${package}/include" - "${CMAKE_CURRENT_SOURCE_DIR}/../${package}/include/CGAL/*.h*") + if(has_list_of_documented_headers) + # Then recurse2 + file(GLOB_RECURSE ${package}_HEADERS #don't use a hard coded list because the ones for the documented headers is enough. + RELATIVE "${CMAKE_CURRENT_SOURCE_DIR}/../${package}/include" + "${CMAKE_CURRENT_SOURCE_DIR}/../${package}/include/CGAL/*.h*") + else() + file(GLOB ${package}_HEADERS + RELATIVE "${CMAKE_CURRENT_SOURCE_DIR}/../${package}/include" + "${CMAKE_CURRENT_SOURCE_DIR}/../${package}/include/CGAL/*.h*") + endif() list(SORT ${package}_HEADERS) foreach(header ${${package}_HEADERS}) set(skip_hdr FALSE) - if(NOT header IN_LIST list_of_documented_headers) + if(has_list_of_documented_headers AND NOT header IN_LIST list_of_documented_headers) # message(STATUS "Skip non-documented header \"${header}\".") set(skip_hdr TRUE) endif() diff --git a/Installation/cmake/modules/list_of_documented_examples.cmake b/Installation/cmake/modules/list_of_documented_examples.cmake deleted file mode 100644 index c910353d1d3..00000000000 --- a/Installation/cmake/modules/list_of_documented_examples.cmake +++ /dev/null @@ -1,882 +0,0 @@ -set(list_of_examples_txt [=[ - AABB_tree/examples/AABB_tree/AABB_cached_bbox_example.cpp - AABB_tree/examples/AABB_tree/AABB_custom_example.cpp - AABB_tree/examples/AABB_tree/AABB_custom_indexed_triangle_set_array_example.cpp - AABB_tree/examples/AABB_tree/AABB_custom_indexed_triangle_set_example.cpp - AABB_tree/examples/AABB_tree/AABB_custom_triangle_soup_example.cpp - AABB_tree/examples/AABB_tree/AABB_face_graph_triangle_example.cpp - AABB_tree/examples/AABB_tree/AABB_halfedge_graph_edge_example.cpp - AABB_tree/examples/AABB_tree/AABB_insertion_example.cpp - AABB_tree/examples/AABB_tree/AABB_polyhedron_edge_example.cpp - AABB_tree/examples/AABB_tree/AABB_polyhedron_facet_distance_example.cpp - AABB_tree/examples/AABB_tree/AABB_polyhedron_facet_intersection_example.cpp - AABB_tree/examples/AABB_tree/AABB_ray_shooting_example.cpp - AABB_tree/examples/AABB_tree/AABB_segment_3_example.cpp - AABB_tree/examples/AABB_tree/AABB_triangle_3_example.cpp - Advancing_front_surface_reconstruction/examples/Advancing_front_surface_reconstruction/boundaries.cpp - Advancing_front_surface_reconstruction/examples/Advancing_front_surface_reconstruction/reconstruction_class.cpp - Advancing_front_surface_reconstruction/examples/Advancing_front_surface_reconstruction/reconstruction_fct.cpp - Advancing_front_surface_reconstruction/examples/Advancing_front_surface_reconstruction/reconstruction_structured.cpp - Advancing_front_surface_reconstruction/examples/Advancing_front_surface_reconstruction/reconstruction_surface_mesh.cpp - Algebraic_foundations/examples/Algebraic_foundations/algebraic_structure_dispatch.cpp - Algebraic_foundations/examples/Algebraic_foundations/fraction_traits.cpp - Algebraic_foundations/examples/Algebraic_foundations/implicit_interoperable_dispatch.cpp - Algebraic_foundations/examples/Algebraic_foundations/integralize.cpp - Algebraic_foundations/examples/Algebraic_foundations/interoperable.cpp - Algebraic_kernel_d/examples/Algebraic_kernel_d/Compare_1.cpp - Algebraic_kernel_d/examples/Algebraic_kernel_d/Construct_algebraic_real_1.cpp - Algebraic_kernel_d/examples/Algebraic_kernel_d/Isolate_1.cpp - Algebraic_kernel_d/examples/Algebraic_kernel_d/Sign_at_1.cpp - Algebraic_kernel_d/examples/Algebraic_kernel_d/Solve_1.cpp - Alpha_shapes_2/examples/Alpha_shapes_2/ex_alpha_projection_traits.cpp - Alpha_shapes_2/examples/Alpha_shapes_2/ex_alpha_shapes_2.cpp - Alpha_shapes_2/examples/Alpha_shapes_2/ex_periodic_alpha_shapes_2.cpp - Alpha_shapes_2/examples/Alpha_shapes_2/ex_weighted_alpha_shapes_2.cpp - Alpha_shapes_3/examples/Alpha_shapes_3/ex_alpha_shapes_3.cpp - Alpha_shapes_3/examples/Alpha_shapes_3/ex_alpha_shapes_exact_alpha.cpp - Alpha_shapes_3/examples/Alpha_shapes_3/ex_alpha_shapes_with_fast_location_3.cpp - Alpha_shapes_3/examples/Alpha_shapes_3/ex_fixed_weighted_alpha_shapes_3.cpp - Alpha_shapes_3/examples/Alpha_shapes_3/ex_periodic_alpha_shapes_3.cpp - Alpha_shapes_3/examples/Alpha_shapes_3/ex_weighted_alpha_shapes_3.cpp - Alpha_shapes_3/examples/Alpha_shapes_3/ex_weighted_periodic_alpha_shapes_3.cpp - Alpha_shapes_3/examples/Alpha_shapes_3/visible_alpha_shape_facets_to_OFF.cpp - Apollonius_graph_2/examples/Apollonius_graph_2/ag2_exact_traits.cpp - Apollonius_graph_2/examples/Apollonius_graph_2/ag2_exact_traits_sqrt.cpp - Apollonius_graph_2/examples/Apollonius_graph_2/ag2_filtered_traits_no_hidden.cpp - Apollonius_graph_2/examples/Apollonius_graph_2/ag2_hierarchy.cpp - Arrangement_on_surface_2/examples/Arrangement_on_surface_2/Bezier_curves.cpp - Arrangement_on_surface_2/examples/Arrangement_on_surface_2/aggregated_insertion.cpp - Arrangement_on_surface_2/examples/Arrangement_on_surface_2/algebraic_curves.cpp - Arrangement_on_surface_2/examples/Arrangement_on_surface_2/algebraic_segments.cpp - Arrangement_on_surface_2/examples/Arrangement_on_surface_2/batched_point_location.cpp - Arrangement_on_surface_2/examples/Arrangement_on_surface_2/bgl_dual_adapter.cpp - Arrangement_on_surface_2/examples/Arrangement_on_surface_2/bgl_primal_adapter.cpp - Arrangement_on_surface_2/examples/Arrangement_on_surface_2/bounded_planar_vertical_decomposition.cpp - Arrangement_on_surface_2/examples/Arrangement_on_surface_2/circles.cpp - Arrangement_on_surface_2/examples/Arrangement_on_surface_2/circular_arcs.cpp - Arrangement_on_surface_2/examples/Arrangement_on_surface_2/circular_line_arcs.cpp - Arrangement_on_surface_2/examples/Arrangement_on_surface_2/conic_multiplicities.cpp - Arrangement_on_surface_2/examples/Arrangement_on_surface_2/conics.cpp - Arrangement_on_surface_2/examples/Arrangement_on_surface_2/consolidated_curve_data.cpp - Arrangement_on_surface_2/examples/Arrangement_on_surface_2/curve_history.cpp - Arrangement_on_surface_2/examples/Arrangement_on_surface_2/dcel_extension.cpp - Arrangement_on_surface_2/examples/Arrangement_on_surface_2/dcel_extension_io.cpp - Arrangement_on_surface_2/examples/Arrangement_on_surface_2/dual_lines.cpp - Arrangement_on_surface_2/examples/Arrangement_on_surface_2/dual_with_data.cpp - Arrangement_on_surface_2/examples/Arrangement_on_surface_2/edge_insertion.cpp - Arrangement_on_surface_2/examples/Arrangement_on_surface_2/edge_manipulation.cpp - Arrangement_on_surface_2/examples/Arrangement_on_surface_2/edge_manipulation_curve_history.cpp - Arrangement_on_surface_2/examples/Arrangement_on_surface_2/face_extension.cpp - Arrangement_on_surface_2/examples/Arrangement_on_surface_2/face_extension_overlay.cpp - Arrangement_on_surface_2/examples/Arrangement_on_surface_2/generic_curve_data.cpp - Arrangement_on_surface_2/examples/Arrangement_on_surface_2/global_insertion.cpp - Arrangement_on_surface_2/examples/Arrangement_on_surface_2/global_removal.cpp - Arrangement_on_surface_2/examples/Arrangement_on_surface_2/incremental_insertion.cpp - Arrangement_on_surface_2/examples/Arrangement_on_surface_2/io.cpp - Arrangement_on_surface_2/examples/Arrangement_on_surface_2/io_curve_history.cpp - Arrangement_on_surface_2/examples/Arrangement_on_surface_2/io_unbounded.cpp - Arrangement_on_surface_2/examples/Arrangement_on_surface_2/isolated_vertices.cpp - Arrangement_on_surface_2/examples/Arrangement_on_surface_2/observer.cpp - Arrangement_on_surface_2/examples/Arrangement_on_surface_2/overlay.cpp - Arrangement_on_surface_2/examples/Arrangement_on_surface_2/overlay_unbounded.cpp - Arrangement_on_surface_2/examples/Arrangement_on_surface_2/point_location_example.cpp - Arrangement_on_surface_2/examples/Arrangement_on_surface_2/polycurve_bezier.cpp - Arrangement_on_surface_2/examples/Arrangement_on_surface_2/polycurve_circular_arc.cpp - Arrangement_on_surface_2/examples/Arrangement_on_surface_2/polycurve_conic.cpp - Arrangement_on_surface_2/examples/Arrangement_on_surface_2/polycurve_geodesic.cpp - Arrangement_on_surface_2/examples/Arrangement_on_surface_2/polycurves_basic.cpp - Arrangement_on_surface_2/examples/Arrangement_on_surface_2/polylines.cpp - Arrangement_on_surface_2/examples/Arrangement_on_surface_2/predefined_kernel.cpp - Arrangement_on_surface_2/examples/Arrangement_on_surface_2/predefined_kernel_non_intersecting.cpp - Arrangement_on_surface_2/examples/Arrangement_on_surface_2/rational_functions.cpp - Arrangement_on_surface_2/examples/Arrangement_on_surface_2/rational_functions_rational_coefficients.cpp - Arrangement_on_surface_2/examples/Arrangement_on_surface_2/special_edge_insertion.cpp - Arrangement_on_surface_2/examples/Arrangement_on_surface_2/spherical_insert.cpp - Arrangement_on_surface_2/examples/Arrangement_on_surface_2/tracing_counting.cpp - Arrangement_on_surface_2/examples/Arrangement_on_surface_2/unb_planar_vertical_decomposition.cpp - Arrangement_on_surface_2/examples/Arrangement_on_surface_2/unbounded_non_intersecting.cpp - Arrangement_on_surface_2/examples/Arrangement_on_surface_2/unbounded_rational_functions.cpp - Arrangement_on_surface_2/examples/Arrangement_on_surface_2/vertical_ray_shooting.cpp - BGL/examples/BGL_LCC/copy_lcc.cpp - BGL/examples/BGL_LCC/distance_lcc.cpp - BGL/examples/BGL_LCC/incident_vertices_lcc.cpp - BGL/examples/BGL_LCC/kruskal_lcc.cpp - BGL/examples/BGL_LCC/normals_lcc.cpp - BGL/examples/BGL_LCC/range_lcc.cpp - BGL/examples/BGL_LCC/transform_iterator_lcc.cpp - BGL/examples/BGL_OpenMesh/TriMesh.cpp - BGL/examples/BGL_arrangement_2/arrangement_dual.cpp - BGL/examples/BGL_arrangement_2/primal.cpp - BGL/examples/BGL_graphcut/alpha_expansion_example.cpp - BGL/examples/BGL_graphcut/face_selection_borders_regularization_example.cpp - BGL/examples/BGL_polyhedron_3/copy_polyhedron.cpp - BGL/examples/BGL_polyhedron_3/distance.cpp - BGL/examples/BGL_polyhedron_3/incident_vertices.cpp - BGL/examples/BGL_polyhedron_3/kruskal.cpp - BGL/examples/BGL_polyhedron_3/kruskal_with_stored_id.cpp - BGL/examples/BGL_polyhedron_3/normals.cpp - BGL/examples/BGL_polyhedron_3/polyhedron_partition.cpp - BGL/examples/BGL_polyhedron_3/range.cpp - BGL/examples/BGL_polyhedron_3/transform_iterator.cpp - BGL/examples/BGL_surface_mesh/connected_components.cpp - BGL/examples/BGL_surface_mesh/gwdwg.cpp - BGL/examples/BGL_surface_mesh/prim.cpp - BGL/examples/BGL_surface_mesh/seam_mesh.cpp - BGL/examples/BGL_surface_mesh/surface_mesh_dual.cpp - BGL/examples/BGL_surface_mesh/surface_mesh_partition.cpp - BGL/examples/BGL_surface_mesh/write_inp.cpp - BGL/examples/BGL_triangulation_2/dijkstra.cpp - BGL/examples/BGL_triangulation_2/dijkstra_with_internal_properties.cpp - BGL/examples/BGL_triangulation_2/emst.cpp - BGL/examples/BGL_triangulation_2/emst_cdt_plus_hierarchy.cpp - BGL/examples/BGL_triangulation_2/emst_regular.cpp - BGL/examples/BGL_triangulation_2/face_graph.cpp - Barycentric_coordinates_2/examples/Barycentric_coordinates_2/Discrete_harmonic_coordinates_example.cpp - Barycentric_coordinates_2/examples/Barycentric_coordinates_2/Mean_value_coordinates_example.cpp - Barycentric_coordinates_2/examples/Barycentric_coordinates_2/Segment_coordinates_example.cpp - Barycentric_coordinates_2/examples/Barycentric_coordinates_2/Terrain_height_modeling.cpp - Barycentric_coordinates_2/examples/Barycentric_coordinates_2/Triangle_coordinates_example.cpp - Barycentric_coordinates_2/examples/Barycentric_coordinates_2/Triangle_coordinates_speed_test.cpp - Barycentric_coordinates_2/examples/Barycentric_coordinates_2/Wachspress_coordinates_example.cpp - Boolean_set_operations_2/examples/Boolean_set_operations_2/bezier_traits_adapter.cpp - Boolean_set_operations_2/examples/Boolean_set_operations_2/bezier_traits_adapter2.cpp - Boolean_set_operations_2/examples/Boolean_set_operations_2/circle_segment.cpp - Boolean_set_operations_2/examples/Boolean_set_operations_2/conic_traits_adapter.cpp - Boolean_set_operations_2/examples/Boolean_set_operations_2/connect_polygon.cpp - Boolean_set_operations_2/examples/Boolean_set_operations_2/do_intersect.cpp - Boolean_set_operations_2/examples/Boolean_set_operations_2/dxf_union.cpp - Boolean_set_operations_2/examples/Boolean_set_operations_2/sequence.cpp - Boolean_set_operations_2/examples/Boolean_set_operations_2/set_union.cpp - Boolean_set_operations_2/examples/Boolean_set_operations_2/simple_join_intersect.cpp - Boolean_set_operations_2/examples/Boolean_set_operations_2/symmetric_difference.cpp - Bounding_volumes/examples/Approximate_min_ellipsoid_d/ellipsoid.cpp - Bounding_volumes/examples/Approximate_min_ellipsoid_d/ellipsoid_for_maple.cpp - Bounding_volumes/examples/Min_annulus_d/min_annulus_d.cpp - Bounding_volumes/examples/Min_annulus_d/min_annulus_d_fast_exact.cpp - Bounding_volumes/examples/Min_circle_2/min_circle_2.cpp - Bounding_volumes/examples/Min_circle_2/min_circle_homogeneous_2.cpp - Bounding_volumes/examples/Min_ellipse_2/min_ellipse_2.cpp - Bounding_volumes/examples/Min_quadrilateral_2/minimum_enclosing_parallelogram_2.cpp - Bounding_volumes/examples/Min_quadrilateral_2/minimum_enclosing_rectangle_2.cpp - Bounding_volumes/examples/Min_quadrilateral_2/minimum_enclosing_strip_2.cpp - Bounding_volumes/examples/Min_sphere_d/min_sphere_3.cpp - Bounding_volumes/examples/Min_sphere_d/min_sphere_homogeneous_3.cpp - Bounding_volumes/examples/Min_sphere_of_spheres_d/benchmark.cpp - Bounding_volumes/examples/Min_sphere_of_spheres_d/min_sphere_of_spheres_d_2.cpp - Bounding_volumes/examples/Min_sphere_of_spheres_d/min_sphere_of_spheres_d_3.cpp - Bounding_volumes/examples/Min_sphere_of_spheres_d/min_sphere_of_spheres_d_d.cpp - Bounding_volumes/examples/Rectangular_p_center_2/rectangular_p_center_2.cpp - Box_intersection_d/examples/Box_intersection_d/box_d_do_intersect_polylines.cpp - Box_intersection_d/examples/Box_intersection_d/box_grid.cpp - Box_intersection_d/examples/Box_intersection_d/custom_box_grid.cpp - Box_intersection_d/examples/Box_intersection_d/minimal.cpp - Box_intersection_d/examples/Box_intersection_d/minimal_self.cpp - Box_intersection_d/examples/Box_intersection_d/proximity_custom_box_traits.cpp - Box_intersection_d/examples/Box_intersection_d/triangle_self_intersect.cpp - Box_intersection_d/examples/Box_intersection_d/triangle_self_intersect_pointers.cpp - CGAL_Core/examples/Core/delaunay.cpp - CGAL_ImageIO/examples/CGALimageIO/convert_raw_image_to_inr.cpp - CGAL_ImageIO/examples/CGALimageIO/extract_a_sub_image.cpp - CGAL_ImageIO/examples/CGALimageIO/test_imageio.cpp - CGAL_ipelets/examples/CGAL_ipelets/test_grabbers.cpp - Circular_kernel_2/examples/Circular_kernel_2/functor_has_on_2.cpp - Circular_kernel_2/examples/Circular_kernel_2/intersecting_arcs.cpp - Circular_kernel_3/examples/Circular_kernel_3/functor_compare_theta_3.cpp - Circular_kernel_3/examples/Circular_kernel_3/functor_has_on_3.cpp - Circular_kernel_3/examples/Circular_kernel_3/intersecting_spheres.cpp - Circulator/examples/Circulator/circulator_prog1.cpp - Circulator/examples/Circulator/circulator_prog2.cpp - Circulator/examples/Circulator/circulator_prog3.cpp - Classification/examples/Classification/example_classification.cpp - Classification/examples/Classification/example_cluster_classification.cpp - Classification/examples/Classification/example_ethz_random_forest.cpp - Classification/examples/Classification/example_feature.cpp - Classification/examples/Classification/example_generation_and_training.cpp - Classification/examples/Classification/example_mesh_classification.cpp - Classification/examples/Classification/example_opencv_random_forest.cpp - Classification/examples/Classification/example_tensorflow_neural_network.cpp - Classification/examples/Classification/gis_tutorial_example.cpp - Combinatorial_map/examples/Combinatorial_map/map_3_dynamic_onmerge.cpp - Combinatorial_map/examples/Combinatorial_map/map_3_foreach.cpp - Combinatorial_map/examples/Combinatorial_map/map_3_marks.cpp - Combinatorial_map/examples/Combinatorial_map/map_3_operations.cpp - Combinatorial_map/examples/Combinatorial_map/map_3_simple_example.cpp - Combinatorial_map/examples/Combinatorial_map/map_3_with_colored_facets.cpp - Combinatorial_map/examples/Combinatorial_map/map_4_simple_example.cpp - Cone_spanners_2/examples/Cone_spanners_2/compute_cones.cpp - Cone_spanners_2/examples/Cone_spanners_2/dijkstra_theta.cpp - Cone_spanners_2/examples/Cone_spanners_2/theta_io.cpp - Convex_decomposition_3/examples/Convex_decomposition_3/list_of_convex_parts.cpp - Convex_hull_2/examples/Convex_hull_2/array_convex_hull_2.cpp - Convex_hull_2/examples/Convex_hull_2/ch_from_cin_to_cout.cpp - Convex_hull_2/examples/Convex_hull_2/ch_graham_anderson.cpp - Convex_hull_2/examples/Convex_hull_2/ch_timing.cpp - Convex_hull_2/examples/Convex_hull_2/convex_hull_indices_2.cpp - Convex_hull_2/examples/Convex_hull_2/convex_hull_yz.cpp - Convex_hull_2/examples/Convex_hull_2/iostream_convex_hull_2.cpp - Convex_hull_2/examples/Convex_hull_2/vector_convex_hull_2.cpp - Convex_hull_3/examples/Convex_hull_3/dynamic_hull_3.cpp - Convex_hull_3/examples/Convex_hull_3/dynamic_hull_LCC_3.cpp - Convex_hull_3/examples/Convex_hull_3/dynamic_hull_OM_3.cpp - Convex_hull_3/examples/Convex_hull_3/dynamic_hull_SM_3.cpp - Convex_hull_3/examples/Convex_hull_3/extreme_indices_3.cpp - Convex_hull_3/examples/Convex_hull_3/extreme_points_3_sm.cpp - Convex_hull_3/examples/Convex_hull_3/graph_hull_3.cpp - Convex_hull_3/examples/Convex_hull_3/halfspace_intersection_3.cpp - Convex_hull_3/examples/Convex_hull_3/lloyd_algorithm.cpp - Convex_hull_3/examples/Convex_hull_3/quickhull_3.cpp - Convex_hull_3/examples/Convex_hull_3/quickhull_OM_3.cpp - Convex_hull_3/examples/Convex_hull_3/quickhull_any_dim_3.cpp - Envelope_2/examples/Envelope_2/convex_hull_2.cpp - Envelope_2/examples/Envelope_2/envelope_circles.cpp - Envelope_2/examples/Envelope_2/envelope_segments.cpp - Envelope_3/examples/Envelope_3/envelope_planes.cpp - Envelope_3/examples/Envelope_3/envelope_spheres.cpp - Envelope_3/examples/Envelope_3/envelope_triangles.cpp - Filtered_kernel/examples/Filtered_kernel/Filtered_predicate.cpp - Generalized_map/examples/Generalized_map/comparison_gmap_cmap.cpp - Generalized_map/examples/Generalized_map/gmap_2_moebius.cpp - Generalized_map/examples/Generalized_map/gmap_3_dynamic_onmerge.cpp - Generalized_map/examples/Generalized_map/gmap_3_marks.cpp - Generalized_map/examples/Generalized_map/gmap_3_operations.cpp - Generalized_map/examples/Generalized_map/gmap_3_simple_example.cpp - Generalized_map/examples/Generalized_map/gmap_3_with_colored_facets.cpp - Generalized_map/examples/Generalized_map/gmap_4_simple_example.cpp - Generator/examples/Generator/ball_d.cpp - Generator/examples/Generator/combination_enumerator.cpp - Generator/examples/Generator/cube_d.cpp - Generator/examples/Generator/grid_d.cpp - Generator/examples/Generator/name_pairs.cpp - Generator/examples/Generator/random_convex_hull_2.cpp - Generator/examples/Generator/random_convex_set.cpp - Generator/examples/Generator/random_degenerate_point_set.cpp - Generator/examples/Generator/random_grid.cpp - Generator/examples/Generator/random_points_in_tetrahedral_mesh_3.cpp - Generator/examples/Generator/random_points_in_triangles_2.cpp - Generator/examples/Generator/random_points_in_triangles_3.cpp - Generator/examples/Generator/random_points_on_tetrahedral_mesh_3.cpp - Generator/examples/Generator/random_points_on_triangle_mesh_2.cpp - Generator/examples/Generator/random_points_on_triangle_mesh_3.cpp - Generator/examples/Generator/random_points_tetrahedron_and_triangle_3.cpp - Generator/examples/Generator/random_points_triangle_2.cpp - Generator/examples/Generator/random_polygon.cpp - Generator/examples/Generator/random_polygon2.cpp - Generator/examples/Generator/random_segments1.cpp - Generator/examples/Generator/random_segments2.cpp - Generator/examples/Generator/sphere_d.cpp - HalfedgeDS/examples/HalfedgeDS/hds_prog_color.cpp - HalfedgeDS/examples/HalfedgeDS/hds_prog_compact.cpp - HalfedgeDS/examples/HalfedgeDS/hds_prog_compact2.cpp - HalfedgeDS/examples/HalfedgeDS/hds_prog_default.cpp - HalfedgeDS/examples/HalfedgeDS/hds_prog_edge_iterator.cpp - HalfedgeDS/examples/HalfedgeDS/hds_prog_graph.cpp - HalfedgeDS/examples/HalfedgeDS/hds_prog_graph2.cpp - HalfedgeDS/examples/HalfedgeDS/hds_prog_halfedge_iterator.cpp - HalfedgeDS/examples/HalfedgeDS/hds_prog_vector.cpp - Heat_method_3/examples/Heat_method_3/heat_method.cpp - Heat_method_3/examples/Heat_method_3/heat_method_polyhedron.cpp - Heat_method_3/examples/Heat_method_3/heat_method_surface_mesh.cpp - Heat_method_3/examples/Heat_method_3/heat_method_surface_mesh_direct.cpp - Hyperbolic_triangulation_2/examples/Hyperbolic_triangulation_2/ht2_example.cpp - Hyperbolic_triangulation_2/examples/Hyperbolic_triangulation_2/ht2_example_color.cpp - Inscribed_areas/examples/Inscribed_areas/extremal_polygon_2_area.cpp - Inscribed_areas/examples/Inscribed_areas/extremal_polygon_2_perimeter.cpp - Inscribed_areas/examples/Inscribed_areas/largest_empty_rectangle.cpp - Interpolation/examples/Interpolation/interpolation_2.cpp - Interpolation/examples/Interpolation/interpolation_vertex_with_info_2.cpp - Interpolation/examples/Interpolation/linear_interpolation_2.cpp - Interpolation/examples/Interpolation/linear_interpolation_of_vector_3.cpp - Interpolation/examples/Interpolation/nn_coordinates_2.cpp - Interpolation/examples/Interpolation/nn_coordinates_3.cpp - Interpolation/examples/Interpolation/nn_coordinates_with_info_2.cpp - Interpolation/examples/Interpolation/rn_coordinates_2.cpp - Interpolation/examples/Interpolation/sibson_interpolation_2.cpp - Interpolation/examples/Interpolation/sibson_interpolation_rn_2.cpp - Interpolation/examples/Interpolation/sibson_interpolation_rn_vertex_with_info_2.cpp - Interpolation/examples/Interpolation/sibson_interpolation_vertex_with_info_2.cpp - Interpolation/examples/Interpolation/surface_neighbor_coordinates_3.cpp - Interval_skip_list/examples/Interval_skip_list/intervals.cpp - Interval_skip_list/examples/Interval_skip_list/isl_terrain.cpp - Jet_fitting_3/examples/Jet_fitting_3/Mesh_estimation.cpp - Jet_fitting_3/examples/Jet_fitting_3/Single_estimation.cpp - Kernel_23/examples/Kernel_23/MyKernel.cpp - Kernel_23/examples/Kernel_23/cartesian_converter.cpp - Kernel_23/examples/Kernel_23/exact.cpp - Kernel_23/examples/Kernel_23/intersection_get.cpp - Kernel_23/examples/Kernel_23/intersection_visitor.cpp - Kernel_23/examples/Kernel_23/intersections.cpp - Kernel_23/examples/Kernel_23/points_and_segment.cpp - Kernel_23/examples/Kernel_23/surprising.cpp - Linear_cell_complex/examples/Linear_cell_complex/draw_linear_cell_complex.cpp - Linear_cell_complex/examples/Linear_cell_complex/gmap_linear_cell_complex_3.cpp - Linear_cell_complex/examples/Linear_cell_complex/linear_cell_complex_3.cpp - Linear_cell_complex/examples/Linear_cell_complex/linear_cell_complex_3_attributes_management.cpp - Linear_cell_complex/examples/Linear_cell_complex/linear_cell_complex_3_operations.cpp - Linear_cell_complex/examples/Linear_cell_complex/linear_cell_complex_3_with_colored_vertices.cpp - Linear_cell_complex/examples/Linear_cell_complex/linear_cell_complex_3_with_mypoint.cpp - Linear_cell_complex/examples/Linear_cell_complex/linear_cell_complex_4.cpp - Linear_cell_complex/examples/Linear_cell_complex/plane_graph_to_lcc_2.cpp - Linear_cell_complex/examples/Linear_cell_complex/voronoi_2.cpp - Linear_cell_complex/examples/Linear_cell_complex/voronoi_3.cpp - Matrix_search/examples/Matrix_search/sorted_matrix_search.cpp - Mesh_2/examples/Mesh_2/conforming.cpp - Mesh_2/examples/Mesh_2/mesh_class.cpp - Mesh_2/examples/Mesh_2/mesh_global.cpp - Mesh_2/examples/Mesh_2/mesh_optimization.cpp - Mesh_2/examples/Mesh_2/mesh_with_seeds.cpp - Mesh_3/examples/Mesh_3/implicit_functions.cpp - Mesh_3/examples/Mesh_3/mesh_3D_gray_image.cpp - Mesh_3/examples/Mesh_3/mesh_3D_gray_image_multiple_values.cpp - Mesh_3/examples/Mesh_3/mesh_3D_gray_vtk_image.cpp - Mesh_3/examples/Mesh_3/mesh_3D_image.cpp - Mesh_3/examples/Mesh_3/mesh_3D_image_variable_size.cpp - Mesh_3/examples/Mesh_3/mesh_3D_image_with_custom_initialization.cpp - Mesh_3/examples/Mesh_3/mesh_3D_image_with_features.cpp - Mesh_3/examples/Mesh_3/mesh_cubes_intersection.cpp - Mesh_3/examples/Mesh_3/mesh_cubes_intersection_with_features.cpp - Mesh_3/examples/Mesh_3/mesh_hybrid_mesh_domain.cpp - Mesh_3/examples/Mesh_3/mesh_implicit_domains.cpp - Mesh_3/examples/Mesh_3/mesh_implicit_domains_2.cpp - Mesh_3/examples/Mesh_3/mesh_implicit_ellipsoid.cpp - Mesh_3/examples/Mesh_3/mesh_implicit_sphere.cpp - Mesh_3/examples/Mesh_3/mesh_implicit_sphere_variable_size.cpp - Mesh_3/examples/Mesh_3/mesh_optimization_example.cpp - Mesh_3/examples/Mesh_3/mesh_optimization_lloyd_example.cpp - Mesh_3/examples/Mesh_3/mesh_polyhedral_complex.cpp - Mesh_3/examples/Mesh_3/mesh_polyhedral_complex_sm.cpp - Mesh_3/examples/Mesh_3/mesh_polyhedral_domain.cpp - Mesh_3/examples/Mesh_3/mesh_polyhedral_domain_sm.cpp - Mesh_3/examples/Mesh_3/mesh_polyhedral_domain_with_features.cpp - Mesh_3/examples/Mesh_3/mesh_polyhedral_domain_with_features_sm.cpp - Mesh_3/examples/Mesh_3/mesh_polyhedral_domain_with_lipschitz_sizing.cpp - Mesh_3/examples/Mesh_3/mesh_polyhedral_domain_with_surface_inside.cpp - Mesh_3/examples/Mesh_3/mesh_two_implicit_spheres_with_balls.cpp - Mesh_3/examples/Mesh_3/remesh_polyhedral_surface.cpp - Mesh_3/examples/Mesh_3/remesh_polyhedral_surface_sm.cpp - Minkowski_sum_2/examples/Minkowski_sum_2/approx_inset.cpp - Minkowski_sum_2/examples/Minkowski_sum_2/approx_offset.cpp - Minkowski_sum_2/examples/Minkowski_sum_2/exact_inset.cpp - Minkowski_sum_2/examples/Minkowski_sum_2/exact_offset.cpp - Minkowski_sum_2/examples/Minkowski_sum_2/sum_by_decomposition.cpp - Minkowski_sum_2/examples/Minkowski_sum_2/sum_of_holes.cpp - Minkowski_sum_2/examples/Minkowski_sum_2/sum_triangle_square.cpp - Minkowski_sum_2/examples/Minkowski_sum_2/sum_with_holes.cpp - Minkowski_sum_3/examples/Minkowski_sum_3/cube_offset.cpp - Minkowski_sum_3/examples/Minkowski_sum_3/glide.cpp - Modular_arithmetic/examples/Modular_arithmetic/modular_filter.cpp - Nef_2/examples/Nef_2/nef_2_construction.cpp - Nef_2/examples/Nef_2/nef_2_exploration.cpp - Nef_2/examples/Nef_2/nef_2_intersection.cpp - Nef_2/examples/Nef_2/nef_2_polylines.cpp - Nef_3/examples/Nef_3/comparison.cpp - Nef_3/examples/Nef_3/complex_construction.cpp - Nef_3/examples/Nef_3/draw_nef_3.cpp - Nef_3/examples/Nef_3/exploration_SM.cpp - Nef_3/examples/Nef_3/extended_kernel.cpp - Nef_3/examples/Nef_3/handling_double_coordinates.cpp - Nef_3/examples/Nef_3/interface_polyhedron.cpp - Nef_3/examples/Nef_3/nefIO.cpp - Nef_3/examples/Nef_3/nef_3_construction.cpp - Nef_3/examples/Nef_3/nef_3_point_location.cpp - Nef_3/examples/Nef_3/nef_3_simple.cpp - Nef_3/examples/Nef_3/nef_3_to_surface_mesh.cpp - Nef_3/examples/Nef_3/offIO.cpp - Nef_3/examples/Nef_3/point_set_operations.cpp - Nef_3/examples/Nef_3/polyline_construction.cpp - Nef_3/examples/Nef_3/set_operations.cpp - Nef_3/examples/Nef_3/shell_exploration.cpp - Nef_3/examples/Nef_3/surface_mesh_to_nef.cpp - Nef_3/examples/Nef_3/topological_operations.cpp - Nef_3/examples/Nef_3/transformation.cpp - Nef_S2/examples/Nef_S2/nef_s2_construction.cpp - Nef_S2/examples/Nef_S2/nef_s2_exploration.cpp - Nef_S2/examples/Nef_S2/nef_s2_point_location.cpp - Nef_S2/examples/Nef_S2/nef_s2_simple.cpp - Optimal_bounding_box/examples/Optimal_bounding_box/obb_example.cpp - Optimal_bounding_box/examples/Optimal_bounding_box/obb_with_point_maps_example.cpp - Optimal_bounding_box/examples/Optimal_bounding_box/rotated_aabb_tree_example.cpp - Optimal_transportation_reconstruction_2/examples/Optimal_transportation_reconstruction_2/otr2_indexed_output_example.cpp - Optimal_transportation_reconstruction_2/examples/Optimal_transportation_reconstruction_2/otr2_list_output_example.cpp - Optimal_transportation_reconstruction_2/examples/Optimal_transportation_reconstruction_2/otr2_mass_example.cpp - Optimal_transportation_reconstruction_2/examples/Optimal_transportation_reconstruction_2/otr2_simplest_example.cpp - Optimal_transportation_reconstruction_2/examples/Optimal_transportation_reconstruction_2/otr2_simplest_example_with_tolerance.cpp - Partition_2/examples/Partition_2/approx_convex_partition_2.cpp - Partition_2/examples/Partition_2/greene_approx_convex_partition_2.cpp - Partition_2/examples/Partition_2/optimal_convex_partition_2.cpp - Partition_2/examples/Partition_2/y_monotone_partition_2.cpp - Partition_2/examples/Partition_2/y_monotone_partition_indices_2.cpp - Periodic_2_triangulation_2/examples/Periodic_2_triangulation_2/draw_periodic_2_triangulation_2.cpp - Periodic_2_triangulation_2/examples/Periodic_2_triangulation_2/p2t2_adding_handles.cpp - Periodic_2_triangulation_2/examples/Periodic_2_triangulation_2/p2t2_colored_vertices.cpp - Periodic_2_triangulation_2/examples/Periodic_2_triangulation_2/p2t2_covering.cpp - Periodic_2_triangulation_2/examples/Periodic_2_triangulation_2/p2t2_find_conflicts.cpp - Periodic_2_triangulation_2/examples/Periodic_2_triangulation_2/p2t2_geometric_access.cpp - Periodic_2_triangulation_2/examples/Periodic_2_triangulation_2/p2t2_hierarchy.cpp - Periodic_2_triangulation_2/examples/Periodic_2_triangulation_2/p2t2_info_insert_with_pair_iterator_2.cpp - Periodic_2_triangulation_2/examples/Periodic_2_triangulation_2/p2t2_info_insert_with_transform_iterator_2.cpp - Periodic_2_triangulation_2/examples/Periodic_2_triangulation_2/p2t2_info_insert_with_zip_iterator_2.cpp - Periodic_2_triangulation_2/examples/Periodic_2_triangulation_2/p2t2_large_point_set.cpp - Periodic_2_triangulation_2/examples/Periodic_2_triangulation_2/p2t2_simple_example.cpp - Periodic_3_mesh_3/examples/Periodic_3_mesh_3/mesh_implicit_multi_domain.cpp - Periodic_3_mesh_3/examples/Periodic_3_mesh_3/mesh_implicit_shape.cpp - Periodic_3_mesh_3/examples/Periodic_3_mesh_3/mesh_implicit_shape_with_features.cpp - Periodic_3_mesh_3/examples/Periodic_3_mesh_3/mesh_implicit_shape_with_optimizers.cpp - Periodic_3_mesh_3/examples/Periodic_3_mesh_3/mesh_implicit_shape_with_subdomains.cpp - Periodic_3_triangulation_3/examples/Periodic_3_triangulation_3/colored_vertices.cpp - Periodic_3_triangulation_3/examples/Periodic_3_triangulation_3/covering.cpp - Periodic_3_triangulation_3/examples/Periodic_3_triangulation_3/find_conflicts.cpp - Periodic_3_triangulation_3/examples/Periodic_3_triangulation_3/geometric_access.cpp - Periodic_3_triangulation_3/examples/Periodic_3_triangulation_3/large_point_set.cpp - Periodic_3_triangulation_3/examples/Periodic_3_triangulation_3/p3rt3_hidden_points.cpp - Periodic_3_triangulation_3/examples/Periodic_3_triangulation_3/p3rt3_insert_only.cpp - Periodic_3_triangulation_3/examples/Periodic_3_triangulation_3/p3rt3_insert_point_with_bad_weight.cpp - Periodic_3_triangulation_3/examples/Periodic_3_triangulation_3/p3rt3_insert_remove.cpp - Periodic_3_triangulation_3/examples/Periodic_3_triangulation_3/periodic_adding_handles.cpp - Periodic_3_triangulation_3/examples/Periodic_3_triangulation_3/simple_example.cpp - Periodic_3_triangulation_3/examples/Periodic_3_triangulation_3/simple_regular_example.cpp - Periodic_4_hyperbolic_triangulation_2/examples/Periodic_4_hyperbolic_triangulation_2/p4ht2_example_insertion.cpp - Point_set_2/examples/Point_set_2/nearest_neighbor.cpp - Point_set_2/examples/Point_set_2/range_search.cpp - Point_set_3/examples/Point_set_3/draw_point_set_3.cpp - Point_set_3/examples/Point_set_3/point_set.cpp - Point_set_3/examples/Point_set_3/point_set_advanced.cpp - Point_set_3/examples/Point_set_3/point_set_algo.cpp - Point_set_3/examples/Point_set_3/point_set_property.cpp - Point_set_3/examples/Point_set_3/point_set_read_ply.cpp - Point_set_3/examples/Point_set_3/point_set_read_xyz.cpp - Point_set_processing_3/examples/Point_set_processing_3/average_spacing_example.cpp - Point_set_processing_3/examples/Point_set_processing_3/bilateral_smooth_point_set_example.cpp - Point_set_processing_3/examples/Point_set_processing_3/callback_example.cpp - Point_set_processing_3/examples/Point_set_processing_3/clustering_example.cpp - Point_set_processing_3/examples/Point_set_processing_3/edge_aware_upsample_point_set_example.cpp - Point_set_processing_3/examples/Point_set_processing_3/edges_example.cpp - Point_set_processing_3/examples/Point_set_processing_3/grid_simplification_example.cpp - Point_set_processing_3/examples/Point_set_processing_3/grid_simplify_indices.cpp - Point_set_processing_3/examples/Point_set_processing_3/hierarchy_simplification_example.cpp - Point_set_processing_3/examples/Point_set_processing_3/jet_smoothing_example.cpp - Point_set_processing_3/examples/Point_set_processing_3/normal_estimation.cpp - Point_set_processing_3/examples/Point_set_processing_3/normals_example.cpp - Point_set_processing_3/examples/Point_set_processing_3/property_map.cpp - Point_set_processing_3/examples/Point_set_processing_3/random_simplification_example.cpp - Point_set_processing_3/examples/Point_set_processing_3/read_las_example.cpp - Point_set_processing_3/examples/Point_set_processing_3/read_ply_points_with_colors_example.cpp - Point_set_processing_3/examples/Point_set_processing_3/read_write_xyz_point_set_example.cpp - Point_set_processing_3/examples/Point_set_processing_3/registration_with_OpenGR.cpp - Point_set_processing_3/examples/Point_set_processing_3/registration_with_opengr_pointmatcher_pipeline.cpp - Point_set_processing_3/examples/Point_set_processing_3/registration_with_pointmatcher.cpp - Point_set_processing_3/examples/Point_set_processing_3/remove_outliers_example.cpp - Point_set_processing_3/examples/Point_set_processing_3/scale_estimation_2d_example.cpp - Point_set_processing_3/examples/Point_set_processing_3/scale_estimation_example.cpp - Point_set_processing_3/examples/Point_set_processing_3/structuring_example.cpp - Point_set_processing_3/examples/Point_set_processing_3/wlop_simplify_and_regularize_point_set_example.cpp - Point_set_processing_3/examples/Point_set_processing_3/write_ply_points_example.cpp - Poisson_surface_reconstruction_3/examples/Poisson_surface_reconstruction_3/poisson_reconstruction.cpp - Poisson_surface_reconstruction_3/examples/Poisson_surface_reconstruction_3/poisson_reconstruction_example.cpp - Poisson_surface_reconstruction_3/examples/Poisson_surface_reconstruction_3/poisson_reconstruction_function.cpp - Poisson_surface_reconstruction_3/examples/Poisson_surface_reconstruction_3/tutorial_example.cpp - Polygon/examples/Polygon/Example.cpp - Polygon/examples/Polygon/Polygon.cpp - Polygon/examples/Polygon/draw_polygon.cpp - Polygon/examples/Polygon/draw_polygon_with_holes.cpp - Polygon/examples/Polygon/polygon_algorithms.cpp - Polygon/examples/Polygon/projected_polygon.cpp - Polygon_mesh_processing/examples/Polygon_mesh_processing/compute_normals_example.cpp - Polygon_mesh_processing/examples/Polygon_mesh_processing/compute_normals_example_OM.cpp - Polygon_mesh_processing/examples/Polygon_mesh_processing/compute_normals_example_Polyhedron.cpp - Polygon_mesh_processing/examples/Polygon_mesh_processing/connected_components_example.cpp - Polygon_mesh_processing/examples/Polygon_mesh_processing/corefinement_LCC.cpp - Polygon_mesh_processing/examples/Polygon_mesh_processing/corefinement_SM.cpp - Polygon_mesh_processing/examples/Polygon_mesh_processing/corefinement_consecutive_bool_op.cpp - Polygon_mesh_processing/examples/Polygon_mesh_processing/corefinement_difference_remeshed.cpp - Polygon_mesh_processing/examples/Polygon_mesh_processing/corefinement_mesh_union.cpp - Polygon_mesh_processing/examples/Polygon_mesh_processing/corefinement_mesh_union_and_intersection.cpp - Polygon_mesh_processing/examples/Polygon_mesh_processing/corefinement_mesh_union_with_attributes.cpp - Polygon_mesh_processing/examples/Polygon_mesh_processing/corefinement_polyhedron_union.cpp - Polygon_mesh_processing/examples/Polygon_mesh_processing/detect_features_example.cpp - Polygon_mesh_processing/examples/Polygon_mesh_processing/face_filtered_graph_example.cpp - Polygon_mesh_processing/examples/Polygon_mesh_processing/hausdorff_distance_remeshing_example.cpp - Polygon_mesh_processing/examples/Polygon_mesh_processing/hole_filling_example.cpp - Polygon_mesh_processing/examples/Polygon_mesh_processing/hole_filling_example_LCC.cpp - Polygon_mesh_processing/examples/Polygon_mesh_processing/hole_filling_example_OM.cpp - Polygon_mesh_processing/examples/Polygon_mesh_processing/hole_filling_example_SM.cpp - Polygon_mesh_processing/examples/Polygon_mesh_processing/isotropic_remeshing_example.cpp - Polygon_mesh_processing/examples/Polygon_mesh_processing/isotropic_remeshing_of_patch_example.cpp - Polygon_mesh_processing/examples/Polygon_mesh_processing/locate_example.cpp - Polygon_mesh_processing/examples/Polygon_mesh_processing/manifoldness_repair_example.cpp - Polygon_mesh_processing/examples/Polygon_mesh_processing/mesh_slicer_example.cpp - Polygon_mesh_processing/examples/Polygon_mesh_processing/mesh_smoothing_example.cpp - Polygon_mesh_processing/examples/Polygon_mesh_processing/orient_polygon_soup_example.cpp - Polygon_mesh_processing/examples/Polygon_mesh_processing/orientation_pipeline_example.cpp - Polygon_mesh_processing/examples/Polygon_mesh_processing/point_inside_example.cpp - Polygon_mesh_processing/examples/Polygon_mesh_processing/point_inside_example_OM.cpp - Polygon_mesh_processing/examples/Polygon_mesh_processing/random_perturbation_SM_example.cpp - Polygon_mesh_processing/examples/Polygon_mesh_processing/refine_fair_example.cpp - Polygon_mesh_processing/examples/Polygon_mesh_processing/repair_polygon_soup_example.cpp - Polygon_mesh_processing/examples/Polygon_mesh_processing/self_intersections_example.cpp - Polygon_mesh_processing/examples/Polygon_mesh_processing/shape_smoothing_example.cpp - Polygon_mesh_processing/examples/Polygon_mesh_processing/stitch_borders_example.cpp - Polygon_mesh_processing/examples/Polygon_mesh_processing/stitch_borders_example_OM.cpp - Polygon_mesh_processing/examples/Polygon_mesh_processing/surface_mesh_intersection.cpp - Polygon_mesh_processing/examples/Polygon_mesh_processing/triangulate_faces_example.cpp - Polygon_mesh_processing/examples/Polygon_mesh_processing/triangulate_faces_example_OM.cpp - Polygon_mesh_processing/examples/Polygon_mesh_processing/triangulate_faces_split_visitor_example.cpp - Polygon_mesh_processing/examples/Polygon_mesh_processing/triangulate_polyline_example.cpp - Polygon_mesh_processing/examples/Polygon_mesh_processing/volume_connected_components.cpp - Polygonal_surface_reconstruction/examples/Polygonal_surface_reconstruction/polyfit_example_model_complexty_control.cpp - Polygonal_surface_reconstruction/examples/Polygonal_surface_reconstruction/polyfit_example_user_provided_planes.cpp - Polygonal_surface_reconstruction/examples/Polygonal_surface_reconstruction/polyfit_example_with_region_growing.cpp - Polygonal_surface_reconstruction/examples/Polygonal_surface_reconstruction/polyfit_example_without_input_planes.cpp - Polyhedron/examples/Polyhedron/draw_polyhedron.cpp - Polyhedron/examples/Polyhedron/poly_derivation.cpp - Polyhedron/examples/Polyhedron/polyhedron_prog_color.cpp - Polyhedron/examples/Polyhedron/polyhedron_prog_cube.cpp - Polyhedron/examples/Polyhedron/polyhedron_prog_cut_cube.cpp - Polyhedron/examples/Polyhedron/polyhedron_prog_incr_builder.cpp - Polyhedron/examples/Polyhedron/polyhedron_prog_normals.cpp - Polyhedron/examples/Polyhedron/polyhedron_prog_off.cpp - Polyhedron/examples/Polyhedron/polyhedron_prog_planes.cpp - Polyhedron/examples/Polyhedron/polyhedron_prog_simple.cpp - Polyhedron/examples/Polyhedron/polyhedron_prog_subdiv.cpp - Polyhedron/examples/Polyhedron/polyhedron_prog_subdiv_with_boundary.cpp - Polyhedron/examples/Polyhedron/polyhedron_prog_tetra.cpp - Polyhedron/examples/Polyhedron/polyhedron_prog_traits.cpp - Polyhedron/examples/Polyhedron/polyhedron_prog_vector.cpp - Polyhedron/examples/Polyhedron/polyhedron_prog_vertex_color.cpp - Polyhedron/examples/Polyhedron/polyhedron_prog_vertex_normal.cpp - Polyhedron/examples/Polyhedron/polyhedron_self_intersection.cpp - Polyhedron_IO/examples/Polyhedron_IO/iv2off.cpp - Polyhedron_IO/examples/Polyhedron_IO/off2iv.cpp - Polyhedron_IO/examples/Polyhedron_IO/off2off.cpp - Polyhedron_IO/examples/Polyhedron_IO/off2stl.cpp - Polyhedron_IO/examples/Polyhedron_IO/off2vrml.cpp - Polyhedron_IO/examples/Polyhedron_IO/off2wav.cpp - Polyhedron_IO/examples/Polyhedron_IO/off_bbox.cpp - Polyhedron_IO/examples/Polyhedron_IO/off_glue.cpp - Polyhedron_IO/examples/Polyhedron_IO/off_transform.cpp - Polyhedron_IO/examples/Polyhedron_IO/polyhedron2vrml.cpp - Polyhedron_IO/examples/Polyhedron_IO/polyhedron_copy.cpp - Polyhedron_IO/examples/Polyhedron_IO/terr_trian.cpp - Polyline_simplification_2/examples/Polyline_simplification_2/points_and_vertices.cpp - Polyline_simplification_2/examples/Polyline_simplification_2/simplify.cpp - Polyline_simplification_2/examples/Polyline_simplification_2/simplify_polygon.cpp - Polyline_simplification_2/examples/Polyline_simplification_2/simplify_polyline.cpp - Polyline_simplification_2/examples/Polyline_simplification_2/simplify_terrain.cpp - Polynomial/examples/Polynomial/coefficient_access.cpp - Polynomial/examples/Polynomial/construction.cpp - Polynomial/examples/Polynomial/degree.cpp - Polynomial/examples/Polynomial/gcd_up_to_constant_factor.cpp - Polynomial/examples/Polynomial/subresultants.cpp - Polynomial/examples/Polynomial/substitute.cpp - Polynomial/examples/Polynomial/swap_move.cpp - Polytope_distance_d/examples/Polytope_distance_d/all_furthest_neighbors_2.cpp - Polytope_distance_d/examples/Polytope_distance_d/polytope_distance_d.cpp - Polytope_distance_d/examples/Polytope_distance_d/polytope_distance_d_fast_exact.cpp - Polytope_distance_d/examples/Polytope_distance_d/width_simplex.cpp - Principal_component_analysis/examples/Principal_component_analysis/barycenter.cpp - Principal_component_analysis/examples/Principal_component_analysis/bounding_box.cpp - Principal_component_analysis/examples/Principal_component_analysis/centroid.cpp - Principal_component_analysis/examples/Principal_component_analysis/linear_least_squares_fitting_points_2.cpp - Principal_component_analysis/examples/Principal_component_analysis/linear_least_squares_fitting_triangles_3.cpp - Profiling_tools/examples/Profiling_tools/Profile_counter.cpp - Profiling_tools/examples/Profiling_tools/Profile_histogram_counter.cpp - Profiling_tools/examples/Profiling_tools/Profile_timer.cpp - Property_map/examples/Property_map/custom_property_map.cpp - Property_map/examples/Property_map/dynamic_properties.cpp - QP_solver/examples/QP_solver/convex_hull_containment.cpp - QP_solver/examples/QP_solver/convex_hull_containment2.cpp - QP_solver/examples/QP_solver/convex_hull_containment_benchmarks.cpp - QP_solver/examples/QP_solver/cycling.cpp - QP_solver/examples/QP_solver/first_lp.cpp - QP_solver/examples/QP_solver/first_lp_from_iterators.cpp - QP_solver/examples/QP_solver/first_lp_from_mps.cpp - QP_solver/examples/QP_solver/first_nonnegative_lp.cpp - QP_solver/examples/QP_solver/first_nonnegative_lp_from_iterators.cpp - QP_solver/examples/QP_solver/first_nonnegative_lp_from_mps.cpp - QP_solver/examples/QP_solver/first_nonnegative_qp.cpp - QP_solver/examples/QP_solver/first_nonnegative_qp_from_iterators.cpp - QP_solver/examples/QP_solver/first_nonnegative_qp_from_mps.cpp - QP_solver/examples/QP_solver/first_qp.cpp - QP_solver/examples/QP_solver/first_qp_basic_constraints.cpp - QP_solver/examples/QP_solver/first_qp_from_iterators.cpp - QP_solver/examples/QP_solver/first_qp_from_mps.cpp - QP_solver/examples/QP_solver/important_variables.cpp - QP_solver/examples/QP_solver/infeasibility_certificate.cpp - QP_solver/examples/QP_solver/invert_matrix.cpp - QP_solver/examples/QP_solver/optimality_certificate.cpp - QP_solver/examples/QP_solver/print_first_lp.cpp - QP_solver/examples/QP_solver/print_first_nonnegative_lp.cpp - QP_solver/examples/QP_solver/print_first_nonnegative_qp.cpp - QP_solver/examples/QP_solver/print_first_qp.cpp - QP_solver/examples/QP_solver/unboundedness_certificate.cpp - Ridges_3/examples/Ridges_3/Compute_Ridges_Umbilics.cpp - Ridges_3/examples/Ridges_3/Ridges_Umbilics_LCC.cpp - Ridges_3/examples/Ridges_3/Ridges_Umbilics_SM.cpp - STL_Extension/examples/STL_Extension/Default.cpp - STL_Extension/examples/STL_Extension/Dispatch_output_iterator.cpp - STL_Extension/examples/STL_Extension/in_place_list_prog.cpp - STL_Extension/examples/STL_Extension/min_element_if_example.cpp - STL_Extension/examples/STL_Extension/min_max_element_example.cpp - STL_Extension/examples/STL_Extension/unordered_map.cpp - Scale_space_reconstruction_3/examples/Scale_space_reconstruction_3/scale_space.cpp - Scale_space_reconstruction_3/examples/Scale_space_reconstruction_3/scale_space_advancing_front.cpp - Scale_space_reconstruction_3/examples/Scale_space_reconstruction_3/scale_space_incremental.cpp - Scale_space_reconstruction_3/examples/Scale_space_reconstruction_3/scale_space_manifold.cpp - SearchStructures/examples/RangeSegmentTrees/range_tree_1.cpp - SearchStructures/examples/RangeSegmentTrees/range_tree_2.cpp - SearchStructures/examples/RangeSegmentTrees/range_tree_3.cpp - SearchStructures/examples/RangeSegmentTrees/range_tree_4.cpp - SearchStructures/examples/RangeSegmentTrees/range_tree_map_2.cpp - SearchStructures/examples/RangeSegmentTrees/range_tree_set_2.cpp - SearchStructures/examples/RangeSegmentTrees/segment_tree_1.cpp - SearchStructures/examples/RangeSegmentTrees/segment_tree_2.cpp - SearchStructures/examples/RangeSegmentTrees/segment_tree_3.cpp - SearchStructures/examples/RangeSegmentTrees/segment_tree_4.cpp - SearchStructures/examples/RangeSegmentTrees/segment_tree_map_2.cpp - SearchStructures/examples/RangeSegmentTrees/segment_tree_set_2.cpp - SearchStructures/examples/RangeSegmentTrees/segment_tree_set_3.cpp - SearchStructures/examples/RangeSegmentTrees/software_design_rgs.cpp - Segment_Delaunay_graph_2/examples/Segment_Delaunay_graph_2/sdg-count-sites.cpp - Segment_Delaunay_graph_2/examples/Segment_Delaunay_graph_2/sdg-fast-sp-polygon.cpp - Segment_Delaunay_graph_2/examples/Segment_Delaunay_graph_2/sdg-fast-sp.cpp - Segment_Delaunay_graph_2/examples/Segment_Delaunay_graph_2/sdg-filtered-traits.cpp - Segment_Delaunay_graph_2/examples/Segment_Delaunay_graph_2/sdg-info-set.cpp - Segment_Delaunay_graph_2/examples/Segment_Delaunay_graph_2/sdg-red-blue-info.cpp - Segment_Delaunay_graph_2/examples/Segment_Delaunay_graph_2/sdg-voronoi-edges.cpp - Segment_Delaunay_graph_Linf_2/examples/Segment_Delaunay_graph_Linf_2/print-sdg-linf.cpp - Segment_Delaunay_graph_Linf_2/examples/Segment_Delaunay_graph_Linf_2/sdg-count-sites-linf.cpp - Segment_Delaunay_graph_Linf_2/examples/Segment_Delaunay_graph_Linf_2/sdg-fast-sp-linf.cpp - Segment_Delaunay_graph_Linf_2/examples/Segment_Delaunay_graph_Linf_2/sdg-fast-sp-polygon-linf.cpp - Segment_Delaunay_graph_Linf_2/examples/Segment_Delaunay_graph_Linf_2/sdg-filtered-traits-linf.cpp - Segment_Delaunay_graph_Linf_2/examples/Segment_Delaunay_graph_Linf_2/sdg-info-set-linf.cpp - Segment_Delaunay_graph_Linf_2/examples/Segment_Delaunay_graph_Linf_2/sdg-red-blue-info-linf.cpp - Segment_Delaunay_graph_Linf_2/examples/Segment_Delaunay_graph_Linf_2/sdg-voronoi-edges-exact-linf.cpp - Segment_Delaunay_graph_Linf_2/examples/Segment_Delaunay_graph_Linf_2/sdg-voronoi-edges-linf.cpp - Set_movable_separability_2/examples/Set_movable_separability_2/is_pullout_direction_single_mold_trans_cast.cpp - Set_movable_separability_2/examples/Set_movable_separability_2/pullout_directions_single_mold_trans_cast.cpp - Set_movable_separability_2/examples/Set_movable_separability_2/top_edges_single_mold_trans_cast.cpp - Shape_detection/examples/Shape_detection/efficient_RANSAC_and_plane_regularization.cpp - Shape_detection/examples/Shape_detection/efficient_RANSAC_basic.cpp - Shape_detection/examples/Shape_detection/efficient_RANSAC_with_callback.cpp - Shape_detection/examples/Shape_detection/efficient_RANSAC_with_custom_shape.cpp - Shape_detection/examples/Shape_detection/efficient_RANSAC_with_parameters.cpp - Shape_detection/examples/Shape_detection/efficient_RANSAC_with_point_access.cpp - Shape_detection/examples/Shape_detection/region_growing_on_point_set_2.cpp - Shape_detection/examples/Shape_detection/region_growing_on_point_set_3.cpp - Shape_detection/examples/Shape_detection/region_growing_on_polygon_mesh.cpp - Shape_detection/examples/Shape_detection/region_growing_with_custom_classes.cpp - Shape_detection/examples/Shape_detection/shape_detection_basic_deprecated.cpp - Skin_surface_3/examples/Skin_surface_3/skin_surface_pdb_reader.cpp - Skin_surface_3/examples/Skin_surface_3/skin_surface_retrieve_defining_weighted_points.cpp - Skin_surface_3/examples/Skin_surface_3/skin_surface_simple.cpp - Skin_surface_3/examples/Skin_surface_3/skin_surface_subdiv.cpp - Skin_surface_3/examples/Skin_surface_3/skin_surface_subdiv_with_normals.cpp - Skin_surface_3/examples/Skin_surface_3/union_of_balls_simple.cpp - Skin_surface_3/examples/Skin_surface_3/union_of_balls_subdiv.cpp - Snap_rounding_2/examples/Snap_rounding_2/snap_rounding.cpp - Snap_rounding_2/examples/Snap_rounding_2/snap_rounding_data.cpp - Snap_rounding_2/examples/Snap_rounding_2/snap_rounding_to_integer.cpp - Solver_interface/examples/Solver_interface/diagonalize_matrix.cpp - Solver_interface/examples/Solver_interface/mixed_integer_program.cpp - Solver_interface/examples/Solver_interface/singular_value_decomposition.cpp - Solver_interface/examples/Solver_interface/sparse_solvers.cpp - Spatial_searching/examples/Spatial_searching/circular_query.cpp - Spatial_searching/examples/Spatial_searching/distance_browsing.cpp - Spatial_searching/examples/Spatial_searching/fuzzy_range_query.cpp - Spatial_searching/examples/Spatial_searching/general_neighbor_searching.cpp - Spatial_searching/examples/Spatial_searching/iso_rectangle_2_query.cpp - Spatial_searching/examples/Spatial_searching/nearest_neighbor_searching.cpp - Spatial_searching/examples/Spatial_searching/parallel_kdtree.cpp - Spatial_searching/examples/Spatial_searching/searching_polyhedron_vertices.cpp - Spatial_searching/examples/Spatial_searching/searching_polyhedron_vertices_with_fuzzy_sphere.cpp - Spatial_searching/examples/Spatial_searching/searching_sphere_orthogonally.cpp - Spatial_searching/examples/Spatial_searching/searching_surface_mesh_vertices.cpp - Spatial_searching/examples/Spatial_searching/searching_with_circular_query.cpp - Spatial_searching/examples/Spatial_searching/searching_with_point_with_info.cpp - Spatial_searching/examples/Spatial_searching/searching_with_point_with_info_inplace.cpp - Spatial_searching/examples/Spatial_searching/searching_with_point_with_info_pmap.cpp - Spatial_searching/examples/Spatial_searching/splitter_worst_cases.cpp - Spatial_searching/examples/Spatial_searching/user_defined_point_and_distance.cpp - Spatial_searching/examples/Spatial_searching/using_fair_splitting_rule.cpp - Spatial_searching/examples/Spatial_searching/weighted_Minkowski_distance.cpp - Spatial_sorting/examples/Spatial_sorting/example_delaunay_2.cpp - Spatial_sorting/examples/Spatial_sorting/hilbert.cpp - Spatial_sorting/examples/Spatial_sorting/hilbert_policies.cpp - Spatial_sorting/examples/Spatial_sorting/hilbert_sort_on_sphere.cpp - Spatial_sorting/examples/Spatial_sorting/myPoint.cpp - Spatial_sorting/examples/Spatial_sorting/parallel_spatial_sort_3.cpp - Spatial_sorting/examples/Spatial_sorting/small_example_delaunay_2.cpp - Spatial_sorting/examples/Spatial_sorting/sort_indices.cpp - Spatial_sorting/examples/Spatial_sorting/sp_sort_using_property_map_2.cpp - Spatial_sorting/examples/Spatial_sorting/sp_sort_using_property_map_3.cpp - Spatial_sorting/examples/Spatial_sorting/sp_sort_using_property_map_d.cpp - Spatial_sorting/examples/Spatial_sorting/spatial_sort_on_sphere.cpp - Straight_skeleton_2/examples/Straight_skeleton_2/Create_offset_polygons_2.cpp - Straight_skeleton_2/examples/Straight_skeleton_2/Create_saop_from_polygon_with_holes_2.cpp - Straight_skeleton_2/examples/Straight_skeleton_2/Create_skeleton_and_offset_polygons_2.cpp - Straight_skeleton_2/examples/Straight_skeleton_2/Create_skeleton_and_offset_polygons_with_holes_2.cpp - Straight_skeleton_2/examples/Straight_skeleton_2/Create_straight_skeleton_2.cpp - Straight_skeleton_2/examples/Straight_skeleton_2/Create_straight_skeleton_from_polygon_with_holes_2.cpp - Straight_skeleton_2/examples/Straight_skeleton_2/Low_level_API.cpp - Straight_skeleton_2/examples/Straight_skeleton_2/Show_offset_polygon.cpp - Straight_skeleton_2/examples/Straight_skeleton_2/Show_straight_skeleton.cpp - Stream_lines_2/examples/Stream_lines_2/stl_regular_field.cpp - Stream_lines_2/examples/Stream_lines_2/stl_triangular_field.cpp - Stream_support/examples/Stream_support/Linestring_WKT.cpp - Stream_support/examples/Stream_support/Point_WKT.cpp - Stream_support/examples/Stream_support/Polygon_WKT.cpp - Stream_support/examples/Stream_support/read_WKT.cpp - Stream_support/examples/Stream_support/read_xml.cpp - Subdivision_method_3/examples/Subdivision_method_3/CatmullClark_subdivision.cpp - Subdivision_method_3/examples/Subdivision_method_3/Customized_subdivision.cpp - Subdivision_method_3/examples/Subdivision_method_3/DooSabin_subdivision.cpp - Subdivision_method_3/examples/Subdivision_method_3/Loop_subdivision.cpp - Subdivision_method_3/examples/Subdivision_method_3/Sqrt3_subdivision.cpp - Surface_mesh/examples/Surface_mesh/check_orientation.cpp - Surface_mesh/examples/Surface_mesh/draw_surface_mesh.cpp - Surface_mesh/examples/Surface_mesh/sm_aabbtree.cpp - Surface_mesh/examples/Surface_mesh/sm_bgl.cpp - Surface_mesh/examples/Surface_mesh/sm_circulators.cpp - Surface_mesh/examples/Surface_mesh/sm_derivation.cpp - Surface_mesh/examples/Surface_mesh/sm_do_intersect.cpp - Surface_mesh/examples/Surface_mesh/sm_draw_small_faces.cpp - Surface_mesh/examples/Surface_mesh/sm_iterators.cpp - Surface_mesh/examples/Surface_mesh/sm_join.cpp - Surface_mesh/examples/Surface_mesh/sm_kruskal.cpp - Surface_mesh/examples/Surface_mesh/sm_memory.cpp - Surface_mesh/examples/Surface_mesh/sm_properties.cpp - Surface_mesh_approximation/examples/Surface_mesh_approximation/vsa_approximation_2_example.cpp - Surface_mesh_approximation/examples/Surface_mesh_approximation/vsa_approximation_example.cpp - Surface_mesh_approximation/examples/Surface_mesh_approximation/vsa_class_interface_example.cpp - Surface_mesh_approximation/examples/Surface_mesh_approximation/vsa_isotropic_metric_example.cpp - Surface_mesh_approximation/examples/Surface_mesh_approximation/vsa_segmentation_example.cpp - Surface_mesh_approximation/examples/Surface_mesh_approximation/vsa_simple_approximation_example.cpp - Surface_mesh_deformation/examples/Surface_mesh_deformation/all_roi_assign_example.cpp - Surface_mesh_deformation/examples/Surface_mesh_deformation/all_roi_assign_example_Surface_mesh.cpp - Surface_mesh_deformation/examples/Surface_mesh_deformation/all_roi_assign_example_custom_polyhedron.cpp - Surface_mesh_deformation/examples/Surface_mesh_deformation/all_roi_assign_example_with_OpenMesh.cpp - Surface_mesh_deformation/examples/Surface_mesh_deformation/custom_weight_for_edges_example.cpp - Surface_mesh_deformation/examples/Surface_mesh_deformation/deform_mesh_for_botsch08_format_sre_arap.cpp - Surface_mesh_deformation/examples/Surface_mesh_deformation/deform_polyhedron_with_custom_pmap_example.cpp - Surface_mesh_deformation/examples/Surface_mesh_deformation/k_ring_roi_translate_rotate_Surface_mesh.cpp - Surface_mesh_deformation/examples/Surface_mesh_deformation/k_ring_roi_translate_rotate_example.cpp - Surface_mesh_parameterization/examples/Surface_mesh_parameterization/discrete_authalic.cpp - Surface_mesh_parameterization/examples/Surface_mesh_parameterization/lscm.cpp - Surface_mesh_parameterization/examples/Surface_mesh_parameterization/orbifold.cpp - Surface_mesh_parameterization/examples/Surface_mesh_parameterization/seam_Polyhedron_3.cpp - Surface_mesh_parameterization/examples/Surface_mesh_parameterization/simple_parameterization.cpp - Surface_mesh_parameterization/examples/Surface_mesh_parameterization/square_border_parameterizer.cpp - Surface_mesh_segmentation/examples/Surface_mesh_segmentation/extract_segmentation_into_mesh_example.cpp - Surface_mesh_segmentation/examples/Surface_mesh_segmentation/sdf_values_example.cpp - Surface_mesh_segmentation/examples/Surface_mesh_segmentation/segmentation_from_sdf_values_LCC_example.cpp - Surface_mesh_segmentation/examples/Surface_mesh_segmentation/segmentation_from_sdf_values_OpenMesh_example.cpp - Surface_mesh_segmentation/examples/Surface_mesh_segmentation/segmentation_from_sdf_values_SM_example.cpp - Surface_mesh_segmentation/examples/Surface_mesh_segmentation/segmentation_from_sdf_values_example.cpp - Surface_mesh_segmentation/examples/Surface_mesh_segmentation/segmentation_via_sdf_values_example.cpp - Surface_mesh_segmentation/examples/Surface_mesh_segmentation/segmentation_with_facet_ids_example.cpp - Surface_mesh_shortest_path/examples/Surface_mesh_shortest_path/shortest_path_sequence.cpp - Surface_mesh_shortest_path/examples/Surface_mesh_shortest_path/shortest_path_with_locate.cpp - Surface_mesh_shortest_path/examples/Surface_mesh_shortest_path/shortest_paths.cpp - Surface_mesh_shortest_path/examples/Surface_mesh_shortest_path/shortest_paths_OpenMesh.cpp - Surface_mesh_shortest_path/examples/Surface_mesh_shortest_path/shortest_paths_multiple_sources.cpp - Surface_mesh_shortest_path/examples/Surface_mesh_shortest_path/shortest_paths_no_id.cpp - Surface_mesh_shortest_path/examples/Surface_mesh_shortest_path/shortest_paths_with_id.cpp - Surface_mesh_simplification/examples/Surface_mesh_simplification/edge_collapse_OpenMesh.cpp - Surface_mesh_simplification/examples/Surface_mesh_simplification/edge_collapse_all_short_edges.cpp - Surface_mesh_simplification/examples/Surface_mesh_simplification/edge_collapse_bounded_normal_change.cpp - Surface_mesh_simplification/examples/Surface_mesh_simplification/edge_collapse_constrain_sharp_edges.cpp - Surface_mesh_simplification/examples/Surface_mesh_simplification/edge_collapse_constrained_border_polyhedron.cpp - Surface_mesh_simplification/examples/Surface_mesh_simplification/edge_collapse_constrained_border_surface_mesh.cpp - Surface_mesh_simplification/examples/Surface_mesh_simplification/edge_collapse_enriched_polyhedron.cpp - Surface_mesh_simplification/examples/Surface_mesh_simplification/edge_collapse_garland_heckbert.cpp - Surface_mesh_simplification/examples/Surface_mesh_simplification/edge_collapse_linear_cell_complex.cpp - Surface_mesh_simplification/examples/Surface_mesh_simplification/edge_collapse_polyhedron.cpp - Surface_mesh_simplification/examples/Surface_mesh_simplification/edge_collapse_surface_mesh.cpp - Surface_mesh_simplification/examples/Surface_mesh_simplification/edge_collapse_visitor_surface_mesh.cpp - Surface_mesh_skeletonization/examples/Surface_mesh_skeletonization/MCF_Skeleton_LCC_example.cpp - Surface_mesh_skeletonization/examples/Surface_mesh_skeletonization/MCF_Skeleton_example.cpp - Surface_mesh_skeletonization/examples/Surface_mesh_skeletonization/MCF_Skeleton_sm_example.cpp - Surface_mesh_skeletonization/examples/Surface_mesh_skeletonization/segmentation_example.cpp - Surface_mesh_skeletonization/examples/Surface_mesh_skeletonization/simple_mcfskel_LCC_example.cpp - Surface_mesh_skeletonization/examples/Surface_mesh_skeletonization/simple_mcfskel_example.cpp - Surface_mesh_skeletonization/examples/Surface_mesh_skeletonization/simple_mcfskel_sm_example.cpp - Surface_mesh_topology/examples/Surface_mesh_topology/edgewidth_lcc.cpp - Surface_mesh_topology/examples/Surface_mesh_topology/edgewidth_surface_mesh.cpp - Surface_mesh_topology/examples/Surface_mesh_topology/facewidth.cpp - Surface_mesh_topology/examples/Surface_mesh_topology/map_2_constructor.cpp - Surface_mesh_topology/examples/Surface_mesh_topology/open_path_homotopy.cpp - Surface_mesh_topology/examples/Surface_mesh_topology/path_homotopy.cpp - Surface_mesh_topology/examples/Surface_mesh_topology/path_homotopy_double_torus.cpp - Surface_mesh_topology/examples/Surface_mesh_topology/path_homotopy_torus.cpp - Surface_mesh_topology/examples/Surface_mesh_topology/path_homotopy_with_sm_and_polyhedron.cpp - Surface_mesh_topology/examples/Surface_mesh_topology/path_homotopy_with_symbols.cpp - Surface_mesh_topology/examples/Surface_mesh_topology/path_homotopy_with_symbols_2.cpp - Surface_mesh_topology/examples/Surface_mesh_topology/shortest_noncontractible_cycle.cpp - Surface_mesh_topology/examples/Surface_mesh_topology/shortest_noncontractible_cycle_2.cpp - Surface_mesh_topology/examples/Surface_mesh_topology/unsew_edgewidth_repeatedly.cpp - Surface_mesher/examples/Surface_mesher/mesh_a_3d_gray_image.cpp - Surface_mesher/examples/Surface_mesher/mesh_an_implicit_function.cpp - Surface_sweep_2/examples/Surface_sweep_2/plane_sweep.cpp - TDS_3/examples/TDS_3/linking_2d_and_3d.cpp - TDS_3/examples/TDS_3/tds.cpp - Tetrahedral_remeshing/examples/Tetrahedral_remeshing/mesh_and_remesh_polyhedral_domain_with_features.cpp - Tetrahedral_remeshing/examples/Tetrahedral_remeshing/tetrahedral_remeshing_example.cpp - Tetrahedral_remeshing/examples/Tetrahedral_remeshing/tetrahedral_remeshing_from_mesh.cpp - Tetrahedral_remeshing/examples/Tetrahedral_remeshing/tetrahedral_remeshing_of_one_subdomain.cpp - Tetrahedral_remeshing/examples/Tetrahedral_remeshing/tetrahedral_remeshing_with_features.cpp - Triangulation/examples/Triangulation/barycentric_subdivision.cpp - Triangulation/examples/Triangulation/convex_hull.cpp - Triangulation/examples/Triangulation/delaunay_triangulation.cpp - Triangulation/examples/Triangulation/regular_triangulation.cpp - Triangulation/examples/Triangulation/triangulation.cpp - Triangulation/examples/Triangulation/triangulation1.cpp - Triangulation/examples/Triangulation/triangulation2.cpp - Triangulation/examples/Triangulation/triangulation_data_structure_dynamic.cpp - Triangulation/examples/Triangulation/triangulation_data_structure_static.cpp - Triangulation_2/examples/Triangulation_2/adding_handles.cpp - Triangulation_2/examples/Triangulation_2/colored_face.cpp - Triangulation_2/examples/Triangulation_2/constrained.cpp - Triangulation_2/examples/Triangulation_2/constrained_hierarchy_plus.cpp - Triangulation_2/examples/Triangulation_2/constrained_plus.cpp - Triangulation_2/examples/Triangulation_2/copy_triangulation_2.cpp - Triangulation_2/examples/Triangulation_2/draw_triangulation_2.cpp - Triangulation_2/examples/Triangulation_2/for_loop_2.cpp - Triangulation_2/examples/Triangulation_2/hierarchy.cpp - Triangulation_2/examples/Triangulation_2/info_insert_with_pair_iterator_2.cpp - Triangulation_2/examples/Triangulation_2/info_insert_with_pair_iterator_regular_2.cpp - Triangulation_2/examples/Triangulation_2/info_insert_with_transform_iterator_2.cpp - Triangulation_2/examples/Triangulation_2/info_insert_with_zip_iterator_2.cpp - Triangulation_2/examples/Triangulation_2/low_dimensional.cpp - Triangulation_2/examples/Triangulation_2/polygon_triangulation.cpp - Triangulation_2/examples/Triangulation_2/polylines_triangulation.cpp - Triangulation_2/examples/Triangulation_2/print_cropped_voronoi.cpp - Triangulation_2/examples/Triangulation_2/regular.cpp - Triangulation_2/examples/Triangulation_2/segment_soup_to_polylines.cpp - Triangulation_2/examples/Triangulation_2/terrain.cpp - Triangulation_2/examples/Triangulation_2/terrain_with_info.cpp - Triangulation_2/examples/Triangulation_2/triangulation_prog1.cpp - Triangulation_2/examples/Triangulation_2/voronoi.cpp - Triangulation_3/examples/Triangulation_3/adding_handles_3.cpp - Triangulation_3/examples/Triangulation_3/color.cpp - Triangulation_3/examples/Triangulation_3/copy_triangulation_3.cpp - Triangulation_3/examples/Triangulation_3/draw_triangulation_3.cpp - Triangulation_3/examples/Triangulation_3/fast_location_3.cpp - Triangulation_3/examples/Triangulation_3/find_conflicts_3.cpp - Triangulation_3/examples/Triangulation_3/for_loop.cpp - Triangulation_3/examples/Triangulation_3/info_insert_with_pair_iterator.cpp - Triangulation_3/examples/Triangulation_3/info_insert_with_pair_iterator_regular.cpp - Triangulation_3/examples/Triangulation_3/info_insert_with_transform_iterator.cpp - Triangulation_3/examples/Triangulation_3/info_insert_with_zip_iterator.cpp - Triangulation_3/examples/Triangulation_3/parallel_insertion_and_removal_in_regular_3.cpp - Triangulation_3/examples/Triangulation_3/parallel_insertion_in_delaunay_3.cpp - Triangulation_3/examples/Triangulation_3/regular_3.cpp - Triangulation_3/examples/Triangulation_3/regular_with_info_3.cpp - Triangulation_3/examples/Triangulation_3/sequential_parallel.cpp - Triangulation_3/examples/Triangulation_3/simple_triangulation_3.cpp - Triangulation_3/examples/Triangulation_3/simplex.cpp - Visibility_2/examples/Visibility_2/general_polygon_example.cpp - Visibility_2/examples/Visibility_2/simple_polygon_visibility_2.cpp - Voronoi_diagram_2/examples/Voronoi_diagram_2/draw_voronoi_diagram_2.cpp - Voronoi_diagram_2/examples/Voronoi_diagram_2/vd_2_point_location.cpp - Voronoi_diagram_2/examples/Voronoi_diagram_2/vd_2_point_location_sdg_linf.cpp - ]=]) -separate_arguments(example_files UNIX_COMMAND ${list_of_examples_txt}) diff --git a/Installation/cmake/modules/list_of_documented_headers.cmake b/Installation/cmake/modules/list_of_documented_headers.cmake deleted file mode 100644 index 37317a5e5f5..00000000000 --- a/Installation/cmake/modules/list_of_documented_headers.cmake +++ /dev/null @@ -1,1002 +0,0 @@ -set(list_of_documented_headers_txt [=[ - CGAL/AABB_face_graph_triangle_primitive.h - CGAL/AABB_halfedge_graph_segment_primitive.h - CGAL/AABB_polyhedron_segment_primitive.h - CGAL/AABB_polyhedron_triangle_primitive.h - CGAL/AABB_primitive.h - CGAL/AABB_segment_primitive.h - CGAL/AABB_traits.h - CGAL/AABB_tree.h - CGAL/AABB_triangle_primitive.h - CGAL/Advancing_front_surface_reconstruction.h - CGAL/Advancing_front_surface_reconstruction_cell_base_3.h - CGAL/Advancing_front_surface_reconstruction_vertex_base_3.h - CGAL/Aff_transformation_2.h - CGAL/Aff_transformation_3.h - CGAL/Algebraic_kernel_d_1.h - CGAL/Algebraic_kernel_d_2.h - CGAL/Algebraic_kernel_for_circles_2_2.h - CGAL/Algebraic_kernel_for_spheres_2_3.h - CGAL/Algebraic_kernel_rs_gmpq_d_1.h - CGAL/Algebraic_kernel_rs_gmpz_d_1.h - CGAL/Algebraic_structure_traits.h - CGAL/Alpha_shape_2.h - CGAL/Alpha_shape_3.h - CGAL/Alpha_shape_cell_base_3.h - CGAL/Alpha_shape_face_base_2.h - CGAL/Alpha_shape_vertex_base_2.h - CGAL/Alpha_shape_vertex_base_3.h - CGAL/Apollonius_graph_2.h - CGAL/Apollonius_graph_adaptation_policies_2.h - CGAL/Apollonius_graph_adaptation_traits_2.h - CGAL/Apollonius_graph_filtered_traits_2.h - CGAL/Apollonius_graph_hierarchy_2.h - CGAL/Apollonius_graph_hierarchy_vertex_base_2.h - CGAL/Apollonius_graph_traits_2.h - CGAL/Apollonius_graph_vertex_base_2.h - CGAL/Apollonius_site_2.h - CGAL/Approximate_min_ellipsoid_d.h - CGAL/Approximate_min_ellipsoid_d_traits_2.h - CGAL/Approximate_min_ellipsoid_d_traits_3.h - CGAL/Approximate_min_ellipsoid_d_traits_d.h - CGAL/Arr_Bezier_curve_traits_2.h - CGAL/Arr_accessor.h - CGAL/Arr_algebraic_segment_traits_2.h - CGAL/Arr_batched_point_location.h - CGAL/Arr_circle_segment_traits_2.h - CGAL/Arr_circular_arc_traits_2.h - CGAL/Arr_circular_line_arc_traits_2.h - CGAL/Arr_conic_traits_2.h - CGAL/Arr_consolidated_curve_data_traits_2.h - CGAL/Arr_curve_data_traits_2.h - CGAL/Arr_dcel_base.h - CGAL/Arr_default_dcel.h - CGAL/Arr_default_overlay_traits.h - CGAL/Arr_enums.h - CGAL/Arr_extended_dcel.h - CGAL/Arr_face_index_map.h - CGAL/Arr_landmarks_point_location.h - CGAL/Arr_line_arc_traits_2.h - CGAL/Arr_linear_traits_2.h - CGAL/Arr_naive_point_location.h - CGAL/Arr_non_caching_segment_basic_traits_2.h - CGAL/Arr_non_caching_segment_traits_2.h - CGAL/Arr_observer.h - CGAL/Arr_overlay_2.h - CGAL/Arr_point_location_result.h - CGAL/Arr_polycurve_traits_2.h - CGAL/Arr_polyline_traits_2.h - CGAL/Arr_rational_function_traits_2.h - CGAL/Arr_segment_traits_2.h - CGAL/Arr_tags.h - CGAL/Arr_trapezoid_ric_point_location.h - CGAL/Arr_vertex_index_map.h - CGAL/Arr_vertical_decomposition_2.h - CGAL/Arr_walk_along_line_point_location.h - CGAL/Arrangement_2.h - CGAL/Arrangement_with_history_2.h - CGAL/Barycentric_coordinates_2/Discrete_harmonic_2.h - CGAL/Barycentric_coordinates_2/Generalized_barycentric_coordinates_2.h - CGAL/Barycentric_coordinates_2/Mean_value_2.h - CGAL/Barycentric_coordinates_2/Segment_coordinates_2.h - CGAL/Barycentric_coordinates_2/Triangle_coordinates_2.h - CGAL/Barycentric_coordinates_2/Wachspress_2.h - CGAL/Bbox_2.h - CGAL/Bbox_3.h - CGAL/Boolean_set_operations_2.h - CGAL/Boolean_set_operations_2/Gps_default_dcel.h - CGAL/Box_intersection_d/Box_d.h - CGAL/Box_intersection_d/Box_traits_d.h - CGAL/Box_intersection_d/Box_with_handle_d.h - CGAL/CC_safe_handle.h - CGAL/CGAL_Ipelet_base.h - CGAL/CORE_BigFloat.h - CGAL/CORE_BigInt.h - CGAL/CORE_BigRat.h - CGAL/CORE_Expr.h - CGAL/Cartesian.h - CGAL/Cartesian_converter.h - CGAL/Cartesian_d.h - CGAL/Cell_attribute.h - CGAL/Cell_attribute_with_id.h - CGAL/Cell_attribute_with_point.h - CGAL/Cell_attribute_with_point_and_id.h - CGAL/Circle_2.h - CGAL/Circle_3.h - CGAL/Circle_type.h - CGAL/Circular_arc_2.h - CGAL/Circular_arc_3.h - CGAL/Circular_arc_point_2.h - CGAL/Circular_arc_point_3.h - CGAL/Circular_kernel_2.h - CGAL/Circular_kernel_intersections.h - CGAL/Classification/Cluster.h - CGAL/Classification/ETHZ/Random_forest_classifier.h - CGAL/Classification/Evaluation.h - CGAL/Classification/Feature/Cluster_mean_of_feature.h - CGAL/Classification/Feature/Cluster_size.h - CGAL/Classification/Feature/Cluster_variance_of_feature.h - CGAL/Classification/Feature/Cluster_vertical_extent.h - CGAL/Classification/Feature/Color_channel.h - CGAL/Classification/Feature/Distance_to_plane.h - CGAL/Classification/Feature/Echo_scatter.h - CGAL/Classification/Feature/Eigenvalue.h - CGAL/Classification/Feature/Elevation.h - CGAL/Classification/Feature/Height_above.h - CGAL/Classification/Feature/Height_below.h - CGAL/Classification/Feature/Simple_feature.h - CGAL/Classification/Feature/Vertical_dispersion.h - CGAL/Classification/Feature/Vertical_range.h - CGAL/Classification/Feature/Verticality.h - CGAL/Classification/Feature_base.h - CGAL/Classification/Feature_set.h - CGAL/Classification/Label.h - CGAL/Classification/Label_set.h - CGAL/Classification/Local_eigen_analysis.h - CGAL/Classification/Mesh_feature_generator.h - CGAL/Classification/Mesh_neighborhood.h - CGAL/Classification/OpenCV/Random_forest_classifier.h - CGAL/Classification/Planimetric_grid.h - CGAL/Classification/Point_set_feature_generator.h - CGAL/Classification/Point_set_neighborhood.h - CGAL/Classification/Sum_of_weighted_features_classifier.h - CGAL/Classification/TensorFlow/Neural_network_classifier.h - CGAL/Classification/classify.h - CGAL/Classification/property_maps.h - CGAL/Coercion_traits.h - CGAL/Combination_enumerator.h - CGAL/Combinatorial_map.h - CGAL/Combinatorial_map_constructors.h - CGAL/Combinatorial_map_min_items.h - CGAL/Combinatorial_map_operations.h - CGAL/Compact_container.h - CGAL/Compact_mesh_cell_base_3.h - CGAL/Complexity_tags.h - CGAL/Compute_cone_boundaries_2.h - CGAL/Concurrent_compact_container.h - CGAL/Cone_spanners_enum_2.h - CGAL/Constrained_Delaunay_triangulation_2.h - CGAL/Constrained_triangulation_2.h - CGAL/Constrained_triangulation_face_base_2.h - CGAL/Constrained_triangulation_plus_2.h - CGAL/Construct_theta_graph_2.h - CGAL/Construct_yao_graph_2.h - CGAL/Convex_hull_3/dual/halfspace_intersection_3.h - CGAL/Convex_hull_3/dual/halfspace_intersection_interior_point_3.h - CGAL/Convex_hull_3/dual/halfspace_intersection_with_constructions_3.h - CGAL/Convex_hull_d.h - CGAL/Convex_hull_d_traits_3.h - CGAL/Convex_hull_traits_3.h - CGAL/Convex_hull_traits_adapter_2.h - CGAL/Curves_on_surface_topology.h - CGAL/Dart.h - CGAL/Default.h - CGAL/Deformation_Eigen_closest_rotation_traits_3.h - CGAL/Deformation_Eigen_polar_closest_rotation_traits_3.h - CGAL/Delaunay_d.h - CGAL/Delaunay_mesh_criteria_2.h - CGAL/Delaunay_mesh_face_base_2.h - CGAL/Delaunay_mesh_size_criteria_2.h - CGAL/Delaunay_mesh_vertex_base_2.h - CGAL/Delaunay_mesher_2.h - CGAL/Delaunay_triangulation.h - CGAL/Delaunay_triangulation_2.h - CGAL/Delaunay_triangulation_3.h - CGAL/Delaunay_triangulation_adaptation_policies_2.h - CGAL/Delaunay_triangulation_adaptation_traits_2.h - CGAL/Delaunay_triangulation_cell_base_3.h - CGAL/Delaunay_triangulation_cell_base_with_circumcenter_3.h - CGAL/Dimension.h - CGAL/Direction_2.h - CGAL/Direction_3.h - CGAL/Dynamic_matrix.h - CGAL/Eigen_diagonalize_traits.h - CGAL/Eigen_matrix.h - CGAL/Eigen_solver_traits.h - CGAL/Eigen_sparse_matrix.h - CGAL/Eigen_svd.h - CGAL/Eigen_vector.h - CGAL/Env_plane_traits_3.h - CGAL/Env_sphere_traits_3.h - CGAL/Env_surface_data_traits_3.h - CGAL/Env_triangle_traits_3.h - CGAL/Envelope_diagram_1.h - CGAL/Epeck_d.h - CGAL/Epick_d.h - CGAL/Euclidean_distance.h - CGAL/Euclidean_distance_sphere_point.h - CGAL/Euler_integrator_2.h - CGAL/Exact_circular_kernel_2.h - CGAL/Exact_integer.h - CGAL/Exact_predicates_exact_constructions_kernel.h - CGAL/Exact_predicates_exact_constructions_kernel_with_kth_root.h - CGAL/Exact_predicates_exact_constructions_kernel_with_root_of.h - CGAL/Exact_predicates_exact_constructions_kernel_with_sqrt.h - CGAL/Exact_predicates_inexact_constructions_kernel.h - CGAL/Exact_rational.h - CGAL/Exact_spherical_kernel_3.h - CGAL/Exponent_vector.h - CGAL/Extended_cartesian.h - CGAL/Extended_homogeneous.h - CGAL/Extremal_polygon_traits_2.h - CGAL/Extreme_points_traits_adapter_3.h - CGAL/FPU.h - CGAL/Filtered_extended_homogeneous.h - CGAL/Filtered_kernel.h - CGAL/Filtered_predicate.h - CGAL/Fixed_alpha_shape_3.h - CGAL/Fixed_alpha_shape_cell_base_3.h - CGAL/Fixed_alpha_shape_vertex_base_3.h - CGAL/Fourtuple.h - CGAL/Fraction_traits.h - CGAL/Fuzzy_iso_box.h - CGAL/Fuzzy_sphere.h - CGAL/GLPK_mixed_integer_program_traits.h - CGAL/General_polygon_2.h - CGAL/General_polygon_set_2.h - CGAL/General_polygon_with_holes_2.h - CGAL/Generalized_map.h - CGAL/Generic_map_min_items.h - CGAL/Gmpfi.h - CGAL/Gmpfr.h - CGAL/Gmpq.h - CGAL/Gmpz.h - CGAL/Gmpzf.h - CGAL/Gps_circle_segment_traits_2.h - CGAL/Gps_segment_traits_2.h - CGAL/Gps_traits_2.h - CGAL/Gray_image_mesh_domain_3.h - CGAL/Gray_level_image_3.h - CGAL/HalfedgeDS_bases.h - CGAL/HalfedgeDS_const_decorator.h - CGAL/HalfedgeDS_decorator.h - CGAL/HalfedgeDS_default.h - CGAL/HalfedgeDS_face_base.h - CGAL/HalfedgeDS_face_max_base_with_id.h - CGAL/HalfedgeDS_face_min_base.h - CGAL/HalfedgeDS_halfedge_base.h - CGAL/HalfedgeDS_halfedge_max_base_with_id.h - CGAL/HalfedgeDS_halfedge_min_base.h - CGAL/HalfedgeDS_items_2.h - CGAL/HalfedgeDS_items_decorator.h - CGAL/HalfedgeDS_list.h - CGAL/HalfedgeDS_min_items.h - CGAL/HalfedgeDS_vector.h - CGAL/HalfedgeDS_vertex_base.h - CGAL/HalfedgeDS_vertex_max_base_with_id.h - CGAL/HalfedgeDS_vertex_min_base.h - CGAL/Handle_hash_function.h - CGAL/Heat_method_3/Surface_mesh_geodesic_distances_3.h - CGAL/Hilbert_policy_tags.h - CGAL/Hilbert_sort_2.h - CGAL/Hilbert_sort_3.h - CGAL/Hilbert_sort_d.h - CGAL/Hilbert_sort_on_sphere_3.h - CGAL/Homogeneous.h - CGAL/Homogeneous_converter.h - CGAL/Homogeneous_d.h - CGAL/Hyperbolic_Delaunay_triangulation_2.h - CGAL/Hyperbolic_Delaunay_triangulation_CK_traits_2.h - CGAL/Hyperbolic_Delaunay_triangulation_traits_2.h - CGAL/Hyperbolic_octagon_translation.h - CGAL/Hyperbolic_triangulation_face_base_2.h - CGAL/IO/Arr_iostream.h - CGAL/IO/Arr_text_formatter.h - CGAL/IO/Arr_with_history_iostream.h - CGAL/IO/Arr_with_history_text_formatter.h - CGAL/IO/Color.h - CGAL/IO/Complex_2_in_triangulation_3_file_writer.h - CGAL/IO/File_medit.h - CGAL/IO/Geomview_stream.h - CGAL/IO/Istream_iterator.h - CGAL/IO/Nef_polyhedron_iostream_3.h - CGAL/IO/Ostream_iterator.h - CGAL/IO/Polyhedron_inventor_ostream.h - CGAL/IO/Polyhedron_iostream.h - CGAL/IO/Triangulation_geomview_ostream_3.h - CGAL/IO/Verbose_ostream.h - CGAL/IO/WKT.h - CGAL/IO/facets_in_complex_2_to_triangle_mesh.h - CGAL/IO/facets_in_complex_3_to_triangle_mesh.h - CGAL/IO/io.h - CGAL/IO/output_to_vtu.h - CGAL/IO/read_las_points.h - CGAL/IO/read_off_points.h - CGAL/IO/read_ply_points.h - CGAL/IO/read_xyz_points.h - CGAL/IO/write_las_points.h - CGAL/IO/write_off_points.h - CGAL/IO/write_ply_points.h - CGAL/IO/write_vtu.h - CGAL/IO/write_xyz_points.h - CGAL/Identity_policy_2.h - CGAL/Image_3.h - CGAL/Implicit_mesh_domain_3.h - CGAL/Implicit_surface_3.h - CGAL/Implicit_to_labeled_subdomains_function_wrapper.h - CGAL/Implicit_to_labeling_function_wrapper.h - CGAL/In_place_list.h - CGAL/Incremental_neighbor_search.h - CGAL/Interpolation_gradient_fitting_traits_2.h - CGAL/Interpolation_traits_2.h - CGAL/Interval_nt.h - CGAL/Interval_skip_list.h - CGAL/Interval_skip_list_interval.h - CGAL/Iso_cuboid_3.h - CGAL/Iso_rectangle_2.h - CGAL/Iterator_range.h - CGAL/K_neighbor_search.h - CGAL/Kd_tree.h - CGAL/Kd_tree_node.h - CGAL/Kd_tree_rectangle.h - CGAL/Kernel/global_functions.h - CGAL/Kernel_d/Aff_transformation_d.h - CGAL/Kernel_d/Direction_d.h - CGAL/Kernel_d/Hyperplane_d.h - CGAL/Kernel_d/Iso_box_d.h - CGAL/Kernel_d/Line_d.h - CGAL/Kernel_d/Point_d.h - CGAL/Kernel_d/Ray_d.h - CGAL/Kernel_d/Segment_d.h - CGAL/Kernel_d/Sphere_d.h - CGAL/Kernel_d/Vector_d.h - CGAL/Kernel_traits.h - CGAL/Labeled_image_mesh_domain_3.h - CGAL/Labeled_mesh_domain_3.h - CGAL/Largest_empty_iso_rectangle_2.h - CGAL/Lazy_exact_nt.h - CGAL/Level_interval.h - CGAL/Line_2.h - CGAL/Line_3.h - CGAL/Line_arc_2.h - CGAL/Line_arc_3.h - CGAL/Linear_algebraCd.h - CGAL/Linear_algebraHd.h - CGAL/Linear_cell_complex.h - CGAL/Linear_cell_complex_bgl_min_items.h - CGAL/Linear_cell_complex_constructors.h - CGAL/Linear_cell_complex_for_bgl_combinatorial_map_helper.h - CGAL/Linear_cell_complex_for_combinatorial_map.h - CGAL/Linear_cell_complex_for_generalized_map.h - CGAL/Linear_cell_complex_min_items.h - CGAL/Linear_cell_complex_operations.h - CGAL/Linear_cell_complex_traits.h - CGAL/Location_policy.h - CGAL/MP_Float.h - CGAL/Manhattan_distance_iso_box_point.h - CGAL/Mean_curvature_flow_skeletonization.h - CGAL/Memory_sizer.h - CGAL/Mesh_2/Face_badness.h - CGAL/Mesh_3/initialize_triangulation_from_labeled_image.h - CGAL/Mesh_3/polylines_to_protect.h - CGAL/Mesh_cell_base_3.h - CGAL/Mesh_cell_criteria_3.h - CGAL/Mesh_complex_3_in_triangulation_3.h - CGAL/Mesh_constant_domain_field_3.h - CGAL/Mesh_criteria_3.h - CGAL/Mesh_domain_with_polyline_features_3.h - CGAL/Mesh_edge_criteria_3.h - CGAL/Mesh_facet_criteria_3.h - CGAL/Mesh_facet_topology.h - CGAL/Mesh_optimization_return_code.h - CGAL/Mesh_polyhedron_3.h - CGAL/Mesh_triangulation_3.h - CGAL/Mesh_vertex_base_3.h - CGAL/Min_annulus_d.h - CGAL/Min_circle_2.h - CGAL/Min_circle_2_traits_2.h - CGAL/Min_ellipse_2.h - CGAL/Min_ellipse_2_traits_2.h - CGAL/Min_quadrilateral_traits_2.h - CGAL/Min_sphere_annulus_d_traits_2.h - CGAL/Min_sphere_annulus_d_traits_3.h - CGAL/Min_sphere_annulus_d_traits_d.h - CGAL/Min_sphere_d.h - CGAL/Min_sphere_of_points_d_traits_2.h - CGAL/Min_sphere_of_points_d_traits_3.h - CGAL/Min_sphere_of_points_d_traits_d.h - CGAL/Min_sphere_of_spheres_d.h - CGAL/Min_sphere_of_spheres_d_traits_2.h - CGAL/Min_sphere_of_spheres_d_traits_3.h - CGAL/Min_sphere_of_spheres_d_traits_d.h - CGAL/Mixed_integer_program_traits.h - CGAL/Modifier_base.h - CGAL/Modular_traits.h - CGAL/Monge_via_jet_fitting.h - CGAL/Mpzf.h - CGAL/Multiscale_sort.h - CGAL/Multiset.h - CGAL/NT_converter.h - CGAL/Nef_nary_union_3.h - CGAL/Nef_polyhedron_2.h - CGAL/Nef_polyhedron_3.h - CGAL/Nef_polyhedron_S2.h - CGAL/Number_type_checker.h - CGAL/OFF_to_nef_3.h - CGAL/Object.h - CGAL/OpenGR/compute_registration_transformation.h - CGAL/OpenGR/register_point_sets.h - CGAL/Optimal_bounding_box/Oriented_bounding_box_traits_3.h - CGAL/Optimal_bounding_box/oriented_bounding_box.h - CGAL/Optimal_transportation_reconstruction_2.h - CGAL/Origin.h - CGAL/Orthogonal_incremental_neighbor_search.h - CGAL/Orthogonal_k_neighbor_search.h - CGAL/Partition_is_valid_traits_2.h - CGAL/Partition_traits_2.h - CGAL/Path_on_surface.h - CGAL/Periodic_2_Delaunay_triangulation_2.h - CGAL/Periodic_2_Delaunay_triangulation_traits_2.h - CGAL/Periodic_2_offset_2.h - CGAL/Periodic_2_triangulation_2.h - CGAL/Periodic_2_triangulation_face_base_2.h - CGAL/Periodic_2_triangulation_hierarchy_2.h - CGAL/Periodic_2_triangulation_traits_2.h - CGAL/Periodic_2_triangulation_vertex_base_2.h - CGAL/Periodic_3_Delaunay_triangulation_3.h - CGAL/Periodic_3_Delaunay_triangulation_traits_3.h - CGAL/Periodic_3_function_wrapper.h - CGAL/Periodic_3_mesh_3/IO/File_medit.h - CGAL/Periodic_3_mesh_3/config.h - CGAL/Periodic_3_mesh_triangulation_3.h - CGAL/Periodic_3_offset_3.h - CGAL/Periodic_3_regular_triangulation_3.h - CGAL/Periodic_3_regular_triangulation_traits_3.h - CGAL/Periodic_3_triangulation_3.h - CGAL/Periodic_3_triangulation_ds_cell_base_3.h - CGAL/Periodic_3_triangulation_ds_vertex_base_3.h - CGAL/Periodic_3_triangulation_hierarchy_3.h - CGAL/Periodic_3_triangulation_traits_3.h - CGAL/Periodic_4_hyperbolic_Delaunay_triangulation_2.h - CGAL/Periodic_4_hyperbolic_Delaunay_triangulation_traits_2.h - CGAL/Periodic_4_hyperbolic_triangulation_2.h - CGAL/Periodic_4_hyperbolic_triangulation_face_base_2.h - CGAL/Periodic_4_hyperbolic_triangulation_vertex_base_2.h - CGAL/Plane_3.h - CGAL/Plane_separator.h - CGAL/Point_2.h - CGAL/Point_3.h - CGAL/Point_container.h - CGAL/Point_set_2.h - CGAL/Point_set_3.h - CGAL/Point_set_3/IO.h - CGAL/Poisson_reconstruction_function.h - CGAL/Polygon_2.h - CGAL/Polygon_2_algorithms.h - CGAL/Polygon_convex_decomposition_2.h - CGAL/Polygon_mesh_processing/bbox.h - CGAL/Polygon_mesh_processing/border.h - CGAL/Polygon_mesh_processing/clip.h - CGAL/Polygon_mesh_processing/compute_normal.h - CGAL/Polygon_mesh_processing/connected_components.h - CGAL/Polygon_mesh_processing/corefinement.h - CGAL/Polygon_mesh_processing/detect_features.h - CGAL/Polygon_mesh_processing/distance.h - CGAL/Polygon_mesh_processing/extrude.h - CGAL/Polygon_mesh_processing/fair.h - CGAL/Polygon_mesh_processing/intersection.h - CGAL/Polygon_mesh_processing/locate.h - CGAL/Polygon_mesh_processing/manifoldness.h - CGAL/Polygon_mesh_processing/measure.h - CGAL/Polygon_mesh_processing/merge_border_vertices.h - CGAL/Polygon_mesh_processing/orient_polygon_soup.h - CGAL/Polygon_mesh_processing/orient_polygon_soup_extension.h - CGAL/Polygon_mesh_processing/orientation.h - CGAL/Polygon_mesh_processing/polygon_mesh_to_polygon_soup.h - CGAL/Polygon_mesh_processing/polygon_soup_to_polygon_mesh.h - CGAL/Polygon_mesh_processing/random_perturbation.h - CGAL/Polygon_mesh_processing/refine.h - CGAL/Polygon_mesh_processing/remesh.h - CGAL/Polygon_mesh_processing/repair.h - CGAL/Polygon_mesh_processing/repair_degeneracies.h - CGAL/Polygon_mesh_processing/repair_polygon_soup.h - CGAL/Polygon_mesh_processing/repair_self_intersections.h - CGAL/Polygon_mesh_processing/self_intersections.h - CGAL/Polygon_mesh_processing/shape_predicates.h - CGAL/Polygon_mesh_processing/smooth_mesh.h - CGAL/Polygon_mesh_processing/smooth_shape.h - CGAL/Polygon_mesh_processing/stitch_borders.h - CGAL/Polygon_mesh_processing/transform.h - CGAL/Polygon_mesh_processing/triangulate_faces.h - CGAL/Polygon_mesh_processing/triangulate_hole.h - CGAL/Polygon_mesh_slicer.h - CGAL/Polygon_nop_decomposition_2.h - CGAL/Polygon_offset_builder_2.h - CGAL/Polygon_offset_builder_traits_2.h - CGAL/Polygon_set_2.h - CGAL/Polygon_triangulation_decomposition_2.h - CGAL/Polygon_vertical_decomposition_2.h - CGAL/Polygon_with_holes_2.h - CGAL/Polygonal_schema.h - CGAL/Polygonal_schema_min_items.h - CGAL/Polygonal_surface_reconstruction.h - CGAL/Polyhedral_complex_mesh_domain_3.h - CGAL/Polyhedral_mesh_domain_3.h - CGAL/Polyhedral_mesh_domain_with_features_3.h - CGAL/Polyhedron_3.h - CGAL/Polyhedron_3_to_lcc.h - CGAL/Polyhedron_incremental_builder_3.h - CGAL/Polyhedron_items_3.h - CGAL/Polyhedron_items_with_id_3.h - CGAL/Polyhedron_min_items_3.h - CGAL/Polyhedron_traits_3.h - CGAL/Polyhedron_traits_with_normals_3.h - CGAL/Polyline_simplification_2/Hybrid_squared_distance_cost.h - CGAL/Polyline_simplification_2/Scaled_squared_distance_cost.h - CGAL/Polyline_simplification_2/Squared_distance_cost.h - CGAL/Polyline_simplification_2/Stop_above_cost_threshold.h - CGAL/Polyline_simplification_2/Stop_below_count_ratio_threshold.h - CGAL/Polyline_simplification_2/Stop_below_count_threshold.h - CGAL/Polyline_simplification_2/Vertex_base_2.h - CGAL/Polyline_simplification_2/simplify.h - CGAL/Polynomial.h - CGAL/Polynomial_traits_d.h - CGAL/Polynomial_type_generator.h - CGAL/Polynomials_1_2.h - CGAL/Polynomials_1_3.h - CGAL/Polynomials_2_2.h - CGAL/Polynomials_2_3.h - CGAL/Polynomials_for_line_3.h - CGAL/Polytope_distance_d.h - CGAL/Polytope_distance_d_traits_2.h - CGAL/Polytope_distance_d_traits_3.h - CGAL/Polytope_distance_d_traits_d.h - CGAL/Profile_counter.h - CGAL/Projection_traits_xy_3.h - CGAL/Projection_traits_xz_3.h - CGAL/Projection_traits_yz_3.h - CGAL/QP_functions.h - CGAL/QP_models.h - CGAL/QP_options.h - CGAL/QP_solution.h - CGAL/Qt/CircularArcGraphicsItem.h - CGAL/Qt/ConstrainedTriangulationGraphicsItem.h - CGAL/Qt/Converter.h - CGAL/Qt/GraphicsItem.h - CGAL/Qt/GraphicsViewCircleInput.h - CGAL/Qt/GraphicsViewCircularArcInput.h - CGAL/Qt/GraphicsViewInput.h - CGAL/Qt/GraphicsViewIsoRectangleInput.h - CGAL/Qt/GraphicsViewNavigation.h - CGAL/Qt/GraphicsViewPolylineInput.h - CGAL/Qt/PainterOstream.h - CGAL/Qt/TriangulationGraphicsItem.h - CGAL/Qt/VoronoiGraphicsItem.h - CGAL/Quotient.h - CGAL/Random.h - CGAL/Random_convex_set_traits_2.h - CGAL/Range_segment_tree_traits.h - CGAL/Range_tree_d.h - CGAL/Range_tree_k.h - CGAL/Rational_traits.h - CGAL/Ray_2.h - CGAL/Ray_3.h - CGAL/Real_embeddable_traits.h - CGAL/Real_timer.h - CGAL/Regular_grid_2.h - CGAL/Regular_triangulation.h - CGAL/Regular_triangulation_2.h - CGAL/Regular_triangulation_3.h - CGAL/Regular_triangulation_adaptation_policies_2.h - CGAL/Regular_triangulation_adaptation_traits_2.h - CGAL/Regular_triangulation_cell_base_3.h - CGAL/Regular_triangulation_cell_base_with_weighted_circumcenter_3.h - CGAL/Regular_triangulation_euclidean_traits_3.h - CGAL/Regular_triangulation_face_base_2.h - CGAL/Regular_triangulation_traits_adapter.h - CGAL/Regular_triangulation_vertex_base_2.h - CGAL/Regular_triangulation_vertex_base_3.h - CGAL/Regularization/regularize_planes.h - CGAL/Residue.h - CGAL/Ridges.h - CGAL/Rigid_triangle_mesh_collision_detection.h - CGAL/Robust_weighted_circumcenter_filtered_traits_3.h - CGAL/Root_for_circles_2_2.h - CGAL/Root_for_spheres_2_3.h - CGAL/Root_of_traits.h - CGAL/Rotational_sweep_visibility_2.h - CGAL/Runge_kutta_integrator_2.h - CGAL/SCIP_mixed_integer_program_traits.h - CGAL/Scale_space_reconstruction_3/Advancing_front_mesher.h - CGAL/Scale_space_reconstruction_3/Alpha_shape_mesher.h - CGAL/Scale_space_reconstruction_3/Jet_smoother.h - CGAL/Scale_space_reconstruction_3/Weighted_PCA_smoother.h - CGAL/Scale_space_surface_reconstruction_3.h - CGAL/Search_traits.h - CGAL/Search_traits_2.h - CGAL/Search_traits_3.h - CGAL/Search_traits_adapter.h - CGAL/Search_traits_d.h - CGAL/Segment_2.h - CGAL/Segment_3.h - CGAL/Segment_Delaunay_graph_2.h - CGAL/Segment_Delaunay_graph_Linf_2.h - CGAL/Segment_Delaunay_graph_Linf_filtered_traits_2.h - CGAL/Segment_Delaunay_graph_Linf_hierarchy_2.h - CGAL/Segment_Delaunay_graph_Linf_traits_2.h - CGAL/Segment_Delaunay_graph_adaptation_policies_2.h - CGAL/Segment_Delaunay_graph_adaptation_traits_2.h - CGAL/Segment_Delaunay_graph_filtered_traits_2.h - CGAL/Segment_Delaunay_graph_hierarchy_2.h - CGAL/Segment_Delaunay_graph_hierarchy_vertex_base_2.h - CGAL/Segment_Delaunay_graph_site_2.h - CGAL/Segment_Delaunay_graph_storage_site_2.h - CGAL/Segment_Delaunay_graph_traits_2.h - CGAL/Segment_Delaunay_graph_vertex_base_2.h - CGAL/Segment_tree_d.h - CGAL/Segment_tree_k.h - CGAL/Set_movable_separability_2/Single_mold_translational_casting/is_pullout_direction.h - CGAL/Set_movable_separability_2/Single_mold_translational_casting/pullout_directions.h - CGAL/Set_movable_separability_2/Single_mold_translational_casting/top_edges.h - CGAL/Shape_detection/Efficient_RANSAC/Cone.h - CGAL/Shape_detection/Efficient_RANSAC/Cylinder.h - CGAL/Shape_detection/Efficient_RANSAC/Efficient_RANSAC.h - CGAL/Shape_detection/Efficient_RANSAC/Efficient_RANSAC_traits.h - CGAL/Shape_detection/Efficient_RANSAC/Plane.h - CGAL/Shape_detection/Efficient_RANSAC/Shape_base.h - CGAL/Shape_detection/Efficient_RANSAC/Sphere.h - CGAL/Shape_detection/Efficient_RANSAC/Torus.h - CGAL/Shape_detection/Efficient_RANSAC/property_map.h - CGAL/Shape_detection/Region_growing/Region_growing.h - CGAL/Shape_detection/Region_growing/Region_growing_on_point_set/K_neighbor_query.h - CGAL/Shape_detection/Region_growing/Region_growing_on_point_set/Least_squares_line_fit_region.h - CGAL/Shape_detection/Region_growing/Region_growing_on_point_set/Least_squares_line_fit_sorting.h - CGAL/Shape_detection/Region_growing/Region_growing_on_point_set/Least_squares_plane_fit_region.h - CGAL/Shape_detection/Region_growing/Region_growing_on_point_set/Least_squares_plane_fit_sorting.h - CGAL/Shape_detection/Region_growing/Region_growing_on_point_set/Sphere_neighbor_query.h - CGAL/Shape_detection/Region_growing/Region_growing_on_polygon_mesh/Least_squares_plane_fit_region.h - CGAL/Shape_detection/Region_growing/Region_growing_on_polygon_mesh/Least_squares_plane_fit_sorting.h - CGAL/Shape_detection/Region_growing/Region_growing_on_polygon_mesh/One_ring_neighbor_query.h - CGAL/Shape_detection/deprecated/Region_growing.h - CGAL/Shape_detection/deprecated/Shape_detection_traits.h - CGAL/Side_of_triangle_mesh.h - CGAL/Simple_cartesian.h - CGAL/Simple_homogeneous.h - CGAL/Simple_polygon_visibility_2.h - CGAL/Sixtuple.h - CGAL/Skin_surface_3.h - CGAL/Skin_surface_polyhedral_items_3.h - CGAL/Skin_surface_traits_3.h - CGAL/Small_side_angle_bisector_decomposition_2.h - CGAL/Snap_rounding_2.h - CGAL/Snap_rounding_traits_2.h - CGAL/Sorted_matrix_search_traits_adaptor.h - CGAL/Spatial_lock_grid_3.h - CGAL/Spatial_sort_traits_adapter_2.h - CGAL/Spatial_sort_traits_adapter_3.h - CGAL/Spatial_sort_traits_adapter_d.h - CGAL/Sphere_3.h - CGAL/Spherical_kernel_3.h - CGAL/Spherical_kernel_intersections.h - CGAL/Splitters.h - CGAL/Sqrt_extension.h - CGAL/Straight_skeleton_2.h - CGAL/Straight_skeleton_builder_2.h - CGAL/Straight_skeleton_builder_traits_2.h - CGAL/Straight_skeleton_converter_2.h - CGAL/Straight_skeleton_face_base_2.h - CGAL/Straight_skeleton_halfedge_base_2.h - CGAL/Straight_skeleton_vertex_base_2.h - CGAL/Stream_lines_2.h - CGAL/Subdivision_method_3/subdivision_hosts_3.h - CGAL/Subdivision_method_3/subdivision_masks_3.h - CGAL/Subdivision_method_3/subdivision_methods_3.h - CGAL/Surface_mesh.h - CGAL/Surface_mesh/Surface_mesh.h - CGAL/Surface_mesh_approximation/L21_metric_plane_proxy.h - CGAL/Surface_mesh_approximation/L2_metric_plane_proxy.h - CGAL/Surface_mesh_approximation/approximate_triangle_mesh.h - CGAL/Surface_mesh_cell_base_3.h - CGAL/Surface_mesh_complex_2_in_triangulation_3.h - CGAL/Surface_mesh_default_criteria_3.h - CGAL/Surface_mesh_default_triangulation_3.h - CGAL/Surface_mesh_deformation.h - CGAL/Surface_mesh_parameterization/ARAP_parameterizer_3.h - CGAL/Surface_mesh_parameterization/Barycentric_mapping_parameterizer_3.h - CGAL/Surface_mesh_parameterization/Circular_border_parameterizer_3.h - CGAL/Surface_mesh_parameterization/Discrete_authalic_parameterizer_3.h - CGAL/Surface_mesh_parameterization/Discrete_conformal_map_parameterizer_3.h - CGAL/Surface_mesh_parameterization/Error_code.h - CGAL/Surface_mesh_parameterization/Fixed_border_parameterizer_3.h - CGAL/Surface_mesh_parameterization/LSCM_parameterizer_3.h - CGAL/Surface_mesh_parameterization/MVC_post_processor_3.h - CGAL/Surface_mesh_parameterization/Mean_value_coordinates_parameterizer_3.h - CGAL/Surface_mesh_parameterization/Orbifold_Tutte_parameterizer_3.h - CGAL/Surface_mesh_parameterization/Square_border_parameterizer_3.h - CGAL/Surface_mesh_parameterization/Two_vertices_parameterizer_3.h - CGAL/Surface_mesh_parameterization/orbifold_enums.h - CGAL/Surface_mesh_parameterization/orbifold_shortest_path.h - CGAL/Surface_mesh_parameterization/parameterize.h - CGAL/Surface_mesh_shortest_path.h - CGAL/Surface_mesh_shortest_path/Surface_mesh_shortest_path.h - CGAL/Surface_mesh_shortest_path/Surface_mesh_shortest_path_traits.h - CGAL/Surface_mesh_simplification/Edge_collapse_visitor_base.h - CGAL/Surface_mesh_simplification/Policies/Edge_collapse/Bounded_distance_placement.h - CGAL/Surface_mesh_simplification/Policies/Edge_collapse/Bounded_normal_change_placement.h - CGAL/Surface_mesh_simplification/Policies/Edge_collapse/Constrained_placement.h - CGAL/Surface_mesh_simplification/Policies/Edge_collapse/Count_ratio_stop_predicate.h - CGAL/Surface_mesh_simplification/Policies/Edge_collapse/Count_stop_predicate.h - CGAL/Surface_mesh_simplification/Policies/Edge_collapse/Edge_length_cost.h - CGAL/Surface_mesh_simplification/Policies/Edge_collapse/Edge_length_stop_predicate.h - CGAL/Surface_mesh_simplification/Policies/Edge_collapse/Edge_profile.h - CGAL/Surface_mesh_simplification/Policies/Edge_collapse/GarlandHeckbert_policies.h - CGAL/Surface_mesh_simplification/Policies/Edge_collapse/LindstromTurk_cost.h - CGAL/Surface_mesh_simplification/Policies/Edge_collapse/LindstromTurk_placement.h - CGAL/Surface_mesh_simplification/Policies/Edge_collapse/Midpoint_placement.h - CGAL/Surface_mesh_simplification/edge_collapse.h - CGAL/Surface_mesh_traits_generator_3.h - CGAL/Surface_mesh_vertex_base_3.h - CGAL/Surface_mesher/Poisson_implicit_surface_oracle_3.h - CGAL/Surface_sweep_2_algorithms.h - CGAL/Tetrahedral_remeshing/Remeshing_cell_base_3.h - CGAL/Tetrahedral_remeshing/Remeshing_triangulation_3.h - CGAL/Tetrahedral_remeshing/Remeshing_vertex_base_3.h - CGAL/Tetrahedral_remeshing/Sizing_field.h - CGAL/Tetrahedron_3.h - CGAL/Three/Buffer_objects.h - CGAL/Three/Edge_container.h - CGAL/Three/Point_container.h - CGAL/Three/Polyhedron_demo_io_plugin_interface.h - CGAL/Three/Polyhedron_demo_plugin_helper.h - CGAL/Three/Polyhedron_demo_plugin_interface.h - CGAL/Three/Primitive_container.h - CGAL/Three/Scene_draw_interface.h - CGAL/Three/Scene_group_item.h - CGAL/Three/Scene_interface.h - CGAL/Three/Scene_item.h - CGAL/Three/Scene_item_rendering_helper.h - CGAL/Three/Scene_item_with_properties.h - CGAL/Three/Scene_print_item_interface.h - CGAL/Three/Scene_transparent_interface.h - CGAL/Three/Scene_zoomable_item_interface.h - CGAL/Three/TextRenderer.h - CGAL/Three/Triangle_container.h - CGAL/Three/Viewer_interface.h - CGAL/Threetuple.h - CGAL/Timer.h - CGAL/Tree_base.h - CGAL/Tree_traits.h - CGAL/Triangle_2.h - CGAL/Triangle_3.h - CGAL/Triangle_accessor_3.h - CGAL/Triangular_expansion_visibility_2.h - CGAL/Triangular_field_2.h - CGAL/Triangulation.h - CGAL/Triangulation_2.h - CGAL/Triangulation_3.h - CGAL/Triangulation_3_to_lcc.h - CGAL/Triangulation_cell_base_3.h - CGAL/Triangulation_cell_base_with_info_3.h - CGAL/Triangulation_conformer_2.h - CGAL/Triangulation_data_structure.h - CGAL/Triangulation_data_structure_2.h - CGAL/Triangulation_data_structure_3.h - CGAL/Triangulation_ds_cell_base_3.h - CGAL/Triangulation_ds_face_base_2.h - CGAL/Triangulation_ds_full_cell.h - CGAL/Triangulation_ds_vertex.h - CGAL/Triangulation_ds_vertex_base_2.h - CGAL/Triangulation_ds_vertex_base_3.h - CGAL/Triangulation_face.h - CGAL/Triangulation_face_base_2.h - CGAL/Triangulation_face_base_with_id_2.h - CGAL/Triangulation_face_base_with_info_2.h - CGAL/Triangulation_full_cell.h - CGAL/Triangulation_hierarchy_2.h - CGAL/Triangulation_simplex_3.h - CGAL/Triangulation_utils_3.h - CGAL/Triangulation_vertex.h - CGAL/Triangulation_vertex_base_2.h - CGAL/Triangulation_vertex_base_3.h - CGAL/Triangulation_vertex_base_with_id_2.h - CGAL/Triangulation_vertex_base_with_info_2.h - CGAL/Triangulation_vertex_base_with_info_3.h - CGAL/Twotuple.h - CGAL/Umbilics.h - CGAL/Uncertain.h - CGAL/Union_find.h - CGAL/Union_of_balls_3.h - CGAL/Unique_hash_map.h - CGAL/Variational_shape_approximation.h - CGAL/Vector_2.h - CGAL/Vector_3.h - CGAL/Voronoi_diagram_2.h - CGAL/Voronoi_intersection_2_traits_3.h - CGAL/Weighted_Minkowski_distance.h - CGAL/Weighted_alpha_shape_euclidean_traits_2.h - CGAL/Weighted_point_2.h - CGAL/Weighted_point_3.h - CGAL/Width_3.h - CGAL/Width_default_traits_3.h - CGAL/aff_transformation_tags.h - CGAL/algorithm.h - CGAL/all_furthest_neighbors_2.h - CGAL/approximated_offset_2.h - CGAL/arrange_offset_polygons_2.h - CGAL/array.h - CGAL/assertions.h - CGAL/assertions_behaviour.h - CGAL/barycenter.h - CGAL/basic.h - CGAL/bilateral_smooth_point_set.h - CGAL/boost/graph/Dual.h - CGAL/boost/graph/Euler_operations.h - CGAL/boost/graph/Face_filtered_graph.h - CGAL/boost/graph/Graph_with_descriptor_with_graph.h - CGAL/boost/graph/METIS/partition_dual_graph.h - CGAL/boost/graph/METIS/partition_graph.h - CGAL/boost/graph/Seam_mesh.h - CGAL/boost/graph/alpha_expansion_graphcut.h - CGAL/boost/graph/convert_nef_polyhedron_to_polygon_mesh.h - CGAL/boost/graph/copy_face_graph.h - CGAL/boost/graph/generators.h - CGAL/boost/graph/graph_traits_PolyMesh_ArrayKernelT.h - CGAL/boost/graph/graph_traits_inheritance_macros.h - CGAL/boost/graph/helpers.h - CGAL/boost/graph/io.h - CGAL/boost/graph/iterator.h - CGAL/boost/graph/partition.h - CGAL/boost/graph/properties.h - CGAL/boost/graph/selection.h - CGAL/boost/graph/split_graph_into_polylines.h - CGAL/boost/iterator/transform_iterator.hpp - CGAL/boost_mp.h - CGAL/bounding_box.h - CGAL/box_intersection_d.h - CGAL/cartesian_homogeneous_conversion.h - CGAL/centroid.h - CGAL/ch_akl_toussaint.h - CGAL/ch_bykat.h - CGAL/ch_eddy.h - CGAL/ch_graham_andrew.h - CGAL/ch_jarvis.h - CGAL/ch_melkman.h - CGAL/ch_selected_extreme_points_2.h - CGAL/circulator.h - CGAL/circulator_bases.h - CGAL/cluster_point_set.h - CGAL/compute_average_spacing.h - CGAL/compute_outer_frame_margin.h - CGAL/config.h - CGAL/connect_holes.h - CGAL/constructions_d.h - CGAL/convex_decomposition_3.h - CGAL/convex_hull_2.h - CGAL/convex_hull_3.h - CGAL/convex_hull_3_to_face_graph.h - CGAL/convex_hull_constructive_traits_2.h - CGAL/convex_hull_traits_2.h - CGAL/convexity_check_2.h - CGAL/convexity_check_3.h - CGAL/create_offset_polygons_2.h - CGAL/create_offset_polygons_from_polygon_with_holes_2.h - CGAL/create_straight_skeleton_2.h - CGAL/create_straight_skeleton_from_polygon_with_holes_2.h - CGAL/double.h - CGAL/draw_face_graph_with_paths.h - CGAL/draw_linear_cell_complex.h - CGAL/draw_nef_3.h - CGAL/draw_periodic_2_triangulation_2.h - CGAL/draw_point_set_3.h - CGAL/draw_polygon_2.h - CGAL/draw_polygon_with_holes_2.h - CGAL/draw_polyhedron.h - CGAL/draw_surface_mesh.h - CGAL/draw_triangulation_2.h - CGAL/draw_triangulation_3.h - CGAL/draw_voronoi_diagram_2.h - CGAL/edge_aware_upsample_point_set.h - CGAL/enum.h - CGAL/envelope_2.h - CGAL/envelope_3.h - CGAL/estimate_scale.h - CGAL/extract_mean_curvature_flow_skeleton.h - CGAL/extremal_polygon_2.h - CGAL/exude_mesh_3.h - CGAL/float.h - CGAL/function_objects.h - CGAL/functional.h - CGAL/global_functions_circular_kernel_2.h - CGAL/global_functions_circular_kernel_3.h - CGAL/global_functions_spherical_kernel_3.h - CGAL/gmpxx.h - CGAL/gnuplot_output_2.h - CGAL/grid_simplify_point_set.h - CGAL/hierarchy_simplify_point_set.h - CGAL/hilbert_sort.h - CGAL/hilbert_sort_on_sphere.h - CGAL/int.h - CGAL/internal/Exact_type_selector.h - CGAL/internal/disable_deprecation_warnings_and_errors.h - CGAL/interpolation_functions.h - CGAL/intersections.h - CGAL/intersections_d.h - CGAL/is_y_monotone_2.h - CGAL/iterator.h - CGAL/jet_estimate_normals.h - CGAL/jet_smooth_point_set.h - CGAL/leda_bigfloat.h - CGAL/leda_integer.h - CGAL/leda_rational.h - CGAL/leda_real.h - CGAL/license/Mesh_3.h - CGAL/license/Surface_mesh_shortest_path.h - CGAL/linear_least_squares_fitting_2.h - CGAL/linear_least_squares_fitting_3.h - CGAL/link_to_face_graph.h - CGAL/lloyd_optimize_mesh_2.h - CGAL/lloyd_optimize_mesh_3.h - CGAL/long_double.h - CGAL/long_long.h - CGAL/make_mesh_3.h - CGAL/make_periodic_3_mesh_3.h - CGAL/make_skin_surface_mesh_3.h - CGAL/make_surface_mesh.h - CGAL/memory.h - CGAL/mesh_segmentation.h - CGAL/mesh_skin_surface_3.h - CGAL/min_quadrilateral_2.h - CGAL/minkowski_sum_2.h - CGAL/minkowski_sum_3.h - CGAL/monotone_matrix_search.h - CGAL/mst_orient_normals.h - CGAL/natural_neighbor_coordinates_2.h - CGAL/nearest_neighbor_delaunay_2.h - CGAL/number_type_config.h - CGAL/number_utils.h - CGAL/odt_optimize_mesh_3.h - CGAL/offset_polygon_2.h - CGAL/optimal_bounding_box.h - CGAL/Optimisation/assertions.h - CGAL/optimize_periodic_3_mesh_3.h - CGAL/partition_2.h - CGAL/partition_is_valid_2.h - CGAL/pca_estimate_normals.h - CGAL/perturb_mesh_3.h - CGAL/point_generators_2.h - CGAL/point_generators_3.h - CGAL/point_generators_d.h - CGAL/pointmatcher/compute_registration_transformation.h - CGAL/pointmatcher/register_point_sets.h - CGAL/poisson_surface_reconstruction.h - CGAL/polygon_function_objects.h - CGAL/polygon_mesh_processing.h - CGAL/polynomial_utils.h - CGAL/predicates_d.h - CGAL/property_map.h - CGAL/random_convex_hull_in_disc_2.h - CGAL/random_convex_set_2.h - CGAL/random_polygon_2.h - CGAL/random_selection.h - CGAL/random_simplify_point_set.h - CGAL/range_search_delaunay_2.h - CGAL/rational_rotation.h - CGAL/rectangular_p_center_2.h - CGAL/refine_mesh_3.h - CGAL/refine_periodic_3_mesh_3.h - CGAL/regular_neighbor_coordinates_2.h - CGAL/remove_outliers.h - CGAL/result_of.h - CGAL/sibson_gradient_fitting.h - CGAL/simplest_rational_in_interval.h - CGAL/sorted_matrix_search.h - CGAL/spatial_sort.h - CGAL/spatial_sort_on_sphere.h - CGAL/squared_distance_2.h - CGAL/structure_point_set.h - CGAL/subdivide_skin_surface_mesh_3.h - CGAL/subdivision_method_3.h - CGAL/surface_neighbor_coordinates_3.h - CGAL/surface_neighbors_3.h - CGAL/tags.h - CGAL/tetrahedral_remeshing.h - CGAL/to_rational.h - CGAL/utility.h - CGAL/utils.h - CGAL/utils_classes.h - CGAL/value_type_traits.h - CGAL/vcm_estimate_edges.h - CGAL/vcm_estimate_normals.h - CGAL/wlop_simplify_and_regularize_point_set.h - ]=]) -separate_arguments(list_of_documented_headers UNIX_COMMAND ${list_of_documented_headers_txt}) From 2ed89ef35ebac2692d3cdd056d626db93f4a7fbf Mon Sep 17 00:00:00 2001 From: Maxime Gimeno Date: Mon, 12 Oct 2020 12:24:13 +0200 Subject: [PATCH 15/32] simplify CGAL_setup dependencies. --- CGAL_Core/src/CGAL_Core/CMakeLists.txt | 4 +- CGAL_ImageIO/src/CGAL_ImageIO/CMakeLists.txt | 4 +- GraphicsView/src/CGAL_Qt5/CMakeLists.txt | 4 +- .../modules/CGAL_SetupCGALDependencies.cmake | 53 +++++++++---------- .../CGAL_SetupCGAL_CoreDependencies.cmake | 18 +++---- .../CGAL_SetupCGAL_ImageIODependencies.cmake | 16 ++---- .../CGAL_SetupCGAL_Qt5Dependencies.cmake | 21 +++----- .../cmake/modules/CGAL_SetupGMP.cmake | 21 +++----- .../cmake/modules/CGAL_SetupLEDA.cmake | 15 ++---- .../CGAL_setup_target_dependencies.cmake | 14 ++--- Installation/lib/cmake/CGAL/CGALConfig.cmake | 2 +- Installation/src/CGAL/CMakeLists.txt | 4 +- 12 files changed, 64 insertions(+), 112 deletions(-) diff --git a/CGAL_Core/src/CGAL_Core/CMakeLists.txt b/CGAL_Core/src/CGAL_Core/CMakeLists.txt index 2cf43a93a5b..d3473694104 100644 --- a/CGAL_Core/src/CGAL_Core/CMakeLists.txt +++ b/CGAL_Core/src/CGAL_Core/CMakeLists.txt @@ -5,9 +5,7 @@ if(CGAL_Core_FOUND) collect_cgal_library(CGAL_Core "") - set(keyword INTERFACE) - - CGAL_setup_CGAL_Core_dependencies(CGAL_Core ${keyword}) + CGAL_setup_CGAL_Core_dependencies(CGAL_Core) message("libCGAL_Core is configured") endif() diff --git a/CGAL_ImageIO/src/CGAL_ImageIO/CMakeLists.txt b/CGAL_ImageIO/src/CGAL_ImageIO/CMakeLists.txt index 57b8e11b308..8b41bc21a87 100644 --- a/CGAL_ImageIO/src/CGAL_ImageIO/CMakeLists.txt +++ b/CGAL_ImageIO/src/CGAL_ImageIO/CMakeLists.txt @@ -4,9 +4,7 @@ collect_cgal_library( CGAL_ImageIO "") include(CGAL_SetupCGAL_ImageIODependencies) -set(keyword "INTERFACE") - -CGAL_setup_CGAL_ImageIO_dependencies(CGAL_ImageIO ${keyword}) +CGAL_setup_CGAL_ImageIO_dependencies(CGAL_ImageIO) if(COMMAND add_config_flag) set( CGAL_HAS_IMAGEIO TRUE ) diff --git a/GraphicsView/src/CGAL_Qt5/CMakeLists.txt b/GraphicsView/src/CGAL_Qt5/CMakeLists.txt index 46b26f2e1fd..ce9299388f3 100644 --- a/GraphicsView/src/CGAL_Qt5/CMakeLists.txt +++ b/GraphicsView/src/CGAL_Qt5/CMakeLists.txt @@ -16,9 +16,7 @@ message( STATUS "USING Qt5_VERSION = '${Qt5Core_VERSION_STRING}'" ) collect_cgal_library( CGAL_Qt5 "") -set(keyword "INTERFACE") - -CGAL_setup_CGAL_Qt5_dependencies( CGAL_Qt5 ${keyword}) +CGAL_setup_CGAL_Qt5_dependencies( CGAL_Qt5 ) if(COMMAND add_config_flag) set( CGAL_HAS_QT5 TRUE ) diff --git a/Installation/cmake/modules/CGAL_SetupCGALDependencies.cmake b/Installation/cmake/modules/CGAL_SetupCGALDependencies.cmake index 3df96613fe6..0745228def8 100644 --- a/Installation/cmake/modules/CGAL_SetupCGALDependencies.cmake +++ b/Installation/cmake/modules/CGAL_SetupCGALDependencies.cmake @@ -67,52 +67,47 @@ endif() # # Link the target with the dependencies of CGAL:: # -# CGAL_setup_CGAL_dependencies( target [INTERFACE] ) +# CGAL_setup_CGAL_dependencies( target ) # -# If the option ``INTERFACE`` is passed, the dependencies are +# The dependencies are # added using :command:`target_link_libraries` with the ``INTERFACE`` -# keyword, or ``PUBLIC`` otherwise. +# keyword. # function(CGAL_setup_CGAL_dependencies target) - if(ARGV1 STREQUAL INTERFACE) - set(keyword INTERFACE) - else() - set(keyword PUBLIC) - endif() if(CGAL_DISABLE_GMP) - target_compile_definitions(${target} ${keyword} CGAL_DISABLE_GMP=1) + target_compile_definitions(${target} INTERFACE CGAL_DISABLE_GMP=1) else() - use_CGAL_GMP_support(${target} ${keyword}) + use_CGAL_GMP_support(${target} INTERFACE) set(CGAL_USE_GMP TRUE CACHE INTERNAL "CGAL library is configured to use GMP") set(CGAL_USE_MPFR TRUE CACHE INTERNAL "CGAL library is configured to use MPFR") endif() if(WITH_LEDA) - use_CGAL_LEDA_support(${target} ${keyword}) + use_CGAL_LEDA_support(${target} INTERFACE) endif() if (RUNNING_CGAL_AUTO_TEST OR CGAL_TEST_SUITE) - target_compile_definitions(${target} ${keyword} CGAL_TEST_SUITE=1) + target_compile_definitions(${target} INTERFACE CGAL_TEST_SUITE=1) endif() # CGAL now requires C++14. `decltype(auto)` is used as a marker of # C++14. - target_compile_features(${target} ${keyword} cxx_decltype_auto) + target_compile_features(${target} INTERFACE cxx_decltype_auto) - use_CGAL_Boost_support(${target} ${keyword}) + use_CGAL_Boost_support(${target} INTERFACE) foreach(dir ${CGAL_INCLUDE_DIRS}) - target_include_directories(${target} ${keyword} + target_include_directories(${target} INTERFACE $) endforeach() - target_include_directories(${target} ${keyword} + target_include_directories(${target} INTERFACE $) # Now setup compilation flags if(MSVC) - target_compile_options(${target} ${keyword} + target_compile_options(${target} INTERFACE "-D_SCL_SECURE_NO_DEPRECATE;-D_SCL_SECURE_NO_WARNINGS") if(CMAKE_VERSION VERSION_LESS 3.11) - target_compile_options(${target} ${keyword} + target_compile_options(${target} INTERFACE /fp:strict /fp:except- /wd4503 # Suppress warnings C4503 about "decorated name length exceeded" @@ -120,7 +115,7 @@ function(CGAL_setup_CGAL_dependencies target) ) else() # The MSVC generator supports `$` since CMake 3.11. - target_compile_options(${target} ${keyword} + target_compile_options(${target} INTERFACE $<$:/fp:strict> $<$:/fp:except-> $<$:/wd4503> # Suppress warnings C4503 about "decorated name length exceeded" @@ -131,39 +126,39 @@ function(CGAL_setup_CGAL_dependencies target) if (CMAKE_CXX_COMPILER_VERSION VERSION_LESS 11.0.3) message(STATUS "Apple Clang version ${CMAKE_CXX_COMPILER_VERSION} compiler detected") message(STATUS "Boost MP is turned off for all Apple Clang versions below 11.0.3!") - target_compile_options(${target} ${keyword} "-DCGAL_DO_NOT_USE_BOOST_MP") + target_compile_options(${target} INTERFACE "-DCGAL_DO_NOT_USE_BOOST_MP") endif() elseif(CMAKE_CXX_COMPILER_ID MATCHES "Intel") message( STATUS "Using Intel Compiler. Adding -fp-model strict" ) if(WIN32) - target_compile_options(${target} ${keyword} "/fp:strict") + target_compile_options(${target} INTERFACE "/fp:strict") else() - target_compile_options(${target} ${keyword} "-fp-model" "strict") + target_compile_options(${target} INTERFACE "-fp-model" "strict") endif() elseif(CMAKE_CXX_COMPILER_ID MATCHES "SunPro") message( STATUS "Using SunPro compiler, using STLPort 4." ) - target_compile_options(${target} ${keyword} + target_compile_options(${target} INTERFACE "-features=extensions;-library=stlport4;-D_GNU_SOURCE") - target_link_libraries(${target} ${keyword} "-library=stlport4") + target_link_libraries(${target} INTERFACE "-library=stlport4") elseif(CMAKE_CXX_COMPILER_ID MATCHES "GNU") if ( RUNNING_CGAL_AUTO_TEST ) - target_compile_options(${target} ${keyword} "-Wall") + target_compile_options(${target} INTERFACE "-Wall") endif() if(CMAKE_CXX_COMPILER_VERSION VERSION_GREATER 3) message( STATUS "Using gcc version 4 or later. Adding -frounding-math" ) if(CMAKE_VERSION VERSION_LESS 3.3) - target_compile_options(${target} ${keyword} "-frounding-math") + target_compile_options(${target} INTERFACE "-frounding-math") else() - target_compile_options(${target} ${keyword} "$<$:-frounding-math>") + target_compile_options(${target} INTERFACE "$<$:-frounding-math>") endif() endif() if ( "${GCC_VERSION}" MATCHES "^4.2" ) message( STATUS "Using gcc version 4.2. Adding -fno-strict-aliasing" ) - target_compile_options(${target} ${keyword} "-fno-strict-aliasing" ) + target_compile_options(${target} INTERFACE "-fno-strict-aliasing" ) endif() if ( "${CMAKE_SYSTEM_PROCESSOR}" MATCHES "alpha" ) message( STATUS "Using gcc on alpha. Adding -mieee -mfp-rounding-mode=d" ) - target_compile_options(${target} ${keyword} "-mieee" "-mfp-rounding-mode=d" ) + target_compile_options(${target} INTERFACE "-mieee" "-mfp-rounding-mode=d" ) endif() endif() endfunction() diff --git a/Installation/cmake/modules/CGAL_SetupCGAL_CoreDependencies.cmake b/Installation/cmake/modules/CGAL_SetupCGAL_CoreDependencies.cmake index 51c6bc73c4f..3387eae26c8 100644 --- a/Installation/cmake/modules/CGAL_SetupCGAL_CoreDependencies.cmake +++ b/Installation/cmake/modules/CGAL_SetupCGAL_CoreDependencies.cmake @@ -46,22 +46,16 @@ endif() # # Link the target with the dependencies of `CGAL_Core`:: # -# CGAL_setup_CGAL_Core_dependencies( target [INTERFACE] ) +# CGAL_setup_CGAL_Core_dependencies( target) # -# If the option ``INTERFACE`` is passed, the dependencies are +# The dependencies are # added using :command:`target_link_libraries` with the ``INTERFACE`` -# keyword, or ``PUBLIC`` otherwise. +# keyword. # function(CGAL_setup_CGAL_Core_dependencies target) - if(ARGV1 STREQUAL INTERFACE) - set(keyword INTERFACE) - else() - set(keyword PUBLIC) - endif() - - use_CGAL_GMP_support(CGAL_Core ${keyword}) - target_compile_definitions(${target} ${keyword} CGAL_USE_CORE=1) - target_link_libraries( CGAL_Core ${keyword} CGAL::CGAL ) + use_CGAL_GMP_support(CGAL_Core INTERFACE) + target_compile_definitions(${target} INTERFACE CGAL_USE_CORE=1) + target_link_libraries( CGAL_Core INTERFACE CGAL::CGAL ) endfunction() diff --git a/Installation/cmake/modules/CGAL_SetupCGAL_ImageIODependencies.cmake b/Installation/cmake/modules/CGAL_SetupCGAL_ImageIODependencies.cmake index 8ac856d0373..fd1d2bd7f2a 100644 --- a/Installation/cmake/modules/CGAL_SetupCGAL_ImageIODependencies.cmake +++ b/Installation/cmake/modules/CGAL_SetupCGAL_ImageIODependencies.cmake @@ -51,22 +51,14 @@ set(CGAL_ImageIO_FOUND TRUE) set_property(GLOBAL PROPERTY CGAL_ImageIO_FOUND TRUE) function(CGAL_setup_CGAL_ImageIO_dependencies target) - if(ARGV1 STREQUAL INTERFACE) - set(keyword INTERFACE) - else() - set(keyword PUBLIC) - endif() - target_link_libraries( CGAL_ImageIO ${keyword} CGAL::CGAL) + target_link_libraries( CGAL_ImageIO INTERFACE CGAL::CGAL) if(ZLIB_FOUND) - target_include_directories( CGAL_ImageIO SYSTEM ${keyword} ${ZLIB_INCLUDE_DIRS}) - target_link_libraries( CGAL_ImageIO ${keyword} ${ZLIB_LIBRARIES}) + target_include_directories( CGAL_ImageIO SYSTEM INTERFACE ${ZLIB_INCLUDE_DIRS}) + target_link_libraries( CGAL_ImageIO INTERFACE ${ZLIB_LIBRARIES}) - target_compile_definitions( CGAL_ImageIO ${keyword} CGAL_USE_ZLIB=1) - if(NOT ARGV1 STREQUAL INTERFACE) - set_target_properties(CGAL_ImageIO PROPERTIES CGAL_TARGET_USES_ZLIB TRUE) - endif() + target_compile_definitions( CGAL_ImageIO INTERFACE CGAL_USE_ZLIB=1) else() message( STATUS "NOTICE: libCGAL_ImageIO needs ZLib to read compressed files. That feature will not be activated.") endif() diff --git a/Installation/cmake/modules/CGAL_SetupCGAL_Qt5Dependencies.cmake b/Installation/cmake/modules/CGAL_SetupCGAL_Qt5Dependencies.cmake index 840560a6b06..083efb0f5ec 100644 --- a/Installation/cmake/modules/CGAL_SetupCGAL_Qt5Dependencies.cmake +++ b/Installation/cmake/modules/CGAL_SetupCGAL_Qt5Dependencies.cmake @@ -99,31 +99,26 @@ endif() # # Link the target with the dependencies of `CGAL_Qt5`:: # -# CGAL_setup_CGAL_Qt5_dependencies( target [INTERFACE] ) +# CGAL_setup_CGAL_Qt5_dependencies( target ) # -# If the option ``INTERFACE`` is passed, the dependencies are +# The dependencies are # added using :command:`target_link_libraries` with the ``INTERFACE`` -# keyword, or ``PUBLIC`` otherwise. +# keyword. # function(CGAL_setup_CGAL_Qt5_dependencies target) - if(ARGV1 STREQUAL INTERFACE) - set(keyword INTERFACE) - else() - set(keyword PUBLIC) - endif() if($ENV{CGAL_FAKE_PUBLIC_RELEASE}) - target_compile_definitions( ${target} ${keyword} CGAL_FAKE_PUBLIC_RELEASE=1 ) + target_compile_definitions( ${target} INTERFACE CGAL_FAKE_PUBLIC_RELEASE=1 ) endif() - target_link_libraries( ${target} ${keyword} CGAL::CGAL) - target_link_libraries( ${target} ${keyword} CGAL::Qt5_moc_and_resources) - target_link_libraries( ${target} ${keyword} Qt5::OpenGL Qt5::Svg Qt5::Xml) + target_link_libraries( ${target} INTERFACE CGAL::CGAL) + target_link_libraries( ${target} INTERFACE CGAL::Qt5_moc_and_resources) + target_link_libraries( ${target} INTERFACE Qt5::OpenGL Qt5::Svg Qt5::Xml) # Remove -Wdeprecated-copy, for g++ >= 9.0, because Qt5, as of # version 5.12, has a lot of [-Wdeprecated-copy] warnings. if( CMAKE_CXX_COMPILER_ID STREQUAL "GNU" AND NOT CMAKE_CXX_COMPILER_VERSION VERSION_LESS "9" ) - target_compile_options( ${target} ${keyword} "-Wno-deprecated-copy" "-Wno-cast-function-type" ) + target_compile_options( ${target} INTERFACE "-Wno-deprecated-copy" "-Wno-cast-function-type" ) endif() endfunction() diff --git a/Installation/cmake/modules/CGAL_SetupGMP.cmake b/Installation/cmake/modules/CGAL_SetupGMP.cmake index 6627df01796..4a1df74eabc 100644 --- a/Installation/cmake/modules/CGAL_SetupGMP.cmake +++ b/Installation/cmake/modules/CGAL_SetupGMP.cmake @@ -46,34 +46,29 @@ endif() # keyword, or ``PUBLIC`` otherwise. function(use_CGAL_GMP_support target) - if(ARGV1 STREQUAL INTERFACE) - set(keyword INTERFACE) - else() - set(keyword PUBLIC) - endif() if(NOT GMP_FOUND OR NOT MPFR_FOUND) message(FATAL_ERROR "CGAL requires GMP and MPFR.") return() endif() if(NOT GMP_INCLUDE_DIR STREQUAL "${CGAL_INSTALLATION_PACKAGE_DIR}/auxiliary/gmp/include") - target_include_directories(${target} SYSTEM ${keyword} ${GMP_INCLUDE_DIR}) + target_include_directories(${target} SYSTEM INTERFACE ${GMP_INCLUDE_DIR}) else() - target_include_directories(${target} SYSTEM ${keyword} + target_include_directories(${target} SYSTEM INTERFACE $ $) endif() if(NOT MPFR_INCLUDE_DIR STREQUAL "${CGAL_INSTALLATION_PACKAGE_DIR}/auxiliary/gmp/include") - target_include_directories(${target} SYSTEM ${keyword} ${MPFR_INCLUDE_DIR}) + target_include_directories(${target} SYSTEM INTERFACE ${MPFR_INCLUDE_DIR}) else() - target_include_directories(${target} SYSTEM ${keyword} + target_include_directories(${target} SYSTEM INTERFACE $ $) endif() if(WITH_GMPXX OR CGAL_WITH_GMPXX) - target_include_directories(${target} SYSTEM ${keyword} ${GMPXX_INCLUDE_DIR}) - target_link_libraries(${target} ${keyword} ${GMPXX_LIBRARIES}) - target_compile_definitions(${target} ${keyword} CGAL_USE_GMPXX=1) + target_include_directories(${target} SYSTEM INTERFACE ${GMPXX_INCLUDE_DIR}) + target_link_libraries(${target} INTERFACE ${GMPXX_LIBRARIES}) + target_compile_definitions(${target} INTERFACE CGAL_USE_GMPXX=1) endif() - target_link_libraries(${target} ${keyword} ${MPFR_LIBRARIES} ${GMP_LIBRARIES}) + target_link_libraries(${target} INTERFACE ${MPFR_LIBRARIES} ${GMP_LIBRARIES}) endfunction() diff --git a/Installation/cmake/modules/CGAL_SetupLEDA.cmake b/Installation/cmake/modules/CGAL_SetupLEDA.cmake index 72688b361ec..af207540058 100644 --- a/Installation/cmake/modules/CGAL_SetupLEDA.cmake +++ b/Installation/cmake/modules/CGAL_SetupLEDA.cmake @@ -32,11 +32,6 @@ find_package(LEDA) # keyword, or ``PUBLIC`` otherwise. function(use_CGAL_LEDA_support target) - if(ARGV1 STREQUAL INTERFACE) - set(keyword INTERFACE) - else() - set(keyword PUBLIC) - endif() if(NOT LEDA_FOUND) message(FATAL_ERROR "use_CGAL_LEDA_support is use whereas LEDA_FOUND is false.") return() @@ -45,12 +40,12 @@ function(use_CGAL_LEDA_support target) separate_arguments(LIST_LEDA_DEFINITIONS UNIX_COMMAND "${LEDA_DEFINITIONS} -DCGAL_USE_LEDA") if(CMAKE_VERSION VERSION_LESS 3.3) - target_compile_options(${target} ${keyword} ${LIST_LEDA_CXX_FLAGS}) + target_compile_options(${target} INTERFACE ${LIST_LEDA_CXX_FLAGS}) else() - target_compile_options(${target} ${keyword} $<$:${LIST_LEDA_CXX_FLAGS}>) + target_compile_options(${target} INTERFACE $<$:${LIST_LEDA_CXX_FLAGS}>) endif() - target_compile_options(${target} ${keyword} ${LIST_LEDA_DEFINITIONS}) + target_compile_options(${target} INTERFACE ${LIST_LEDA_DEFINITIONS}) - target_include_directories(${target} SYSTEM ${keyword} ${LEDA_INCLUDE_DIR}) - target_link_libraries(${target} ${keyword} ${LEDA_LIBRARIES} ${LEDA_LINKER_FLAGS}) + target_include_directories(${target} SYSTEM INTERFACE ${LEDA_INCLUDE_DIR}) + target_link_libraries(${target} INTERFACE ${LEDA_LIBRARIES} ${LEDA_LINKER_FLAGS}) endfunction() diff --git a/Installation/cmake/modules/CGAL_setup_target_dependencies.cmake b/Installation/cmake/modules/CGAL_setup_target_dependencies.cmake index 73a357b4d08..bed40154c80 100644 --- a/Installation/cmake/modules/CGAL_setup_target_dependencies.cmake +++ b/Installation/cmake/modules/CGAL_setup_target_dependencies.cmake @@ -1,17 +1,11 @@ function(CGAL_setup_target_dependencies target) - if(ARGV1 STREQUAL INTERFACE) - set(keyword INTERFACE) - else() - set(keyword PUBLIC) - endif() - if(${target} STREQUAL CGAL) - CGAL_setup_CGAL_dependencies(${target} ${keyword}) + CGAL_setup_CGAL_dependencies(${target}) elseif(${target} STREQUAL CGAL_Core) - CGAL_setup_CGAL_Core_dependencies(${target} ${keyword}) + CGAL_setup_CGAL_Core_dependencies(${target}) elseif(${target} STREQUAL CGAL_ImageIO) - CGAL_setup_CGAL_ImageIO_dependencies(${target} ${keyword}) + CGAL_setup_CGAL_ImageIO_dependencies(${target}) elseif(${target} STREQUAL CGAL_Qt5) - CGAL_setup_CGAL_Qt5_dependencies(${target} ${keyword}) + CGAL_setup_CGAL_Qt5_dependencies(${target}) endif() endfunction() diff --git a/Installation/lib/cmake/CGAL/CGALConfig.cmake b/Installation/lib/cmake/CGAL/CGALConfig.cmake index a69b0c21246..a87e74451d9 100644 --- a/Installation/lib/cmake/CGAL/CGALConfig.cmake +++ b/Installation/lib/cmake/CGAL/CGALConfig.cmake @@ -144,7 +144,7 @@ foreach(cgal_lib ${CGAL_LIBRARIES}) if(NOT TARGET CGAL::${cgal_lib}) add_library(CGAL::${cgal_lib} ALIAS ${cgal_lib}) endif() - CGAL_setup_target_dependencies(${cgal_lib} INTERFACE) + CGAL_setup_target_dependencies(${cgal_lib}) endif() endforeach() diff --git a/Installation/src/CGAL/CMakeLists.txt b/Installation/src/CGAL/CMakeLists.txt index b87886c9b97..64d72ad137d 100644 --- a/Installation/src/CGAL/CMakeLists.txt +++ b/Installation/src/CGAL/CMakeLists.txt @@ -4,9 +4,7 @@ collect_cgal_library(CGAL "") include(CGAL_SetupCGALDependencies) -set(keyword "INTERFACE") - -CGAL_setup_CGAL_dependencies(CGAL ${keyword}) +CGAL_setup_CGAL_dependencies(CGAL) if(NOT CGAL_DISABLE_GMP) get_dependency_version(GMP) From 27ddd9bf868f03449ec8238bd55cc6311bbf7ce1 Mon Sep 17 00:00:00 2001 From: Maxime Gimeno Date: Mon, 12 Oct 2020 15:44:44 +0200 Subject: [PATCH 16/32] remove flags in CI --- Installation/CMakeLists.txt | 1 + Scripts/developer_scripts/cgal_check_dependencies.sh | 2 +- 2 files changed, 2 insertions(+), 1 deletion(-) diff --git a/Installation/CMakeLists.txt b/Installation/CMakeLists.txt index 7b2fbe73e9f..6bc29ebd5d3 100644 --- a/Installation/CMakeLists.txt +++ b/Installation/CMakeLists.txt @@ -1077,6 +1077,7 @@ You must disable CGAL_ENABLE_CHECK_HEADERS.") endif() list(SORT list_of_documented_headers) list(REMOVE_DUPLICATES list_of_documented_headers) + include(${CMAKE_CURRENT_SOURCE_DIR}/cmake/modules/list_of_whitelisted_headers.cmake OPTIONAL RESULT_VARIABLE has_list_of_whitelisted_headers) message("list_of_whitelisted_headers: ${list_of_whitelisted_headers}") diff --git a/Scripts/developer_scripts/cgal_check_dependencies.sh b/Scripts/developer_scripts/cgal_check_dependencies.sh index 01e4777ab6a..46c7871152e 100644 --- a/Scripts/developer_scripts/cgal_check_dependencies.sh +++ b/Scripts/developer_scripts/cgal_check_dependencies.sh @@ -30,7 +30,7 @@ do fi done -cmake -DCGAL_HEADER_ONLY=FALSE -DCGAL_BUILD_THREE_DOC=TRUE -DCGAL_ENABLE_CHECK_HEADERS=TRUE -DDOXYGEN_EXECUTABLE="$DOX_PATH" -DCGAL_COPY_DEPENDENCIES=TRUE -DCMAKE_CXX_FLAGS="-std=c++1y" .. +cmake -DCGAL_ENABLE_CHECK_HEADERS=TRUE -DDOXYGEN_EXECUTABLE="$DOX_PATH" -DCGAL_COPY_DEPENDENCIES=TRUE -DCMAKE_CXX_FLAGS="-std=c++1y" .. if [ -n "$DO_CHECK_HEADERS" ]; then make -j$(nproc --all) -k check_headers fi From 654c99484c148442040002aaebc8ba974dddeb88 Mon Sep 17 00:00:00 2001 From: Maxime Gimeno Date: Tue, 13 Oct 2020 09:04:56 +0200 Subject: [PATCH 17/32] Add missing dependencies to Optimisation_basic --- .../package_info/Optimisation_basic/dependencies | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/Optimisation_basic/package_info/Optimisation_basic/dependencies b/Optimisation_basic/package_info/Optimisation_basic/dependencies index e69de29bb2d..4b1b3cb93f3 100644 --- a/Optimisation_basic/package_info/Optimisation_basic/dependencies +++ b/Optimisation_basic/package_info/Optimisation_basic/dependencies @@ -0,0 +1,4 @@ +Installation +Kernel_23 +Profiling_tools +STL_Extension From fcb6419106b3c9a466cac6987b86ee13d1481956 Mon Sep 17 00:00:00 2001 From: Maxime Gimeno Date: Tue, 13 Oct 2020 15:36:44 +0200 Subject: [PATCH 18/32] WIP CGAL_qt5 --- Installation/CMakeLists.txt | 31 +++++++++++++++++-- Installation/cmake/modules/CGAL_Common.cmake | 11 ------- Installation/cmake/modules/CGAL_Macros.cmake | 7 ++--- .../CGAL_SetupCGAL_Qt5Dependencies.cmake | 2 +- .../cmake/modules/CGAL_SetupFlags.cmake | 28 +++++------------ .../cmake/modules/CGAL_display_flags.cmake | 10 +----- Installation/demo/CMakeLists.txt | 6 ++-- Installation/examples/CMakeLists.txt | 6 ++-- Installation/lib/cmake/CGAL/CGALConfig.cmake | 19 ++++-------- Installation/src/CMakeLists.txt | 13 ++------ Installation/test/CMakeLists.txt | 6 ++-- Installation/test/Installation/CMakeLists.txt | 24 +++++--------- 12 files changed, 63 insertions(+), 100 deletions(-) diff --git a/Installation/CMakeLists.txt b/Installation/CMakeLists.txt index 6bc29ebd5d3..dc8f0c6a337 100644 --- a/Installation/CMakeLists.txt +++ b/Installation/CMakeLists.txt @@ -357,7 +357,6 @@ set( CGAL_Qt5_SOVERSION "14.0.0" ) message( STATUS "CGAL_SONAME_VERSION=${CGAL_SONAME_VERSION}" ) message( STATUS "CGAL_SOVERSION =${CGAL_SOVERSION}" ) -set( CGAL_BUILDING_LIBS TRUE ) set( CGAL_VERSION_DIR CGAL-${CGAL_VERSION} ) set( CGAL_MODULES_REL_DIR cmake/modules ) @@ -667,7 +666,35 @@ cache_get(CGAL_3RD_PARTY_INCLUDE_DIRS ) cache_get(CGAL_3RD_PARTY_LIBRARIES ) cache_get(CGAL_3RD_PARTY_LIBRARIES_DIRS) -add_subdirectory(src) +#add_subdirectory(src) +message("Configuring libCGAL_Qt5") + +if(NOT POLICY CMP0070 AND POLICY CMP0053) + # Only set CMP0053 to OLD with CMake<3.10, otherwise there is a warning. + cmake_policy(SET CMP0053 OLD) +endif() + +include(CGAL_SetupCGAL_Qt5Dependencies) + +if(CGAL_Qt5_MISSING_DEPS) + message(STATUS "libCGAL_Qt5 is missing the dependencies: ${CGAL_Qt5_MISSING_DEPS} cannot be configured.") +else() + + message( STATUS "USING Qt5_VERSION = '${Qt5Core_VERSION_STRING}'" ) + CGAL_setup_CGAL_Qt5_dependencies( CGAL_Qt5 ) + + if(COMMAND add_config_flag) + set( CGAL_HAS_QT5 TRUE ) + add_config_flag( CGAL_HAS_QT5 ) + endif() + + install(DIRECTORY " ${CGAL_GRAPHICSVIEW_PACKAGE_DIR}/include/CGAL/Qt/" DESTINATION "${CGAL_INSTALL_INC_DIR}/CGAL/Qt" COMPONENT CGAL_Qt5) + install(DIRECTORY " ${CGAL_GRAPHICSVIEW_PACKAGE_DIR}/demo/resources/" DESTINATION "${CGAL_INSTALL_CMAKE_DIR}/demo/resources" COMPONENT CGAL_Qt5) + install(DIRECTORY " ${CGAL_GRAPHICSVIEW_PACKAGE_DIR}/demo/icons/" DESTINATION "${CGAL_INSTALL_CMAKE_DIR}/demo/icons" COMPONENT CGAL_Qt5) + + message("libCGAL_Qt5 is configured") +endif() + # # Variables used when WITH_{demos|examples|tests} are TRUE diff --git a/Installation/cmake/modules/CGAL_Common.cmake b/Installation/cmake/modules/CGAL_Common.cmake index ed1fe54ad0c..c9c61644d23 100644 --- a/Installation/cmake/modules/CGAL_Common.cmake +++ b/Installation/cmake/modules/CGAL_Common.cmake @@ -24,17 +24,6 @@ if( NOT CGAL_COMMON_FILE_INCLUDED ) set( CMAKE_2_6_3_OR_ABOVE FALSE ) endif() - if ( CGAL_BUILDING_LIBS ) - option(BUILD_SHARED_LIBS "Build shared libraries" ON) - set(CGAL_BUILD_SHARED_LIBS ${BUILD_SHARED_LIBS}) - - if ( BUILD_SHARED_LIBS ) - message( STATUS "Building shared libraries" ) - else() - message( STATUS "Building static libraries" ) - endif() - endif() - if ( WIN32 ) find_program(CMAKE_UNAME uname /bin /usr/bin /usr/local/bin ) if(CMAKE_UNAME) diff --git a/Installation/cmake/modules/CGAL_Macros.cmake b/Installation/cmake/modules/CGAL_Macros.cmake index c1e16875dfd..1b1e42a09d7 100644 --- a/Installation/cmake/modules/CGAL_Macros.cmake +++ b/Installation/cmake/modules/CGAL_Macros.cmake @@ -290,10 +290,9 @@ if( NOT CGAL_MACROS_FILE_INCLUDED ) # To deal with imported targets of Qt5 and Boost, when CGAL # targets are themselves imported by another project. - if(NOT CGAL_BUILDING_LIBS) - if (${component} STREQUAL "Qt5") - find_package(Qt5 COMPONENTS OpenGL Gui Core Script ScriptTools QUIET) - endif() + + if (${component} STREQUAL "Qt5") + find_package(Qt5 COMPONENTS OpenGL Gui Core Script ScriptTools QUIET) endif() else(WITH_CGAL_${component}) diff --git a/Installation/cmake/modules/CGAL_SetupCGAL_Qt5Dependencies.cmake b/Installation/cmake/modules/CGAL_SetupCGAL_Qt5Dependencies.cmake index 083efb0f5ec..1bd28be9865 100644 --- a/Installation/cmake/modules/CGAL_SetupCGAL_Qt5Dependencies.cmake +++ b/Installation/cmake/modules/CGAL_SetupCGAL_Qt5Dependencies.cmake @@ -54,7 +54,7 @@ if(NOT CGAL_Qt5_MISSING_DEPS) include(${CMAKE_CURRENT_LIST_DIR}/CGAL_Qt5_moc_and_resource_files.cmake) - if((WITH_demos OR WITH_examples OR WITH_tests OR NOT CGAL_BUILDING_LIBS) AND NOT TARGET CGAL_Qt5_moc_and_resources) + if(NOT TARGET CGAL_Qt5_moc_and_resources) add_library(CGAL_Qt5_moc_and_resources STATIC ${_CGAL_Qt5_MOC_FILES_private} ${CGAL_GRAPHICSVIEW_PACKAGE_DIR}/include/CGAL/Qt/GraphicsViewNavigation.h diff --git a/Installation/cmake/modules/CGAL_SetupFlags.cmake b/Installation/cmake/modules/CGAL_SetupFlags.cmake index 9037edc6a5e..514ad5c58c8 100644 --- a/Installation/cmake/modules/CGAL_SetupFlags.cmake +++ b/Installation/cmake/modules/CGAL_SetupFlags.cmake @@ -6,12 +6,12 @@ if ( NOT CGAL_SETUP_FLAGS_INCLUDED ) # override the flags used to build the libraries # set( CGAL_DONT_OVERRIDE_CMAKE_FLAGS_DESCRIPTION - "Set this to TRUE if you want to define or modify any of CMAKE_*_FLAGS. When this is FALSE, all the CMAKE_*_FLAGS flags are overriden with the values used when building the CGAL libs. For CGAL_*_flags (used for ADDITIONAL flags) , there is no need to set this to TRUE." + "Set this to TRUE if you want to define or modify any of CMAKE_*_FLAGS. When this is FALSE, all the CMAKE_*_FLAGS flags are overriden with the values used when building the CGAL libs. For CGAL_*_flags (used for ADDITIONAL flags) , there is no need to set this to TRUE." ) -option( CGAL_DONT_OVERRIDE_CMAKE_FLAGS +option( CGAL_DONT_OVERRIDE_CMAKE_FLAGS ${CGAL_DONT_OVERRIDE_CMAKE_FLAGS_DESCRIPTION} - FALSE + FALSE ) if ( CGAL_CONFIG_LOADED AND NOT CGAL_DONT_OVERRIDE_CMAKE_FLAGS ) @@ -19,18 +19,14 @@ if ( CGAL_CONFIG_LOADED AND NOT CGAL_DONT_OVERRIDE_CMAKE_FLAGS ) typed_cache_set ( STRING "Build type: Release, Debug, RelWithDebInfo or MinSizeRel" CMAKE_BUILD_TYPE "${CGAL_BUILD_TYPE_INIT}" ) string( TOUPPER "${CMAKE_BUILD_TYPE}" CGAL_BUILD_TYPE_UPPER ) - - if ( CGAL_BUILD_SHARED_LIBS ) - set( CGAL_LINKER_FLAGS_TYPE SHARED ) - else() - set( CGAL_LINKER_FLAGS_TYPE MODULE ) - endif() - + + set( CGAL_LINKER_FLAGS_TYPE MODULE ) + typed_cache_set ( STRING "C++ compiler flags for all build types" CMAKE_CXX_FLAGS "${CGAL_CXX_FLAGS_INIT}" ) typed_cache_set ( STRING "C++ compiler flags for ${CGAL_BUILD_TYPE_UPPER}" CMAKE_CXX_FLAGS_${CGAL_BUILD_TYPE_UPPER} "${CGAL_CXX_FLAGS_${CGAL_BUILD_TYPE_UPPER}_INIT}" ) typed_cache_set ( STRING "Linker flags for all build types" CMAKE_EXE_LINKER_FLAGS "${CGAL_${CGAL_LINKER_FLAGS_TYPE}_LINKER_FLAGS_INIT}" ) typed_cache_set ( STRING "Linker flags for ${CGAL_BUILD_TYPE_UPPER}" CMAKE_EXE_LINKER_FLAGS_${CGAL_BUILD_TYPE_UPPER} "${CGAL_${CGAL_LINKER_FLAGS_TYPE}_LINKER_FLAGS_${CGAL_BUILD_TYPE_UPPER}_INIT}" ) - + endif() typed_cache_set( BOOL ${CGAL_DONT_OVERRIDE_CMAKE_FLAGS_DESCRIPTION} CGAL_DONT_OVERRIDE_CMAKE_FLAGS TRUE ) @@ -68,15 +64,7 @@ string( TOUPPER "${CMAKE_BUILD_TYPE}" CGAL_BUILD_TYPE_UPPER ) message( STATUS "USING CXXFLAGS = '${CMAKE_CXX_FLAGS} ${CMAKE_CXX_FLAGS_${CGAL_BUILD_TYPE_UPPER}}'" ) -if ( CGAL_BUILDING_LIBS ) - if ( BUILD_SHARED_LIBS ) - message( STATUS "USING LDFLAGS = '${CMAKE_SHARED_LINKER_FLAGS} ${CMAKE_SHARED_LINKER_FLAGS_${CGAL_BUILD_TYPE_UPPER}}'" ) - else() - message( STATUS "USING LDFLAGS = '${CMAKE_STATIC_LINKER_FLAGS} ${CMAKE_STATIC_LINKER_FLAGS_${CGAL_BUILD_TYPE_UPPER}}'" ) - endif() -else() - message( STATUS "USING EXEFLAGS = '${CMAKE_EXE_LINKER_FLAGS} ${CMAKE_EXE_LINKER_FLAGS_${CGAL_BUILD_TYPE_UPPER}}'" ) -endif() +message( STATUS "USING EXEFLAGS = '${CMAKE_EXE_LINKER_FLAGS} ${CMAKE_EXE_LINKER_FLAGS_${CGAL_BUILD_TYPE_UPPER}}'" ) endif() diff --git a/Installation/cmake/modules/CGAL_display_flags.cmake b/Installation/cmake/modules/CGAL_display_flags.cmake index 777d6402898..5367ac3c0e7 100644 --- a/Installation/cmake/modules/CGAL_display_flags.cmake +++ b/Installation/cmake/modules/CGAL_display_flags.cmake @@ -10,12 +10,4 @@ string( TOUPPER "${CMAKE_BUILD_TYPE}" CGAL_BUILD_TYPE_UPPER ) message( STATUS "USING CXXFLAGS = '${CMAKE_CXX_FLAGS} ${CMAKE_CXX_FLAGS_${CGAL_BUILD_TYPE_UPPER}}'" ) -if ( CGAL_BUILDING_LIBS ) - if ( BUILD_SHARED_LIBS ) - message( STATUS "USING LDFLAGS = '${CMAKE_SHARED_LINKER_FLAGS} ${CMAKE_SHARED_LINKER_FLAGS_${CGAL_BUILD_TYPE_UPPER}}'" ) - else() - message( STATUS "USING LDFLAGS = '${CMAKE_STATIC_LINKER_FLAGS} ${CMAKE_STATIC_LINKER_FLAGS_${CGAL_BUILD_TYPE_UPPER}}'" ) - endif() -else() - message( STATUS "USING EXEFLAGS = '${CMAKE_EXE_LINKER_FLAGS} ${CMAKE_EXE_LINKER_FLAGS_${CGAL_BUILD_TYPE_UPPER}}'" ) -endif() +message( STATUS "USING EXEFLAGS = '${CMAKE_EXE_LINKER_FLAGS} ${CMAKE_EXE_LINKER_FLAGS_${CGAL_BUILD_TYPE_UPPER}}'" ) diff --git a/Installation/demo/CMakeLists.txt b/Installation/demo/CMakeLists.txt index 0e3700ad729..32f0d522916 100644 --- a/Installation/demo/CMakeLists.txt +++ b/Installation/demo/CMakeLists.txt @@ -18,10 +18,8 @@ endif() list( SORT list ) -if(NOT CGAL_BUILDING_LIBS) - find_package(CGAL REQUIRED) - include(${CGAL_MODULES_DIR}/CGAL_Macros.cmake) -endif() +find_package(CGAL REQUIRED) +include(${CGAL_MODULES_DIR}/CGAL_Macros.cmake) message("== Generating build files for demos ==") foreach( entry ${list} ) diff --git a/Installation/examples/CMakeLists.txt b/Installation/examples/CMakeLists.txt index 4c415c99731..ae8af2e1062 100644 --- a/Installation/examples/CMakeLists.txt +++ b/Installation/examples/CMakeLists.txt @@ -18,10 +18,8 @@ endif() list( SORT list ) -if(NOT CGAL_BUILDING_LIBS) - find_package(CGAL REQUIRED) - include(${CGAL_MODULES_DIR}/CGAL_Macros.cmake) -endif() +find_package(CGAL REQUIRED) +include(${CGAL_MODULES_DIR}/CGAL_Macros.cmake) message("== Generating build files for examples ==") foreach( entry ${list} ) diff --git a/Installation/lib/cmake/CGAL/CGALConfig.cmake b/Installation/lib/cmake/CGAL/CGALConfig.cmake index a87e74451d9..e09f2d2c38f 100644 --- a/Installation/lib/cmake/CGAL/CGALConfig.cmake +++ b/Installation/lib/cmake/CGAL/CGALConfig.cmake @@ -80,14 +80,11 @@ include(${CGAL_MODULES_DIR}/CGAL_TweakFindBoost.cmake) set(CGAL_USE_FILE ${CGAL_MODULES_DIR}/UseCGAL.cmake) -if(CGAL_BUILDING_LIBS) - foreach(comp ${CGAL_FIND_COMPONENTS}) - if(CGAL_${comp}_FOUND) - list(APPEND CGAL_LIBRARIES CGAL_${comp}) - endif() - endforeach() - return() -endif() +foreach(comp ${CGAL_FIND_COMPONENTS}) + if(CGAL_${comp}_FOUND) + list(APPEND CGAL_LIBRARIES CGAL_${comp}) + endif() +endforeach() foreach(comp ${CGAL_FIND_COMPONENTS}) if(NOT comp MATCHES "Core|ImageIO|Qt5") @@ -136,11 +133,7 @@ include(CGAL_setup_target_dependencies) foreach(cgal_lib ${CGAL_LIBRARIES}) set(WITH_${cgal_lib} TRUE) if(${cgal_lib}_FOUND AND NOT TARGET ${cgal_lib}) - if(CGAL_BUILDING_LIBS OR CMAKE_VERSION VERSION_LESS "3.11") - add_library(${cgal_lib} INTERFACE) - else() - add_library(${cgal_lib} INTERFACE IMPORTED GLOBAL) - endif() + add_library(${cgal_lib} INTERFACE IMPORTED GLOBAL) if(NOT TARGET CGAL::${cgal_lib}) add_library(CGAL::${cgal_lib} ALIAS ${cgal_lib}) endif() diff --git a/Installation/src/CMakeLists.txt b/Installation/src/CMakeLists.txt index 1054aba4e5d..569402b1d59 100644 --- a/Installation/src/CMakeLists.txt +++ b/Installation/src/CMakeLists.txt @@ -1,19 +1,10 @@ function (collect_cgal_library LIBRARY_NAME ADDITIONAL_FILES) - if(CGAL_BUILD_SHARED_LIBS) - set(CGAL_LIB_PREFIX "") - else() - set(CGAL_LIB_PREFIX "lib") - endif() + set(CGAL_LIB_PREFIX "lib") set(RELEASE_MANGLED_NAME "${CGAL_LIB_PREFIX}${LIBRARY_NAME}-${CGAL_TOOLSET}-mt-${CGAL_FULL_VERSION}" ) set(DEBUG_MANGLED_NAME "${CGAL_LIB_PREFIX}${LIBRARY_NAME}-${CGAL_TOOLSET}-mt-gd-${CGAL_FULL_VERSION}" ) - if(CGAL_BUILD_SHARED_LIBS AND WIN32) - configure_file(${CGAL_INSTALLATION_PACKAGE_DIR}/src/CGAL_libs_verinfo.rc.in ${LIBRARY_NAME}_verinfo.rc @ONLY) - set(rc_file ${CMAKE_CURRENT_BINARY_DIR}/${LIBRARY_NAME}_verinfo.rc) - else() - set(rc_file ) - endif() + set(rc_file ) add_library(${LIBRARY_NAME} INTERFACE) diff --git a/Installation/test/CMakeLists.txt b/Installation/test/CMakeLists.txt index df238f83028..3559145e988 100644 --- a/Installation/test/CMakeLists.txt +++ b/Installation/test/CMakeLists.txt @@ -18,10 +18,8 @@ endif() list( SORT list ) -if(NOT CGAL_BUILDING_LIBS) - find_package(CGAL REQUIRED) - include(${CGAL_MODULES_DIR}/CGAL_Macros.cmake) -endif() +find_package(CGAL REQUIRED) +include(${CGAL_MODULES_DIR}/CGAL_Macros.cmake) message("== Generating build files for tests ==") foreach( entry ${list} ) diff --git a/Installation/test/Installation/CMakeLists.txt b/Installation/test/Installation/CMakeLists.txt index 1cefac9ba03..01706321155 100644 --- a/Installation/test/Installation/CMakeLists.txt +++ b/Installation/test/Installation/CMakeLists.txt @@ -27,8 +27,8 @@ macro(create_link_to_program COMPONENT ) add_to_cached_list( CGAL_EXECUTABLE_TARGETS link_to_${COMPONENT} ) endmacro() - -find_package(CGAL QUIET COMPONENTS Core) +find_package(Qt5 QUIET) +find_package(CGAL QUIET COMPONENTS Core Qt5) if ( CGAL_FOUND ) @@ -56,27 +56,17 @@ if ( CGAL_FOUND ) create_link_to_program(CGAL) - if ( WITH_CGAL_Core ) + if ( TARGET CGAL::CGAL_Core ) create_link_to_program(CGAL_Core) endif() - if ( WITH_CGAL_ImageIO ) + if ( TARGET CGAL::CGAL_ImageIO ) create_link_to_program(CGAL_ImageIO) endif() - if ( WITH_CGAL_Qt4 ) - find_package(Qt4 QUIET) - if( QT4_FOUND ) - include(${QT_USE_FILE}) - create_link_to_program(CGAL_Qt4) - endif() - endif() - if ( WITH_CGAL_Qt5 ) - find_package(Qt5 QUIET) - if( Qt5_FOUND ) - create_link_to_program(CGAL_Qt5) - endif() + if ( TARGET CGAL::CGAL_Qt5 ) + create_link_to_program(CGAL_Qt5) endif() if(WIN32 OR CMAKE_SYSTEM_NAME STREQUAL Windows) @@ -235,7 +225,7 @@ list(APPEND test_config_lst "test_config_file_3") if(CGAL_Qt5_FOUND) #configure cgal for a non standard install with qt5 add_test(NAME config_non_standard_cgal_qt5 - COMMAND ${CMAKE_COMMAND} ${GENERATOR} ${INIT_FILE} -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=${NON_STANDARD_INSTALL_PREFIX}/non_standard_install_qt5 -DCGAL_INSTALL_LIB_DIR=lib -DWITH_CGAL_Qt5=ON + COMMAND ${CMAKE_COMMAND} ${GENERATOR} ${INIT_FILE} -DCMAKE_BUILD_TYPE=Release -DCMAKE_INSTALL_PREFIX=${NON_STANDARD_INSTALL_PREFIX}/non_standard_install_qt5 -DCGAL_INSTALL_LIB_DIR=lib "${CGAL_SOURCE_DIR}" WORKING_DIRECTORY "${NON_STANDARD_INSTALL_PREFIX}/non_standard_build_qt5") #install cgal in the non standard place From 0c14520987a24d7b5f1bff80456673a852e64c5b Mon Sep 17 00:00:00 2001 From: Maxime Gimeno Date: Wed, 14 Oct 2020 11:14:58 +0200 Subject: [PATCH 19/32] Fix CGAL_Qt5 installation --- Installation/CMakeLists.txt | 29 ++++++-------------- Installation/lib/cmake/CGAL/CGALConfig.cmake | 2 +- 2 files changed, 9 insertions(+), 22 deletions(-) diff --git a/Installation/CMakeLists.txt b/Installation/CMakeLists.txt index dc8f0c6a337..f6e69d5a1ba 100644 --- a/Installation/CMakeLists.txt +++ b/Installation/CMakeLists.txt @@ -667,33 +667,20 @@ cache_get(CGAL_3RD_PARTY_LIBRARIES ) cache_get(CGAL_3RD_PARTY_LIBRARIES_DIRS) #add_subdirectory(src) -message("Configuring libCGAL_Qt5") - if(NOT POLICY CMP0070 AND POLICY CMP0053) # Only set CMP0053 to OLD with CMake<3.10, otherwise there is a warning. cmake_policy(SET CMP0053 OLD) endif() -include(CGAL_SetupCGAL_Qt5Dependencies) - -if(CGAL_Qt5_MISSING_DEPS) - message(STATUS "libCGAL_Qt5 is missing the dependencies: ${CGAL_Qt5_MISSING_DEPS} cannot be configured.") -else() - +find_package(Qt5 QUIET COMPONENTS OpenGL Svg Xml) +if(NOT Qt5_FOUND) + message("CGAL_Qt5 needs Qt5 and won't be configured.") +else()#NOT Qt5_FOUND message( STATUS "USING Qt5_VERSION = '${Qt5Core_VERSION_STRING}'" ) - CGAL_setup_CGAL_Qt5_dependencies( CGAL_Qt5 ) - - if(COMMAND add_config_flag) - set( CGAL_HAS_QT5 TRUE ) - add_config_flag( CGAL_HAS_QT5 ) - endif() - - install(DIRECTORY " ${CGAL_GRAPHICSVIEW_PACKAGE_DIR}/include/CGAL/Qt/" DESTINATION "${CGAL_INSTALL_INC_DIR}/CGAL/Qt" COMPONENT CGAL_Qt5) - install(DIRECTORY " ${CGAL_GRAPHICSVIEW_PACKAGE_DIR}/demo/resources/" DESTINATION "${CGAL_INSTALL_CMAKE_DIR}/demo/resources" COMPONENT CGAL_Qt5) - install(DIRECTORY " ${CGAL_GRAPHICSVIEW_PACKAGE_DIR}/demo/icons/" DESTINATION "${CGAL_INSTALL_CMAKE_DIR}/demo/icons" COMPONENT CGAL_Qt5) - - message("libCGAL_Qt5 is configured") -endif() + install(DIRECTORY "${CGAL_GRAPHICSVIEW_PACKAGE_DIR}/include/CGAL/Qt/" DESTINATION "${CGAL_INSTALL_INC_DIR}/CGAL/Qt" COMPONENT CGAL_Qt5) + install(DIRECTORY "${CGAL_GRAPHICSVIEW_PACKAGE_DIR}/demo/resources/" DESTINATION "${CGAL_INSTALL_CMAKE_DIR}/demo/resources" COMPONENT CGAL_Qt5) + install(DIRECTORY "${CGAL_GRAPHICSVIEW_PACKAGE_DIR}/demo/icons/" DESTINATION "${CGAL_INSTALL_CMAKE_DIR}/demo/icons" COMPONENT CGAL_Qt5) +endif()#NOT Qt5_FOUND # diff --git a/Installation/lib/cmake/CGAL/CGALConfig.cmake b/Installation/lib/cmake/CGAL/CGALConfig.cmake index e09f2d2c38f..6ca74644abe 100644 --- a/Installation/lib/cmake/CGAL/CGALConfig.cmake +++ b/Installation/lib/cmake/CGAL/CGALConfig.cmake @@ -131,7 +131,7 @@ include(CGAL_setup_target_dependencies) # Define the CGAL targets and their CGAL:: aliases # foreach(cgal_lib ${CGAL_LIBRARIES}) - set(WITH_${cgal_lib} TRUE) + if(${cgal_lib}_FOUND AND NOT TARGET ${cgal_lib}) add_library(${cgal_lib} INTERFACE IMPORTED GLOBAL) if(NOT TARGET CGAL::${cgal_lib}) From 107c4350d026f1b1f5af4ab0225d0911efea25e6 Mon Sep 17 00:00:00 2001 From: Maxime Gimeno Date: Wed, 14 Oct 2020 11:22:49 +0200 Subject: [PATCH 20/32] remove all /src directories --- CGAL_Core/src/CGAL_Core/BigFloat.cpp | 39 ----- CGAL_Core/src/CGAL_Core/CMakeLists.txt | 12 -- CGAL_Core/src/CGAL_Core/CoreAux.cpp | 31 ---- CGAL_Core/src/CGAL_Core/CoreDefs.cpp | 30 ---- CGAL_Core/src/CGAL_Core/CoreIO.cpp | 24 ---- CGAL_Core/src/CGAL_Core/Expr.cpp | 32 ----- CGAL_Core/src/CGAL_Core/GmpIO.cpp | 23 --- CGAL_Core/src/CGAL_Core/Real.cpp | 33 ----- CGAL_Core/src/CGAL_Core/extLong.cpp | 37 ----- CGAL_ImageIO/src/CGAL_ImageIO/CMakeLists.txt | 18 --- CGAL_ImageIO/src/CGAL_ImageIO/ImageIO.cpp | 18 --- CGAL_ImageIO/src/CGAL_ImageIO/Image_3.cpp | 18 --- CGAL_ImageIO/src/CGAL_ImageIO/LICENSE | 15 -- CGAL_ImageIO/src/CGAL_ImageIO/analyze.cpp | 18 --- CGAL_ImageIO/src/CGAL_ImageIO/bmp.cpp | 18 --- CGAL_ImageIO/src/CGAL_ImageIO/bmpendian.cpp | 18 --- CGAL_ImageIO/src/CGAL_ImageIO/bmpread.cpp | 18 --- CGAL_ImageIO/src/CGAL_ImageIO/convert.cpp | 18 --- CGAL_ImageIO/src/CGAL_ImageIO/fgetns.cpp | 18 --- CGAL_ImageIO/src/CGAL_ImageIO/gif.cpp | 18 --- CGAL_ImageIO/src/CGAL_ImageIO/gis.cpp | 18 --- CGAL_ImageIO/src/CGAL_ImageIO/inr.cpp | 18 --- CGAL_ImageIO/src/CGAL_ImageIO/iris.cpp | 18 --- CGAL_ImageIO/src/CGAL_ImageIO/mincio.cpp | 18 --- CGAL_ImageIO/src/CGAL_ImageIO/pnm.cpp | 18 --- CGAL_ImageIO/src/CGAL_ImageIO/recbuffer.cpp | 18 --- CGAL_ImageIO/src/CGAL_ImageIO/recline.cpp | 18 --- CGAL_ImageIO/src/CGAL_ImageIO/reech4x4.cpp | 18 --- Geomview/src/CGAL/Geomview_stream.cpp | 22 --- GraphicsView/src/CGAL_Qt5/CMakeLists.txt | 30 ---- GraphicsView/src/CGAL_Qt5/DemosMainWindow.cpp | 20 --- .../src/CGAL_Qt5/GraphicsView.qtmoc.cmake | 8 -- .../src/CGAL_Qt5/GraphicsViewNavigation.cpp | 21 --- .../CGAL_Qt5/GraphicsViewPolylineInput.cpp | 21 --- GraphicsView/src/CGAL_Qt5/camera.cpp | 17 --- GraphicsView/src/CGAL_Qt5/constraint.cpp | 17 --- GraphicsView/src/CGAL_Qt5/debug.cpp | 19 --- GraphicsView/src/CGAL_Qt5/frame.cpp | 17 --- .../src/CGAL_Qt5/keyFrameInterpolator.cpp | 17 --- .../src/CGAL_Qt5/manipulatedCameraFrame.cpp | 17 --- .../src/CGAL_Qt5/manipulatedFrame.cpp | 17 --- GraphicsView/src/CGAL_Qt5/mouseGrabber.cpp | 17 --- GraphicsView/src/CGAL_Qt5/qglviewer.cpp | 17 --- GraphicsView/src/CGAL_Qt5/quaternion.cpp | 17 --- GraphicsView/src/CGAL_Qt5/resources.cpp | 20 --- GraphicsView/src/CGAL_Qt5/utility.cpp | 18 --- GraphicsView/src/CGAL_Qt5/vec.cpp | 17 --- Installation/src/CGAL/CMakeLists.txt | 16 --- Installation/src/CGAL_libs_verinfo.rc.in | 68 --------- Installation/src/CMakeLists.txt | 133 ------------------ Kernel_23/src/CGAL/kernel.cpp | 23 --- Number_types/src/CGAL/Interval_arithmetic.cpp | 23 --- .../src/CGAL/test_FPU_rounding_mode.cpp | 18 --- Profiling_tools/src/CGAL/Real_timer.cpp | 29 ---- Profiling_tools/src/CGAL/Timer.cpp | 29 ---- Random_numbers/src/CGAL/Random.cpp | 28 ---- STL_Extension/src/CGAL/assertions.cpp | 22 --- Stream_support/src/CGAL/Color.cpp | 21 --- Stream_support/src/CGAL/File_header_OFF.cpp | 24 ---- .../src/CGAL/File_header_extended_OFF.cpp | 24 ---- Stream_support/src/CGAL/File_scanner_OFF.cpp | 24 ---- Stream_support/src/CGAL/File_writer_OFF.cpp | 24 ---- .../src/CGAL/File_writer_VRML_2.cpp | 24 ---- .../src/CGAL/File_writer_inventor.cpp | 24 ---- .../src/CGAL/File_writer_wavefront.cpp | 24 ---- Stream_support/src/CGAL/io.cpp | 22 --- 66 files changed, 1549 deletions(-) delete mode 100644 CGAL_Core/src/CGAL_Core/BigFloat.cpp delete mode 100644 CGAL_Core/src/CGAL_Core/CMakeLists.txt delete mode 100644 CGAL_Core/src/CGAL_Core/CoreAux.cpp delete mode 100644 CGAL_Core/src/CGAL_Core/CoreDefs.cpp delete mode 100644 CGAL_Core/src/CGAL_Core/CoreIO.cpp delete mode 100644 CGAL_Core/src/CGAL_Core/Expr.cpp delete mode 100644 CGAL_Core/src/CGAL_Core/GmpIO.cpp delete mode 100644 CGAL_Core/src/CGAL_Core/Real.cpp delete mode 100644 CGAL_Core/src/CGAL_Core/extLong.cpp delete mode 100644 CGAL_ImageIO/src/CGAL_ImageIO/CMakeLists.txt delete mode 100644 CGAL_ImageIO/src/CGAL_ImageIO/ImageIO.cpp delete mode 100644 CGAL_ImageIO/src/CGAL_ImageIO/Image_3.cpp delete mode 100644 CGAL_ImageIO/src/CGAL_ImageIO/LICENSE delete mode 100644 CGAL_ImageIO/src/CGAL_ImageIO/analyze.cpp delete mode 100644 CGAL_ImageIO/src/CGAL_ImageIO/bmp.cpp delete mode 100644 CGAL_ImageIO/src/CGAL_ImageIO/bmpendian.cpp delete mode 100644 CGAL_ImageIO/src/CGAL_ImageIO/bmpread.cpp delete mode 100644 CGAL_ImageIO/src/CGAL_ImageIO/convert.cpp delete mode 100644 CGAL_ImageIO/src/CGAL_ImageIO/fgetns.cpp delete mode 100644 CGAL_ImageIO/src/CGAL_ImageIO/gif.cpp delete mode 100644 CGAL_ImageIO/src/CGAL_ImageIO/gis.cpp delete mode 100644 CGAL_ImageIO/src/CGAL_ImageIO/inr.cpp delete mode 100644 CGAL_ImageIO/src/CGAL_ImageIO/iris.cpp delete mode 100644 CGAL_ImageIO/src/CGAL_ImageIO/mincio.cpp delete mode 100644 CGAL_ImageIO/src/CGAL_ImageIO/pnm.cpp delete mode 100644 CGAL_ImageIO/src/CGAL_ImageIO/recbuffer.cpp delete mode 100644 CGAL_ImageIO/src/CGAL_ImageIO/recline.cpp delete mode 100644 CGAL_ImageIO/src/CGAL_ImageIO/reech4x4.cpp delete mode 100644 Geomview/src/CGAL/Geomview_stream.cpp delete mode 100644 GraphicsView/src/CGAL_Qt5/CMakeLists.txt delete mode 100644 GraphicsView/src/CGAL_Qt5/DemosMainWindow.cpp delete mode 100644 GraphicsView/src/CGAL_Qt5/GraphicsView.qtmoc.cmake delete mode 100644 GraphicsView/src/CGAL_Qt5/GraphicsViewNavigation.cpp delete mode 100644 GraphicsView/src/CGAL_Qt5/GraphicsViewPolylineInput.cpp delete mode 100644 GraphicsView/src/CGAL_Qt5/camera.cpp delete mode 100644 GraphicsView/src/CGAL_Qt5/constraint.cpp delete mode 100644 GraphicsView/src/CGAL_Qt5/debug.cpp delete mode 100644 GraphicsView/src/CGAL_Qt5/frame.cpp delete mode 100644 GraphicsView/src/CGAL_Qt5/keyFrameInterpolator.cpp delete mode 100644 GraphicsView/src/CGAL_Qt5/manipulatedCameraFrame.cpp delete mode 100644 GraphicsView/src/CGAL_Qt5/manipulatedFrame.cpp delete mode 100644 GraphicsView/src/CGAL_Qt5/mouseGrabber.cpp delete mode 100644 GraphicsView/src/CGAL_Qt5/qglviewer.cpp delete mode 100644 GraphicsView/src/CGAL_Qt5/quaternion.cpp delete mode 100644 GraphicsView/src/CGAL_Qt5/resources.cpp delete mode 100644 GraphicsView/src/CGAL_Qt5/utility.cpp delete mode 100644 GraphicsView/src/CGAL_Qt5/vec.cpp delete mode 100644 Installation/src/CGAL/CMakeLists.txt delete mode 100644 Installation/src/CGAL_libs_verinfo.rc.in delete mode 100644 Installation/src/CMakeLists.txt delete mode 100644 Kernel_23/src/CGAL/kernel.cpp delete mode 100644 Number_types/src/CGAL/Interval_arithmetic.cpp delete mode 100644 Number_types/src/CGAL/test_FPU_rounding_mode.cpp delete mode 100644 Profiling_tools/src/CGAL/Real_timer.cpp delete mode 100644 Profiling_tools/src/CGAL/Timer.cpp delete mode 100644 Random_numbers/src/CGAL/Random.cpp delete mode 100644 STL_Extension/src/CGAL/assertions.cpp delete mode 100644 Stream_support/src/CGAL/Color.cpp delete mode 100644 Stream_support/src/CGAL/File_header_OFF.cpp delete mode 100644 Stream_support/src/CGAL/File_header_extended_OFF.cpp delete mode 100644 Stream_support/src/CGAL/File_scanner_OFF.cpp delete mode 100644 Stream_support/src/CGAL/File_writer_OFF.cpp delete mode 100644 Stream_support/src/CGAL/File_writer_VRML_2.cpp delete mode 100644 Stream_support/src/CGAL/File_writer_inventor.cpp delete mode 100644 Stream_support/src/CGAL/File_writer_wavefront.cpp delete mode 100644 Stream_support/src/CGAL/io.cpp diff --git a/CGAL_Core/src/CGAL_Core/BigFloat.cpp b/CGAL_Core/src/CGAL_Core/BigFloat.cpp deleted file mode 100644 index 6a566a4ffdf..00000000000 --- a/CGAL_Core/src/CGAL_Core/BigFloat.cpp +++ /dev/null @@ -1,39 +0,0 @@ -/**************************************************************************** - * Core Library Version 1.7, August 2004 - * Copyright (c) 1995-2004 Exact Computation Project - * All rights reserved. - * - * This file is part of CGAL (www.cgal.org). - * - * File: BigFloat.cpp - * Synopsis: - * BigFloat numbers with error bounds - * - * EXACTNESS PROPERTY: - * ================== - * For BigFloats that are exact (i.e., error=0), - * addition/subtraction and multiplication return the - * exact result (i.e., error=0). We also introduce the operation - * div2(), which simply divides a BigFloat by 2, - * but this again preserves exactness. Such exactness - * properties are used in our Newton iteration/Sturm Sequences. - * - * Written by - * Chee Yap - * Chen Li - * Zilin Du - * - * WWW URL: http://cs.nyu.edu/exact/ - * Email: exact@cs.nyu.edu - * - * $URL$ - * $Id$ - * SPDX-License-Identifier: LGPL-3.0-or-later - ***************************************************************************/ - -#ifndef CGAL_HEADER_ONLY - -#include -#include - -#endif diff --git a/CGAL_Core/src/CGAL_Core/CMakeLists.txt b/CGAL_Core/src/CGAL_Core/CMakeLists.txt deleted file mode 100644 index d3473694104..00000000000 --- a/CGAL_Core/src/CGAL_Core/CMakeLists.txt +++ /dev/null @@ -1,12 +0,0 @@ -include(CGAL_SetupCGAL_CoreDependencies) - -message("Configuring libCGAL_Core") -if(CGAL_Core_FOUND) - - collect_cgal_library(CGAL_Core "") - - CGAL_setup_CGAL_Core_dependencies(CGAL_Core) - - message("libCGAL_Core is configured") -endif() - diff --git a/CGAL_Core/src/CGAL_Core/CoreAux.cpp b/CGAL_Core/src/CGAL_Core/CoreAux.cpp deleted file mode 100644 index 936a9c3439c..00000000000 --- a/CGAL_Core/src/CGAL_Core/CoreAux.cpp +++ /dev/null @@ -1,31 +0,0 @@ -/**************************************************************************** - * Core Library Version 1.7, August 2004 - * Copyright (c) 1995-2004 Exact Computation Project - * All rights reserved. - * - * This file is part of CGAL (www.cgal.org). - * - * File: CoreAux.cpp - * Synopsis: - * Auxiliary routines such as ceiling of log_2, etc. - * they are not specific to any Core classes. - * - * Written by - * Chee Yap - * Chen Li - * Zilin Du - * - * WWW URL: http://cs.nyu.edu/exact/ - * Email: exact@cs.nyu.edu - * - * $URL$ - * $Id$ - * SPDX-License-Identifier: LGPL-3.0-or-later - ***************************************************************************/ - -#ifndef CGAL_HEADER_ONLY - -#include -#include - -#endif diff --git a/CGAL_Core/src/CGAL_Core/CoreDefs.cpp b/CGAL_Core/src/CGAL_Core/CoreDefs.cpp deleted file mode 100644 index 56b0d1df410..00000000000 --- a/CGAL_Core/src/CGAL_Core/CoreDefs.cpp +++ /dev/null @@ -1,30 +0,0 @@ -/**************************************************************************** - * Core Library Version 1.7, August 2004 - * Copyright (c) 1995-2004 Exact Computation Project - * All rights reserved. - * - * This file is part of CGAL (www.cgal.org). - * - * File: CoreDefs.cpp - * Synopsis: - * Useful parameters for Core Library which users may change - * - * Written by - * Chee Yap - * Chen Li - * Zilin Du - * - * WWW URL: http://cs.nyu.edu/exact/ - * Email: exact@cs.nyu.edu - * - * $URL$ - * $Id$ - * SPDX-License-Identifier: LGPL-3.0-or-later - ***************************************************************************/ - -#ifndef CGAL_HEADER_ONLY - -#include -#include - -#endif diff --git a/CGAL_Core/src/CGAL_Core/CoreIO.cpp b/CGAL_Core/src/CGAL_Core/CoreIO.cpp deleted file mode 100644 index a0c42cc65da..00000000000 --- a/CGAL_Core/src/CGAL_Core/CoreIO.cpp +++ /dev/null @@ -1,24 +0,0 @@ -/**************************************************************************** - * Core Library Version 1.7, August 2004 - * Copyright (c) 1995-2004 Exact Computation Project - * All rights reserved. - * - * This file is part of CGAL (www.cgal.org). - * - * File: CoreIO.cpp - * - * Written by - * Zilin Du - * Chee Yap - * - * WWW URL: http://cs.nyu.edu/exact/ - * Email: exact@cs.nyu.edu - * - * $URL$ - * $Id$ - * SPDX-License-Identifier: LGPL-3.0-or-later - ***************************************************************************/ - -#ifndef CGAL_HEADER_ONLY -#include -#endif diff --git a/CGAL_Core/src/CGAL_Core/Expr.cpp b/CGAL_Core/src/CGAL_Core/Expr.cpp deleted file mode 100644 index 747f202da46..00000000000 --- a/CGAL_Core/src/CGAL_Core/Expr.cpp +++ /dev/null @@ -1,32 +0,0 @@ -/**************************************************************************** - * Core Library Version 1.7, August 2004 - * Copyright (c) 1995-2004 Exact Computation Project - * All rights reserved. - * - * This file is part of CGAL (www.cgal.org). - * - * File: Expr.cpp - * - * Written by - * Koji Ouchi - * Chee Yap - * Igor Pechtchanski - * Vijay Karamcheti - * Chen Li - * Zilin Du - * Sylvain Pion - * - * WWW URL: http://cs.nyu.edu/exact/ - * Email: exact@cs.nyu.edu - * - * $URL$ - * $Id$ - * SPDX-License-Identifier: LGPL-3.0-or-later - ***************************************************************************/ - -#ifndef CGAL_HEADER_ONLY - -#include -#include - -#endif diff --git a/CGAL_Core/src/CGAL_Core/GmpIO.cpp b/CGAL_Core/src/CGAL_Core/GmpIO.cpp deleted file mode 100644 index 89adf2ebec7..00000000000 --- a/CGAL_Core/src/CGAL_Core/GmpIO.cpp +++ /dev/null @@ -1,23 +0,0 @@ -/**************************************************************************** - * Core Library Version 1.7, August 2004 - * Copyright (c) 1995-2004 Exact Computation Project - * All rights reserved. - * - * This file is part of CGAL (www.cgal.org). - * - * file: GmpIO.cpp - * Adapted from multi-files under /cxx in GMP's source distribution - * - * Zilin Du, 2003 - * - * $URL$ - * $Id$ - * SPDX-License-Identifier: LGPL-3.0-only - ***************************************************************************/ - -#ifndef CGAL_HEADER_ONLY - -#include -#include - -#endif diff --git a/CGAL_Core/src/CGAL_Core/Real.cpp b/CGAL_Core/src/CGAL_Core/Real.cpp deleted file mode 100644 index aab3de549fc..00000000000 --- a/CGAL_Core/src/CGAL_Core/Real.cpp +++ /dev/null @@ -1,33 +0,0 @@ -/**************************************************************************** - * Core Library Version 1.7, August 2004 - * Copyright (c) 1995-2004 Exact Computation Project - * All rights reserved. - * - * This file is part of CGAL (www.cgal.org). - * - * File: Real.cpp - * Synopsis: The Real class is a superclass for all the number - * systems in the Core Library (int, long, float, double, - * BigInt, BigRat, BigFloat, etc) - * - * Written by - * Koji Ouchi - * Chee Yap - * Chen Li - * Zilin Du - * Sylvain Pion - * - * WWW URL: http://cs.nyu.edu/exact/ - * Email: exact@cs.nyu.edu - * - * $URL$ - * $Id$ - * SPDX-License-Identifier: LGPL-3.0-or-later - ***************************************************************************/ - -#ifndef CGAL_HEADER_ONLY - -#include -#include - -#endif diff --git a/CGAL_Core/src/CGAL_Core/extLong.cpp b/CGAL_Core/src/CGAL_Core/extLong.cpp deleted file mode 100644 index d2072c3d388..00000000000 --- a/CGAL_Core/src/CGAL_Core/extLong.cpp +++ /dev/null @@ -1,37 +0,0 @@ -/**************************************************************************** - * Core Library Version 1.7, August 2004 - * Copyright (c) 1995-2004 Exact Computation Project - * All rights reserved. - * - * This file is part of CGAL (www.cgal.org). - * - * File: extLong.cpp - * Synopsis: - * The class extLong is basically a wrapper around the machine - * type long. It is an important class to provide several - * additional facilities to detect overflows and undefined values. - * Future development includes extensions to level arithmetic - * (i.e., if a number overflows level i, we will go to level i+1). - * Level i representation of a number n is just i iterations - * of log_2 applied to n. - * - * Written by - * Chee Yap - * Chen Li - * Zilin Du - * Sylvain Pion - * - * WWW URL: http://cs.nyu.edu/exact/ - * Email: exact@cs.nyu.edu - * - * $URL$ - * $Id$ - * SPDX-License-Identifier: LGPL-3.0-or-later - ***************************************************************************/ - -#ifndef CGAL_HEADER_ONLY - -#include -#include - -#endif diff --git a/CGAL_ImageIO/src/CGAL_ImageIO/CMakeLists.txt b/CGAL_ImageIO/src/CGAL_ImageIO/CMakeLists.txt deleted file mode 100644 index 8b41bc21a87..00000000000 --- a/CGAL_ImageIO/src/CGAL_ImageIO/CMakeLists.txt +++ /dev/null @@ -1,18 +0,0 @@ -message("Configuring libCGAL_ImageIO") - -collect_cgal_library( CGAL_ImageIO "") - -include(CGAL_SetupCGAL_ImageIODependencies) - -CGAL_setup_CGAL_ImageIO_dependencies(CGAL_ImageIO) - -if(COMMAND add_config_flag) - set( CGAL_HAS_IMAGEIO TRUE ) - add_config_flag( CGAL_HAS_IMAGEIO ) -endif() - -if(ZLIB_FOUND) - get_dependency_version(ZLIB) -endif() - -message("libCGAL_ImageIO is configured") diff --git a/CGAL_ImageIO/src/CGAL_ImageIO/ImageIO.cpp b/CGAL_ImageIO/src/CGAL_ImageIO/ImageIO.cpp deleted file mode 100644 index f5760138ccf..00000000000 --- a/CGAL_ImageIO/src/CGAL_ImageIO/ImageIO.cpp +++ /dev/null @@ -1,18 +0,0 @@ -// Copyright (c) 2005, 2006 ASCLEPIOS Project, INRIA Sophia-Antipolis (France) -// Copyright (c) 2007 Geometrica Project, INRIA Sophia-Antipolis (France) -// Copyright (c) 2008 GeometryFactory, Sophia-Antipolis (France) -// All rights reserved. -// -// This file is part of the ImageIO Library, and as been adapted for CGAL (www.cgal.org). -// -// $URL$ -// $Id$ -// SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial -// - -#ifndef CGAL_HEADER_ONLY - -#include -#include - -#endif // CGAL_HEADER_ONLY diff --git a/CGAL_ImageIO/src/CGAL_ImageIO/Image_3.cpp b/CGAL_ImageIO/src/CGAL_ImageIO/Image_3.cpp deleted file mode 100644 index 98be1910a61..00000000000 --- a/CGAL_ImageIO/src/CGAL_ImageIO/Image_3.cpp +++ /dev/null @@ -1,18 +0,0 @@ -// Copyright (c) 2005-2008 INRIA Sophia-Antipolis (France). -// 2008 GeometryFactory, Sophia Antipolis (France) -// All rights reserved. -// -// This file is part of CGAL (www.cgal.org) -// -// $URL$ -// $Id$ -// SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial -// -// Author(s) : Laurent Rineau, Pierre Alliez - -#ifndef CGAL_HEADER_ONLY - -#include -#include - -#endif // CGAL_HEADER_ONLY diff --git a/CGAL_ImageIO/src/CGAL_ImageIO/LICENSE b/CGAL_ImageIO/src/CGAL_ImageIO/LICENSE deleted file mode 100644 index 08d4e2694b8..00000000000 --- a/CGAL_ImageIO/src/CGAL_ImageIO/LICENSE +++ /dev/null @@ -1,15 +0,0 @@ -// Copyright (c) 2005, 2006 ASCLEPIOS Project, INRIA Sophia-Antipolis (France) -// All rights reserved. -// -// The files in this directory are part of the ImageIO Library. -// You can redistribute them and/or modify them under the terms of the -// GNU Lesser General Public License as published by the Free Software Foundation; -// either version 3 of the License, or (at your option) any later version. -// -// Licensees holding a valid commercial license may use this file in -// accordance with the commercial license agreement provided with the software. -// -// These files are provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE -// WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE. -// -// Author(s) : Olivier Clatz, Herve Delingette et Gregoire Malandain diff --git a/CGAL_ImageIO/src/CGAL_ImageIO/analyze.cpp b/CGAL_ImageIO/src/CGAL_ImageIO/analyze.cpp deleted file mode 100644 index 7f627a9cb86..00000000000 --- a/CGAL_ImageIO/src/CGAL_ImageIO/analyze.cpp +++ /dev/null @@ -1,18 +0,0 @@ -// Copyright (c) 2005-2008 ASCLEPIOS Project, INRIA Sophia-Antipolis (France) -// All rights reserved. -// -// This file is part of the ImageIO Library, and as been adapted for CGAL (www.cgal.org). -// -// $URL$ -// $Id$ -// SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial -// -// -// Author(s) : ASCLEPIOS Project (INRIA Sophia-Antipolis), Laurent Rineau - -#ifndef CGAL_HEADER_ONLY - -#include -#include - -#endif // CGAL_HEADER_ONLY diff --git a/CGAL_ImageIO/src/CGAL_ImageIO/bmp.cpp b/CGAL_ImageIO/src/CGAL_ImageIO/bmp.cpp deleted file mode 100644 index 0b8494a966a..00000000000 --- a/CGAL_ImageIO/src/CGAL_ImageIO/bmp.cpp +++ /dev/null @@ -1,18 +0,0 @@ -// Copyright (c) 2005-2008 ASCLEPIOS Project, INRIA Sophia-Antipolis (France) -// All rights reserved. -// -// This file is part of the ImageIO Library, and as been adapted for CGAL (www.cgal.org). -// -// $URL$ -// $Id$ -// SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial -// -// -// Author(s) : ASCLEPIOS Project (INRIA Sophia-Antipolis), Laurent Rineau - -#ifndef CGAL_HEADER_ONLY - -#include -#include - -#endif // CGAL_HEADER_ONLY diff --git a/CGAL_ImageIO/src/CGAL_ImageIO/bmpendian.cpp b/CGAL_ImageIO/src/CGAL_ImageIO/bmpendian.cpp deleted file mode 100644 index 9545c6cfb3d..00000000000 --- a/CGAL_ImageIO/src/CGAL_ImageIO/bmpendian.cpp +++ /dev/null @@ -1,18 +0,0 @@ -// Copyright (c) 2005-2008 ASCLEPIOS Project, INRIA Sophia-Antipolis (France) -// All rights reserved. -// -// This file is part of the ImageIO Library, and as been adapted for CGAL (www.cgal.org). -// -// $URL$ -// $Id$ -// SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial -// -// -// Author(s) : ASCLEPIOS Project (INRIA Sophia-Antipolis), Laurent Rineau - -#ifndef CGAL_HEADER_ONLY - -#include -#include - -#endif // CGAL_HEADER_ONLY diff --git a/CGAL_ImageIO/src/CGAL_ImageIO/bmpread.cpp b/CGAL_ImageIO/src/CGAL_ImageIO/bmpread.cpp deleted file mode 100644 index 2c905338b8e..00000000000 --- a/CGAL_ImageIO/src/CGAL_ImageIO/bmpread.cpp +++ /dev/null @@ -1,18 +0,0 @@ -// Copyright (c) 2005-2008 ASCLEPIOS Project, INRIA Sophia-Antipolis (France) -// All rights reserved. -// -// This file is part of the ImageIO Library, and as been adapted for CGAL (www.cgal.org). -// -// $URL$ -// $Id$ -// SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial -// -// -// Author(s) : ASCLEPIOS Project (INRIA Sophia-Antipolis), Laurent Rineau - -#ifndef CGAL_HEADER_ONLY - -#include -#include - -#endif // CGAL_HEADER_ONLY diff --git a/CGAL_ImageIO/src/CGAL_ImageIO/convert.cpp b/CGAL_ImageIO/src/CGAL_ImageIO/convert.cpp deleted file mode 100644 index a0a610b1a79..00000000000 --- a/CGAL_ImageIO/src/CGAL_ImageIO/convert.cpp +++ /dev/null @@ -1,18 +0,0 @@ -// Copyright (c) 2005-2008 ASCLEPIOS Project, INRIA Sophia-Antipolis (France) -// All rights reserved. -// -// This file is part of the ImageIO Library, and as been adapted for CGAL (www.cgal.org). -// -// $URL$ -// $Id$ -// SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial -// -// -// Author(s) : ASCLEPIOS Project (INRIA Sophia-Antipolis), Laurent Rineau - -#ifndef CGAL_HEADER_ONLY - -#include -#include - -#endif // CGAL_HEADER_ONLY diff --git a/CGAL_ImageIO/src/CGAL_ImageIO/fgetns.cpp b/CGAL_ImageIO/src/CGAL_ImageIO/fgetns.cpp deleted file mode 100644 index e123117e3c0..00000000000 --- a/CGAL_ImageIO/src/CGAL_ImageIO/fgetns.cpp +++ /dev/null @@ -1,18 +0,0 @@ -// Copyright (c) 2005-2008 ASCLEPIOS Project, INRIA Sophia-Antipolis (France) -// All rights reserved. -// -// This file is part of the ImageIO Library, and as been adapted for CGAL (www.cgal.org). -// -// $URL$ -// $Id$ -// SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial -// -// -// Author(s) : ASCLEPIOS Project (INRIA Sophia-Antipolis), Laurent Rineau - -#ifndef CGAL_HEADER_ONLY - -#include -#include - -#endif // CGAL_HEADER_ONLY diff --git a/CGAL_ImageIO/src/CGAL_ImageIO/gif.cpp b/CGAL_ImageIO/src/CGAL_ImageIO/gif.cpp deleted file mode 100644 index 62d5c585087..00000000000 --- a/CGAL_ImageIO/src/CGAL_ImageIO/gif.cpp +++ /dev/null @@ -1,18 +0,0 @@ -// Copyright (c) 2005-2008 ASCLEPIOS Project, INRIA Sophia-Antipolis (France) -// All rights reserved. -// -// This file is part of the ImageIO Library, and as been adapted for CGAL (www.cgal.org). -// -// $URL$ -// $Id$ -// SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial -// -// -// Author(s) : ASCLEPIOS Project (INRIA Sophia-Antipolis), Laurent Rineau - -#ifndef CGAL_HEADER_ONLY - -#include -#include - -#endif // CGAL_HEADER_ONLY diff --git a/CGAL_ImageIO/src/CGAL_ImageIO/gis.cpp b/CGAL_ImageIO/src/CGAL_ImageIO/gis.cpp deleted file mode 100644 index 0551ff6a5f9..00000000000 --- a/CGAL_ImageIO/src/CGAL_ImageIO/gis.cpp +++ /dev/null @@ -1,18 +0,0 @@ -// Copyright (c) 2005-2008 ASCLEPIOS Project, INRIA Sophia-Antipolis (France) -// All rights reserved. -// -// This file is part of the ImageIO Library, and as been adapted for CGAL (www.cgal.org). -// -// $URL$ -// $Id$ -// SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial -// -// -// Author(s) : ASCLEPIOS Project (INRIA Sophia-Antipolis), Laurent Rineau - -#ifndef CGAL_HEADER_ONLY - -#include -#include - -#endif // CGAL_HEADER_ONLY diff --git a/CGAL_ImageIO/src/CGAL_ImageIO/inr.cpp b/CGAL_ImageIO/src/CGAL_ImageIO/inr.cpp deleted file mode 100644 index 4b3870cf55c..00000000000 --- a/CGAL_ImageIO/src/CGAL_ImageIO/inr.cpp +++ /dev/null @@ -1,18 +0,0 @@ -// Copyright (c) 2005-2008 ASCLEPIOS Project, INRIA Sophia-Antipolis (France) -// All rights reserved. -// -// This file is part of the ImageIO Library, and as been adapted for CGAL (www.cgal.org). -// -// $URL$ -// $Id$ -// SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial -// -// -// Author(s) : ASCLEPIOS Project (INRIA Sophia-Antipolis), Laurent Rineau - -#ifndef CGAL_HEADER_ONLY - -#include -#include - -#endif // CGAL_HEADER_ONLY diff --git a/CGAL_ImageIO/src/CGAL_ImageIO/iris.cpp b/CGAL_ImageIO/src/CGAL_ImageIO/iris.cpp deleted file mode 100644 index 4e7eeffc803..00000000000 --- a/CGAL_ImageIO/src/CGAL_ImageIO/iris.cpp +++ /dev/null @@ -1,18 +0,0 @@ -// Copyright (c) 2005-2008 ASCLEPIOS Project, INRIA Sophia-Antipolis (France) -// All rights reserved. -// -// This file is part of the ImageIO Library, and as been adapted for CGAL (www.cgal.org). -// -// $URL$ -// $Id$ -// SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial -// -// -// Author(s) : ASCLEPIOS Project (INRIA Sophia-Antipolis), Laurent Rineau - -#ifndef CGAL_HEADER_ONLY - -#include -#include - -#endif // CGAL_HEADER_ONLY diff --git a/CGAL_ImageIO/src/CGAL_ImageIO/mincio.cpp b/CGAL_ImageIO/src/CGAL_ImageIO/mincio.cpp deleted file mode 100644 index c3e71de7b49..00000000000 --- a/CGAL_ImageIO/src/CGAL_ImageIO/mincio.cpp +++ /dev/null @@ -1,18 +0,0 @@ -// Copyright (c) 2005-2008 ASCLEPIOS Project, INRIA Sophia-Antipolis (France) -// All rights reserved. -// -// This file is part of the ImageIO Library, and as been adapted for CGAL (www.cgal.org). -// -// $URL$ -// $Id$ -// SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial -// -// -// Author(s) : ASCLEPIOS Project (INRIA Sophia-Antipolis), Laurent Rineau - -#ifndef CGAL_HEADER_ONLY - -#include -#include - -#endif // CGAL_HEADER_ONLY diff --git a/CGAL_ImageIO/src/CGAL_ImageIO/pnm.cpp b/CGAL_ImageIO/src/CGAL_ImageIO/pnm.cpp deleted file mode 100644 index 45bb0b3c455..00000000000 --- a/CGAL_ImageIO/src/CGAL_ImageIO/pnm.cpp +++ /dev/null @@ -1,18 +0,0 @@ -// Copyright (c) 2005-2008 ASCLEPIOS Project, INRIA Sophia-Antipolis (France) -// All rights reserved. -// -// This file is part of the ImageIO Library, and as been adapted for CGAL (www.cgal.org). -// -// $URL$ -// $Id$ -// SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial -// -// -// Author(s) : ASCLEPIOS Project (INRIA Sophia-Antipolis), Laurent Rineau - -#ifndef CGAL_HEADER_ONLY - -#include -#include - -#endif // CGAL_HEADER_ONLY diff --git a/CGAL_ImageIO/src/CGAL_ImageIO/recbuffer.cpp b/CGAL_ImageIO/src/CGAL_ImageIO/recbuffer.cpp deleted file mode 100644 index c7a23780a65..00000000000 --- a/CGAL_ImageIO/src/CGAL_ImageIO/recbuffer.cpp +++ /dev/null @@ -1,18 +0,0 @@ -// Copyright (c) 2005-2008 ASCLEPIOS Project, INRIA Sophia-Antipolis (France) -// All rights reserved. -// -// This file is part of the ImageIO Library, and as been adapted for CGAL (www.cgal.org). -// -// $URL$ -// $Id$ -// SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial -// -// -// Author(s) : ASCLEPIOS Project (INRIA Sophia-Antipolis), Laurent Rineau - -#ifndef CGAL_HEADER_ONLY - -#include -#include - -#endif // CGAL_HEADER_ONLY diff --git a/CGAL_ImageIO/src/CGAL_ImageIO/recline.cpp b/CGAL_ImageIO/src/CGAL_ImageIO/recline.cpp deleted file mode 100644 index fc57c491bef..00000000000 --- a/CGAL_ImageIO/src/CGAL_ImageIO/recline.cpp +++ /dev/null @@ -1,18 +0,0 @@ -// Copyright (c) 2005-2008 ASCLEPIOS Project, INRIA Sophia-Antipolis (France) -// All rights reserved. -// -// This file is part of the ImageIO Library, and as been adapted for CGAL (www.cgal.org). -// -// $URL$ -// $Id$ -// SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial -// -// -// Author(s) : ASCLEPIOS Project (INRIA Sophia-Antipolis), Laurent Rineau - -#ifndef CGAL_HEADER_ONLY - -#include -#include - -#endif // CGAL_HEADER_ONLY diff --git a/CGAL_ImageIO/src/CGAL_ImageIO/reech4x4.cpp b/CGAL_ImageIO/src/CGAL_ImageIO/reech4x4.cpp deleted file mode 100644 index af0e25c09c5..00000000000 --- a/CGAL_ImageIO/src/CGAL_ImageIO/reech4x4.cpp +++ /dev/null @@ -1,18 +0,0 @@ -// Copyright (c) 2005-2008 ASCLEPIOS Project, INRIA Sophia-Antipolis (France) -// All rights reserved. -// -// This file is part of the ImageIO Library, and as been adapted for CGAL (www.cgal.org). -// -// $URL$ -// $Id$ -// SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial -// -// -// Author(s) : ASCLEPIOS Project (INRIA Sophia-Antipolis), Laurent Rineau - -#ifndef CGAL_HEADER_ONLY - -#include -#include - -#endif // CGAL_HEADER_ONLY diff --git a/Geomview/src/CGAL/Geomview_stream.cpp b/Geomview/src/CGAL/Geomview_stream.cpp deleted file mode 100644 index 8f316b4e6a5..00000000000 --- a/Geomview/src/CGAL/Geomview_stream.cpp +++ /dev/null @@ -1,22 +0,0 @@ -// Copyright (c) 1999-2004 -// Utrecht University (The Netherlands), -// ETH Zurich (Switzerland), -// INRIA Sophia-Antipolis (France), -// Max-Planck-Institute Saarbruecken (Germany), -// and Tel-Aviv University (Israel). All rights reserved. -// -// This file is part of CGAL (www.cgal.org) -// -// $URL$ -// $Id$ -// SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial -// -// -// Author(s) : Andreas Fabri, Herve Bronnimann, Sylvain Pion - -#ifndef CGAL_HEADER_ONLY - -#include -#include - -#endif diff --git a/GraphicsView/src/CGAL_Qt5/CMakeLists.txt b/GraphicsView/src/CGAL_Qt5/CMakeLists.txt deleted file mode 100644 index ce9299388f3..00000000000 --- a/GraphicsView/src/CGAL_Qt5/CMakeLists.txt +++ /dev/null @@ -1,30 +0,0 @@ -message("Configuring libCGAL_Qt5") - -if(NOT POLICY CMP0070 AND POLICY CMP0053) - # Only set CMP0053 to OLD with CMake<3.10, otherwise there is a warning. - cmake_policy(SET CMP0053 OLD) -endif() - -include(CGAL_SetupCGAL_Qt5Dependencies) - -if(CGAL_Qt5_MISSING_DEPS) - message(STATUS "libCGAL_Qt5 is missing the dependencies: ${CGAL_Qt5_MISSING_DEPS} cannot be configured.") - return() -endif() - -message( STATUS "USING Qt5_VERSION = '${Qt5Core_VERSION_STRING}'" ) - -collect_cgal_library( CGAL_Qt5 "") - -CGAL_setup_CGAL_Qt5_dependencies( CGAL_Qt5 ) - -if(COMMAND add_config_flag) - set( CGAL_HAS_QT5 TRUE ) - add_config_flag( CGAL_HAS_QT5 ) -endif() - -install(DIRECTORY "../../include/CGAL/Qt/" DESTINATION "${CGAL_INSTALL_INC_DIR}/CGAL/Qt" COMPONENT CGAL_Qt5) -install(DIRECTORY "../../demo/resources/" DESTINATION "${CGAL_INSTALL_CMAKE_DIR}/demo/resources" COMPONENT CGAL_Qt5) -install(DIRECTORY "../../demo/icons/" DESTINATION "${CGAL_INSTALL_CMAKE_DIR}/demo/icons" COMPONENT CGAL_Qt5) - -message("libCGAL_Qt5 is configured") diff --git a/GraphicsView/src/CGAL_Qt5/DemosMainWindow.cpp b/GraphicsView/src/CGAL_Qt5/DemosMainWindow.cpp deleted file mode 100644 index cc6726f3492..00000000000 --- a/GraphicsView/src/CGAL_Qt5/DemosMainWindow.cpp +++ /dev/null @@ -1,20 +0,0 @@ -// Copyright (c) 2008 GeometryFactory Sarl (France). -// All rights reserved. -// -// This file is part of CGAL (www.cgal.org). -// -// $URL$ -// $Id$ -// SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial -// -// -// Author(s) : Andreas Fabri -// Laurent Rineau - -#ifndef CGAL_HEADER_ONLY - -#include -#include -#include -#include -#endif // CGAL_HEADER_ONLY diff --git a/GraphicsView/src/CGAL_Qt5/GraphicsView.qtmoc.cmake b/GraphicsView/src/CGAL_Qt5/GraphicsView.qtmoc.cmake deleted file mode 100644 index 95ba7c31f5a..00000000000 --- a/GraphicsView/src/CGAL_Qt5/GraphicsView.qtmoc.cmake +++ /dev/null @@ -1,8 +0,0 @@ -# moc files that are compiled directly as cpp files -qt5_wrap_cpp(mocfiles ../../include/CGAL/Qt/GraphicsViewNavigation.h - ../../include/CGAL/Qt/DemosMainWindow.h - ../../include/CGAL/Qt/GraphicsItem.h - ../../include/CGAL/Qt/GraphicsViewInput.h) - -# qrc files (resources files, that contain icons, at least) -qt5_add_resources ( RESOURCE_FILES ../../demo/resources/CGAL.qrc ../../demo/icons/Input.qrc ../../demo/icons/File.qrc ../../demo/icons/Triangulation_2.qrc) diff --git a/GraphicsView/src/CGAL_Qt5/GraphicsViewNavigation.cpp b/GraphicsView/src/CGAL_Qt5/GraphicsViewNavigation.cpp deleted file mode 100644 index fac60c7342d..00000000000 --- a/GraphicsView/src/CGAL_Qt5/GraphicsViewNavigation.cpp +++ /dev/null @@ -1,21 +0,0 @@ -// Copyright (c) 2008 GeometryFactory Sarl (France). -// All rights reserved. -// -// This file is part of CGAL (www.cgal.org). -// -// $URL$ -// $Id$ -// SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial -// -// -// Author(s) : Andreas Fabri -// Laurent Rineau - -#ifndef CGAL_HEADER_ONLY - -#include -#include -#include -#include - -#endif // CGAL_HEADER_ONLY diff --git a/GraphicsView/src/CGAL_Qt5/GraphicsViewPolylineInput.cpp b/GraphicsView/src/CGAL_Qt5/GraphicsViewPolylineInput.cpp deleted file mode 100644 index 9876e5ce76a..00000000000 --- a/GraphicsView/src/CGAL_Qt5/GraphicsViewPolylineInput.cpp +++ /dev/null @@ -1,21 +0,0 @@ -// Copyright (c) 2008 GeometryFactory Sarl (France). -// All rights reserved. -// -// This file is part of CGAL (www.cgal.org). -// -// $URL$ -// $Id$ -// SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial -// -// -// Author(s) : Andreas Fabri -// Laurent Rineau - -#ifndef CGAL_HEADER_ONLY - -#include -#include -#include -#include - -#endif // CGAL_HEADER_ONLY diff --git a/GraphicsView/src/CGAL_Qt5/camera.cpp b/GraphicsView/src/CGAL_Qt5/camera.cpp deleted file mode 100644 index 278cd06dfd2..00000000000 --- a/GraphicsView/src/CGAL_Qt5/camera.cpp +++ /dev/null @@ -1,17 +0,0 @@ -// Copyright (c) 2018 GeometryFactory Sarl (France). -// All rights reserved. -// -// This file is part of CGAL (www.cgal.org). -// -// $URL$ -// $Id$ -// SPDX-License-Identifier: GPL-3.0-or-later -// -// Author(s) : Maxime Gimeno - -#ifndef CGAL_HEADER_ONLY - -#include -#include - -#endif // CGAL_HEADER_ONLY diff --git a/GraphicsView/src/CGAL_Qt5/constraint.cpp b/GraphicsView/src/CGAL_Qt5/constraint.cpp deleted file mode 100644 index 3c052878a79..00000000000 --- a/GraphicsView/src/CGAL_Qt5/constraint.cpp +++ /dev/null @@ -1,17 +0,0 @@ -// Copyright (c) 2018 GeometryFactory Sarl (France). -// All rights reserved. -// -// This file is part of CGAL (www.cgal.org). -// -// $URL$ -// $Id$ -// SPDX-License-Identifier: GPL-3.0-or-later -// -// Author(s) : Maxime Gimeno - -#ifndef CGAL_HEADER_ONLY - -#include -#include - -#endif // CGAL_HEADER_ONLY diff --git a/GraphicsView/src/CGAL_Qt5/debug.cpp b/GraphicsView/src/CGAL_Qt5/debug.cpp deleted file mode 100644 index 59165a240b3..00000000000 --- a/GraphicsView/src/CGAL_Qt5/debug.cpp +++ /dev/null @@ -1,19 +0,0 @@ -// Copyright (c) 2008 GeometryFactory Sarl (France). -// All rights reserved. -// -// This file is part of CGAL (www.cgal.org). -// -// $URL$ -// $Id$ -// SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial -// -// -// Author(s) : Andreas Fabri -// Laurent Rineau - -#ifndef CGAL_HEADER_ONLY - -#include -#include - -#endif // CGAL_HEADER_ONLY diff --git a/GraphicsView/src/CGAL_Qt5/frame.cpp b/GraphicsView/src/CGAL_Qt5/frame.cpp deleted file mode 100644 index e1f149f35bd..00000000000 --- a/GraphicsView/src/CGAL_Qt5/frame.cpp +++ /dev/null @@ -1,17 +0,0 @@ -// Copyright (c) 2018 GeometryFactory Sarl (France). -// All rights reserved. -// -// This file is part of CGAL (www.cgal.org). -// -// $URL$ -// $Id$ -// SPDX-License-Identifier: GPL-3.0-or-later -// -// Author(s) : Maxime Gimeno - -#ifndef CGAL_HEADER_ONLY - -#include -#include - -#endif // CGAL_HEADER_ONLY diff --git a/GraphicsView/src/CGAL_Qt5/keyFrameInterpolator.cpp b/GraphicsView/src/CGAL_Qt5/keyFrameInterpolator.cpp deleted file mode 100644 index 0ddb05d0aa2..00000000000 --- a/GraphicsView/src/CGAL_Qt5/keyFrameInterpolator.cpp +++ /dev/null @@ -1,17 +0,0 @@ -// Copyright (c) 2018 GeometryFactory Sarl (France). -// All rights reserved. -// -// This file is part of CGAL (www.cgal.org). -// -// $URL$ -// $Id$ -// SPDX-License-Identifier: GPL-3.0-or-later -// -// Author(s) : Maxime Gimeno - -#ifndef CGAL_HEADER_ONLY - -#include -#include - -#endif // CGAL_HEADER_ONLY diff --git a/GraphicsView/src/CGAL_Qt5/manipulatedCameraFrame.cpp b/GraphicsView/src/CGAL_Qt5/manipulatedCameraFrame.cpp deleted file mode 100644 index 5d24867991b..00000000000 --- a/GraphicsView/src/CGAL_Qt5/manipulatedCameraFrame.cpp +++ /dev/null @@ -1,17 +0,0 @@ -// Copyright (c) 2018 GeometryFactory Sarl (France). -// All rights reserved. -// -// This file is part of CGAL (www.cgal.org). -// -// $URL$ -// $Id$ -// SPDX-License-Identifier: GPL-3.0-or-later -// -// Author(s) : Maxime Gimeno - -#ifndef CGAL_HEADER_ONLY - -#include -#include - -#endif // CGAL_HEADER_ONLY diff --git a/GraphicsView/src/CGAL_Qt5/manipulatedFrame.cpp b/GraphicsView/src/CGAL_Qt5/manipulatedFrame.cpp deleted file mode 100644 index 99a10c2d700..00000000000 --- a/GraphicsView/src/CGAL_Qt5/manipulatedFrame.cpp +++ /dev/null @@ -1,17 +0,0 @@ -// Copyright (c) 2018 GeometryFactory Sarl (France). -// All rights reserved. -// -// This file is part of CGAL (www.cgal.org). -// -// $URL$ -// $Id$ -// SPDX-License-Identifier: GPL-3.0-or-later -// -// Author(s) : Maxime Gimeno - -#ifndef CGAL_HEADER_ONLY - -#include -#include - -#endif // CGAL_HEADER_ONLY diff --git a/GraphicsView/src/CGAL_Qt5/mouseGrabber.cpp b/GraphicsView/src/CGAL_Qt5/mouseGrabber.cpp deleted file mode 100644 index e92c7af56ea..00000000000 --- a/GraphicsView/src/CGAL_Qt5/mouseGrabber.cpp +++ /dev/null @@ -1,17 +0,0 @@ -// Copyright (c) 2018 GeometryFactory Sarl (France). -// All rights reserved. -// -// This file is part of CGAL (www.cgal.org). -// -// $URL$ -// $Id$ -// SPDX-License-Identifier: GPL-3.0-or-later -// -// Author(s) : Maxime Gimeno - -#ifndef CGAL_HEADER_ONLY - -#include -#include - -#endif // CGAL_HEADER_ONLY diff --git a/GraphicsView/src/CGAL_Qt5/qglviewer.cpp b/GraphicsView/src/CGAL_Qt5/qglviewer.cpp deleted file mode 100644 index 3a2134fbc3a..00000000000 --- a/GraphicsView/src/CGAL_Qt5/qglviewer.cpp +++ /dev/null @@ -1,17 +0,0 @@ -// Copyright (c) 2018 GeometryFactory Sarl (France). -// All rights reserved. -// -// This file is part of CGAL (www.cgal.org). -// -// $URL$ -// $Id$ -// SPDX-License-Identifier: GPL-3.0-or-later -// -// Author(s) : Maxime Gimeno - -#ifndef CGAL_HEADER_ONLY - -#include -#include - -#endif // CGAL_HEADER_ONLY diff --git a/GraphicsView/src/CGAL_Qt5/quaternion.cpp b/GraphicsView/src/CGAL_Qt5/quaternion.cpp deleted file mode 100644 index b9ee4d5fd1b..00000000000 --- a/GraphicsView/src/CGAL_Qt5/quaternion.cpp +++ /dev/null @@ -1,17 +0,0 @@ -// Copyright (c) 2018 GeometryFactory Sarl (France). -// All rights reserved. -// -// This file is part of CGAL (www.cgal.org). -// -// $URL$ -// $Id$ -// SPDX-License-Identifier: GPL-3.0-or-later -// -// Author(s) : Maxime Gimeno - -#ifndef CGAL_HEADER_ONLY - -#include -#include - -#endif // CGAL_HEADER_ONLY diff --git a/GraphicsView/src/CGAL_Qt5/resources.cpp b/GraphicsView/src/CGAL_Qt5/resources.cpp deleted file mode 100644 index 217660d9c2a..00000000000 --- a/GraphicsView/src/CGAL_Qt5/resources.cpp +++ /dev/null @@ -1,20 +0,0 @@ -// Copyright (c) 2011 GeometryFactory Sarl (France). -// All rights reserved. -// -// This file is part of CGAL (www.cgal.org). -// -// $URL$ -// $Id$ -// SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial -// -// -// Author(s) : Laurent Rineau - -#ifndef CGAL_HEADER_ONLY - -#include -#include -#include -#include - -#endif // CGAL_HEADER_ONLY diff --git a/GraphicsView/src/CGAL_Qt5/utility.cpp b/GraphicsView/src/CGAL_Qt5/utility.cpp deleted file mode 100644 index 247d18fc00a..00000000000 --- a/GraphicsView/src/CGAL_Qt5/utility.cpp +++ /dev/null @@ -1,18 +0,0 @@ -// Copyright (c) 2008 GeometryFactory Sarl (France). -// All rights reserved. -// -// This file is part of CGAL (www.cgal.org). -// -// $URL$ -// $Id$ -// SPDX-License-Identifier: GPL-3.0-or-later OR LicenseRef-Commercial -// -// Author(s) : Andreas Fabri -// Laurent Rineau - -#ifndef CGAL_HEADER_ONLY - -#include -#include - -#endif // CGAL_HEADER_ONLY diff --git a/GraphicsView/src/CGAL_Qt5/vec.cpp b/GraphicsView/src/CGAL_Qt5/vec.cpp deleted file mode 100644 index 85a4f8823b1..00000000000 --- a/GraphicsView/src/CGAL_Qt5/vec.cpp +++ /dev/null @@ -1,17 +0,0 @@ -// Copyright (c) 2018 GeometryFactory Sarl (France). -// All rights reserved. -// -// This file is part of CGAL (www.cgal.org). -// -// $URL$ -// $Id$ -// SPDX-License-Identifier: GPL-3.0-or-later -// -// Author(s) : Maxime Gimeno - -#ifndef CGAL_HEADER_ONLY - -#include -#include - -#endif // CGAL_HEADER_ONLY diff --git a/Installation/src/CGAL/CMakeLists.txt b/Installation/src/CGAL/CMakeLists.txt deleted file mode 100644 index 64d72ad137d..00000000000 --- a/Installation/src/CGAL/CMakeLists.txt +++ /dev/null @@ -1,16 +0,0 @@ -message("Configuring libCGAL") - -collect_cgal_library(CGAL "") - -include(CGAL_SetupCGALDependencies) - -CGAL_setup_CGAL_dependencies(CGAL) - -if(NOT CGAL_DISABLE_GMP) - get_dependency_version(GMP) - get_dependency_version(MPFR) -endif() - -message( STATUS "USING BOOST_VERSION = '${Boost_MAJOR_VERSION}.${Boost_MINOR_VERSION}.${Boost_SUBMINOR_VERSION}'" ) - -message("libCGAL is configured") diff --git a/Installation/src/CGAL_libs_verinfo.rc.in b/Installation/src/CGAL_libs_verinfo.rc.in deleted file mode 100644 index 56a65021857..00000000000 --- a/Installation/src/CGAL_libs_verinfo.rc.in +++ /dev/null @@ -1,68 +0,0 @@ -# if defined(UNDER_CE) -# include -# else -# include -# endif - -// The following is set by CMake -#cmakedefine CGAL_BRANCH_BUILD - -// The values of the following variable are filled by CMake -#define CGAL_LIB_NAME @LIBRARY_NAME@ -#define CGAL_VERSION_MAJOR @CGAL_MAJOR_VERSION@ -#define CGAL_VERSION_MINOR @CGAL_MINOR_VERSION@ -#define CGAL_VERSION_PATCH @CGAL_BUGFIX_VERSION@ -#define CGAL_VERSION_BUILD @CGAL_BUILD_VERSION@ -#ifdef _DEBUG -# define CGAL_LIB_FULLNAME "@DEBUG_MANGLED_NAME@.dll" -#else -# define CGAL_LIB_FULLNAME "@RELEASE_MANGLED_NAME@.dll" -#endif - -#define CGAL_VER_EMPTY_STR "\0" -#define CGAL_VER_xxstr(s) #s -#define CGAL_VER_xstr(s) CGAL_VER_xxstr(s) CGAL_VER_EMPTY_STR -#define CGAL_VER_str(s) CGAL_VER_xstr(s) - -#define CGAL_VER_VERSION CGAL_VERSION_MAJOR,CGAL_VERSION_MINOR,CGAL_VERSION_PATCH,CGAL_VERSION_BUILD -#define CGAL_VER_VERSION_STR CGAL_VER_str(CGAL_VERSION_MAJOR) "." CGAL_VER_str(CGAL_VERSION_MINOR) "." CGAL_VER_str(CGAL_VERSION_PATCH) "." CGAL_VER_str(CGAL_VERSION_BUILD) -#define CGAL_VER_COMPANYNAME_STR "The CGAL Project, https://www.cgal.org/\0" -#define CGAL_VER_FILEDESCRIPTION_STR "@LIBRARY_NAME@ Library\0" -#define CGAL_VER_FILEVERSION_STR CGAL_VER_VERSION_STR -#define CGAL_VER_ORIGINALFILENAME_STR CGAL_LIB_FULLNAME CGAL_VER_EMPTY_STR -#define CGAL_VER_PRODUCTNAME_STR "CGAL\0" -#define CGAL_VER_PRODUCTVERSION_STR CGAL_VER_VERSION_STR - -VS_VERSION_INFO VERSIONINFO - FILEVERSION CGAL_VER_VERSION - PRODUCTVERSION CGAL_VER_VERSION - FILEFLAGSMASK 0x3fL -#ifdef _DEBUG - FILEFLAGS VS_FF_DEBUG -#else - FILEFLAGS 0x0L -#endif - FILEOS VOS__WINDOWS32 - FILETYPE VFT_DLL - FILESUBTYPE 0x0L - BEGIN - BLOCK "StringFileInfo" - BEGIN - BLOCK "040904E4" - BEGIN - VALUE "CompanyName", CGAL_VER_COMPANYNAME_STR - VALUE "FileDescription", CGAL_VER_FILEDESCRIPTION_STR - VALUE "FileVersion", CGAL_VER_FILEVERSION_STR - VALUE "OriginalFilename", CGAL_VER_ORIGINALFILENAME_STR - VALUE "ProductName", CGAL_VER_PRODUCTNAME_STR - VALUE "ProductVersion", CGAL_VER_PRODUCTVERSION_STR - END - END - - BLOCK "VarFileInfo" - BEGIN - VALUE "Translation", 0x409, 1252 - END - END -/* End of Version info */ - diff --git a/Installation/src/CMakeLists.txt b/Installation/src/CMakeLists.txt deleted file mode 100644 index 569402b1d59..00000000000 --- a/Installation/src/CMakeLists.txt +++ /dev/null @@ -1,133 +0,0 @@ -function (collect_cgal_library LIBRARY_NAME ADDITIONAL_FILES) - set(CGAL_LIB_PREFIX "lib") - - set(RELEASE_MANGLED_NAME "${CGAL_LIB_PREFIX}${LIBRARY_NAME}-${CGAL_TOOLSET}-mt-${CGAL_FULL_VERSION}" ) - set(DEBUG_MANGLED_NAME "${CGAL_LIB_PREFIX}${LIBRARY_NAME}-${CGAL_TOOLSET}-mt-gd-${CGAL_FULL_VERSION}" ) - - set(rc_file ) - - add_library(${LIBRARY_NAME} INTERFACE) - - # Add an alias with the prefix `CGAL::`, so that consumer - # CMakeLists.txt can be the target like if it was an imported - # target. - add_library(CGAL::${LIBRARY_NAME} ALIAS ${LIBRARY_NAME}) - if(NOT TARGET ALL_CGAL_TARGETS) - add_custom_target( ALL_CGAL_TARGETS ) - endif() - add_dependencies( ALL_CGAL_TARGETS ${LIBRARY_NAME} ) - -endfunction() - -function( configure_component DIR COMPONENT ) - set(enabled_by_default ON) - option( WITH_${COMPONENT} "Enable CGAL component ${COMPONENT}" ${enabled_by_default}) - if ( WITH_${COMPONENT}) - add_subdirectory( ${DIR} ${COMPONENT} ) - endif() -endfunction() - -# Output directory of libraries (.so, .dylib, non-static .lib) -set(CGAL_LIBRARIES_DIR ${CMAKE_BINARY_DIR}/lib) -set(CMAKE_LIBRARY_OUTPUT_DIRECTORY ${CGAL_LIBRARIES_DIR}) -# Output directory of static libraries (.a, static .lib) -set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY ${CGAL_LIBRARIES_DIR}) - -# For output directory of DLLs (.dll files) -set(CGAL_RUNTIME_DIR ${CMAKE_BINARY_DIR}/bin) -set(CMAKE_RUNTIME_OUTPUT_DIRECTORY ${CGAL_RUNTIME_DIR}) - -## Prevent use of intermediate directory with MSVC, because we use name -## mangling -#foreach(Conf_type ${CMAKE_CONFIGURATION_TYPES}) -# # Conf_type is Debug, Release, DebWithDebInfo... -# string(TOUPPER ${Conf_type} CONF_TYPE) -# # CONF_TYPE is DEBUG, RELEASE, DEBWITHDEBINFO -# set(CMAKE_LIBRARY_OUTPUT_DIRECTORY_${CONF_TYPE} ${CMAKE_LIBRARY_OUTPUT_DIRECTORY}) -# set(CMAKE_ARCHIVE_OUTPUT_DIRECTORY_${CONF_TYPE} ${CMAKE_ARCHIVE_OUTPUT_DIRECTORY}) -# set(CMAKE_RUNTIME_OUTPUT_DIRECTORY_${CONF_TYPE} ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}) -#endforeach() - -# TODO: Seems useless, because it is called again in ../CMakeLists.txt -# Should probably be removed. -- Laurent Rineau, 2014/07/22 - -set(CGAL_DIR ${CMAKE_BINARY_DIR}) - -add_subdirectory(CGAL) - -# search libs -set(CGAL_CONFIGURED_LIBRARIES "") - -foreach(package ${CGAL_CONFIGURED_PACKAGES}) - file(GLOB CONFIGURED_LIBS_IN_PACKAGE ${package}/src/CGAL_*/CMakeLists.txt) - list(SORT CONFIGURED_LIBS_IN_PACKAGE) - foreach (libconfigfile ${CONFIGURED_LIBS_IN_PACKAGE}) - get_filename_component(CGAL_CONFIGURED_LIBRARY_NAME ${libconfigfile} PATH) - get_filename_component(CGAL_CONFIGURED_LIBRARY_NAME ${CGAL_CONFIGURED_LIBRARY_NAME} NAME) - - if (NOT ${CGAL_CONFIGURED_LIBRARY_NAME} STREQUAL "CGAL") - - message(STATUS "Sources for CGAL component library '${CGAL_CONFIGURED_LIBRARY_NAME}' detected") - list(APPEND CGAL_CONFIGURED_LIBRARIES ${CGAL_CONFIGURED_LIBRARY_NAME}) - #message(STATUS "Library config detected: ${CGAL_CONFIGURED_LIBRARIES}") - - cache_set(${CGAL_CONFIGURED_LIBRARY_NAME}_LIBRARY "" ) - cache_set(${CGAL_CONFIGURED_LIBRARY_NAME}_3RD_PARTY_DEFINITIONS "" ) - cache_set(${CGAL_CONFIGURED_LIBRARY_NAME}_3RD_PARTY_INCLUDE_DIRS "" ) - cache_set(${CGAL_CONFIGURED_LIBRARY_NAME}_3RD_PARTY_LIBRARIES "" ) - cache_set(${CGAL_CONFIGURED_LIBRARY_NAME}_3RD_PARTY_LIBRARIES_DIRS "" ) - if (${CGAL_CONFIGURED_LIBRARY_NAME} STREQUAL "CGAL_Core") - if (NOT CGAL_NO_CORE) - configure_component( ${package}/src/${CGAL_CONFIGURED_LIBRARY_NAME} ${CGAL_CONFIGURED_LIBRARY_NAME}) - else(NOT CGAL_NO_CORE) - message( STATUS "CGAL_Core is not being configured (missing GMP, or 64bit architecture).") - endif(NOT CGAL_NO_CORE) - else() - configure_component( ${package}/src/${CGAL_CONFIGURED_LIBRARY_NAME} ${CGAL_CONFIGURED_LIBRARY_NAME}) - endif() - - cache_get(${CGAL_CONFIGURED_LIBRARY_NAME}_LIBRARY) - - cache_get(${CGAL_CONFIGURED_LIBRARY_NAME}_3RD_PARTY_DEFINITIONS ) - cache_get(${CGAL_CONFIGURED_LIBRARY_NAME}_3RD_PARTY_INCLUDE_DIRS ) - cache_get(${CGAL_CONFIGURED_LIBRARY_NAME}_3RD_PARTY_LIBRARIES ) - cache_get(${CGAL_CONFIGURED_LIBRARY_NAME}_3RD_PARTY_LIBRARIES_DIRS) - - else() - - list(APPEND CGAL_CONFIGURED_LIBRARIES CGAL) - - endif() - endforeach() -endforeach() - -if (NOT CGAL_CONFIGURED_LIBRARIES) - message(FATAL_ERROR "No component library in configured packages found. Please fix package-file.") -endif() - -list(REMOVE_DUPLICATES CGAL_CONFIGURED_LIBRARIES) -list(SORT CGAL_CONFIGURED_LIBRARIES) -cache_set(CGAL_CONFIGURED_LIBRARIES "${CGAL_CONFIGURED_LIBRARIES}") - -# CGAL_CONFIGURED_LIBRARIES is a virtually useless variable, because -# we do not know if those components actually created a target. It -# might seem bad that we hardcode the target names here, but they have -# always been hardcoded in the CGALConfig files, so we do not make it -# any worse. We can also not use export(EXPORT) since that is only -# available in newer CMake versions. -set(CGAL_ACTUAL_CONFIGURED_LIBRARIES "") -macro(CGAL_add_if_target TARGET) - if(TARGET ${TARGET}) - list(APPEND CGAL_ACTUAL_CONFIGURED_LIBRARIES ${TARGET}) - endif() -endmacro() - -CGAL_add_if_target(CGAL) -CGAL_add_if_target(CGAL_Core) -CGAL_add_if_target(CGAL_ImageIO) -CGAL_add_if_target(CGAL_Qt5) - -cache_set(CGAL_ACTUAL_CONFIGURED_LIBRARIES "${CGAL_ACTUAL_CONFIGURED_LIBRARIES}") - -message(STATUS "Sources for CGAL component libraries '${CGAL_CONFIGURED_LIBRARIES}' detected") - diff --git a/Kernel_23/src/CGAL/kernel.cpp b/Kernel_23/src/CGAL/kernel.cpp deleted file mode 100644 index 73c0aeec5f7..00000000000 --- a/Kernel_23/src/CGAL/kernel.cpp +++ /dev/null @@ -1,23 +0,0 @@ -// Copyright (c) 1999 -// Utrecht University (The Netherlands), -// ETH Zurich (Switzerland), -// INRIA Sophia-Antipolis (France), -// Max-Planck-Institute Saarbruecken (Germany), -// and Tel-Aviv University (Israel). All rights reserved. -// -// This file is part of CGAL (www.cgal.org) -// -// $URL$ -// $Id$ -// SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial -// -// -// Author(s) : Andreas Fabri, Stefan Schirra - -#ifndef CGAL_HEADER_ONLY -#include -#include -#include -#include - -#endif // CGAL_HEADER_ONLY diff --git a/Number_types/src/CGAL/Interval_arithmetic.cpp b/Number_types/src/CGAL/Interval_arithmetic.cpp deleted file mode 100644 index c64a80f7923..00000000000 --- a/Number_types/src/CGAL/Interval_arithmetic.cpp +++ /dev/null @@ -1,23 +0,0 @@ -// Copyright (c) 1999-2004 -// Utrecht University (The Netherlands), -// ETH Zurich (Switzerland), -// INRIA Sophia-Antipolis (France), -// Max-Planck-Institute Saarbruecken (Germany), -// and Tel-Aviv University (Israel). All rights reserved. -// -// This file is part of CGAL (www.cgal.org) -// -// $URL$ -// $Id$ -// SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial -// -// -// Author(s) : Sylvain Pion - -#ifndef CGAL_HEADER_ONLY - -#include -#include -#include - -#endif diff --git a/Number_types/src/CGAL/test_FPU_rounding_mode.cpp b/Number_types/src/CGAL/test_FPU_rounding_mode.cpp deleted file mode 100644 index c551abeba99..00000000000 --- a/Number_types/src/CGAL/test_FPU_rounding_mode.cpp +++ /dev/null @@ -1,18 +0,0 @@ -// Copyright (c) 2008 GeometryFactory (France) -// All rights reserved. -// -// This file is part of CGAL (www.cgal.org) -// -// $URL$ -// $Id$ -// SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial -// -// -// Author(s) : Laurent Rineau - -#ifndef CGAL_HEADER_ONLY - -#include -#include - -#endif diff --git a/Profiling_tools/src/CGAL/Real_timer.cpp b/Profiling_tools/src/CGAL/Real_timer.cpp deleted file mode 100644 index 7fece958091..00000000000 --- a/Profiling_tools/src/CGAL/Real_timer.cpp +++ /dev/null @@ -1,29 +0,0 @@ -// Copyright (c) 1997 -// Utrecht University (The Netherlands), -// ETH Zurich (Switzerland), -// INRIA Sophia-Antipolis (France), -// Max-Planck-Institute Saarbruecken (Germany), -// and Tel-Aviv University (Israel). All rights reserved. -// -// This file is part of CGAL (www.cgal.org) -// -// $URL$ -// $Id$ -// SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial -// -// -// Author(s) : Lutz Kettner -// Matthias Baesken - -#ifndef CGAL_HEADER_ONLY - -#include -#include - -namespace CGAL { - -bool Real_timer::m_failed = false; - -} //namespace CGAL - -#endif // CGAL_HEADER_ONLY diff --git a/Profiling_tools/src/CGAL/Timer.cpp b/Profiling_tools/src/CGAL/Timer.cpp deleted file mode 100644 index 217e3d8f459..00000000000 --- a/Profiling_tools/src/CGAL/Timer.cpp +++ /dev/null @@ -1,29 +0,0 @@ -// Copyright (c) 1997 -// Utrecht University (The Netherlands), -// ETH Zurich (Switzerland), -// INRIA Sophia-Antipolis (France), -// Max-Planck-Institute Saarbruecken (Germany), -// and Tel-Aviv University (Israel). All rights reserved. -// -// This file is part of CGAL (www.cgal.org) -// -// $URL$ -// $Id$ -// SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial -// -// -// Author(s) : Lutz Kettner -// Matthias Baesken - -#ifndef CGAL_HEADER_ONLY - -#include -#include - -namespace CGAL { - -bool Timer::m_failed = false; - -} //namespace CGAL - -#endif // CGAL_HEADER_ONLY diff --git a/Random_numbers/src/CGAL/Random.cpp b/Random_numbers/src/CGAL/Random.cpp deleted file mode 100644 index 29e2ce7639a..00000000000 --- a/Random_numbers/src/CGAL/Random.cpp +++ /dev/null @@ -1,28 +0,0 @@ -// Copyright (c) 1997-2001 -// Utrecht University (The Netherlands), -// ETH Zurich (Switzerland), -// INRIA Sophia-Antipolis (France), -// Max-Planck-Institute Saarbruecken (Germany), -// and Tel-Aviv University (Israel). All rights reserved. -// -// This file is part of CGAL (www.cgal.org) -// -// $URL$ -// $Id$ -// SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial -// -// -// Author(s) : Sven Schönherr - -#ifndef CGAL_HEADER_ONLY - -#include -#include - -namespace CGAL { - - Random default_random; - -} //namespace CGAL - -#endif diff --git a/STL_Extension/src/CGAL/assertions.cpp b/STL_Extension/src/CGAL/assertions.cpp deleted file mode 100644 index f28f656b1c0..00000000000 --- a/STL_Extension/src/CGAL/assertions.cpp +++ /dev/null @@ -1,22 +0,0 @@ -// Copyright (c) 1997 -// Utrecht University (The Netherlands), -// ETH Zurich (Switzerland), -// INRIA Sophia-Antipolis (France), -// Max-Planck-Institute Saarbruecken (Germany), -// and Tel-Aviv University (Israel). All rights reserved. -// -// This file is part of CGAL (www.cgal.org) -// -// $URL$ -// $Id$ -// SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial -// -// -// Author(s) : Geert-Jan Giezeman and Sven Schönherr - -#ifndef CGAL_HEADER_ONLY - -#include -#include - -#endif // CGAL_HEADER_ONLY diff --git a/Stream_support/src/CGAL/Color.cpp b/Stream_support/src/CGAL/Color.cpp deleted file mode 100644 index d2e0380858a..00000000000 --- a/Stream_support/src/CGAL/Color.cpp +++ /dev/null @@ -1,21 +0,0 @@ -// Copyright (c) 1997 -// Utrecht University (The Netherlands), -// ETH Zurich (Switzerland), -// INRIA Sophia-Antipolis (France), -// Max-Planck-Institute Saarbruecken (Germany), -// and Tel-Aviv University (Israel). All rights reserved. -// -// This file is part of CGAL (www.cgal.org) -// -// $URL$ -// $Id$ -// SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial -// -// -// Author(s) : Andreas Fabri, Hervé Brönnimann - -#ifndef CGAL_HEADER_ONLY - -#include - -#endif // CGAL_HEADER_ONLY diff --git a/Stream_support/src/CGAL/File_header_OFF.cpp b/Stream_support/src/CGAL/File_header_OFF.cpp deleted file mode 100644 index cfcf2f85705..00000000000 --- a/Stream_support/src/CGAL/File_header_OFF.cpp +++ /dev/null @@ -1,24 +0,0 @@ -// Copyright (c) 1997 -// Utrecht University (The Netherlands), -// ETH Zurich (Switzerland), -// INRIA Sophia-Antipolis (France), -// Max-Planck-Institute Saarbruecken (Germany), -// and Tel-Aviv University (Israel). All rights reserved. -// -// This file is part of CGAL (www.cgal.org) -// -// $URL$ -// $Id$ -// SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial -// -// -// Author(s) : Lutz Kettner - -#ifndef CGAL_HEADER_ONLY - -#include -#include - -#endif // CGAL_HEADER_ONLY - -// EOF // diff --git a/Stream_support/src/CGAL/File_header_extended_OFF.cpp b/Stream_support/src/CGAL/File_header_extended_OFF.cpp deleted file mode 100644 index c395d9d6439..00000000000 --- a/Stream_support/src/CGAL/File_header_extended_OFF.cpp +++ /dev/null @@ -1,24 +0,0 @@ -// Copyright (c) 1997 -// Utrecht University (The Netherlands), -// ETH Zurich (Switzerland), -// INRIA Sophia-Antipolis (France), -// Max-Planck-Institute Saarbruecken (Germany), -// and Tel-Aviv University (Israel). All rights reserved. -// -// This file is part of CGAL (www.cgal.org) -// -// $URL$ -// $Id$ -// SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial -// -// -// Author(s) : Lutz Kettner - -#ifndef CGAL_HEADER_ONLY - -#include -#include - -#endif // CGAL_HEADER_ONLY - -// EOF // diff --git a/Stream_support/src/CGAL/File_scanner_OFF.cpp b/Stream_support/src/CGAL/File_scanner_OFF.cpp deleted file mode 100644 index b4cc154f37a..00000000000 --- a/Stream_support/src/CGAL/File_scanner_OFF.cpp +++ /dev/null @@ -1,24 +0,0 @@ -// Copyright (c) 1997 -// Utrecht University (The Netherlands), -// ETH Zurich (Switzerland), -// INRIA Sophia-Antipolis (France), -// Max-Planck-Institute Saarbruecken (Germany), -// and Tel-Aviv University (Israel). All rights reserved. -// -// This file is part of CGAL (www.cgal.org) -// -// $URL$ -// $Id$ -// SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial -// -// -// Author(s) : Lutz Kettner - -#ifndef CGAL_HEADER_ONLY - -#include -#include - -#endif // CGAL_HEADER_ONLY - -// EOF // diff --git a/Stream_support/src/CGAL/File_writer_OFF.cpp b/Stream_support/src/CGAL/File_writer_OFF.cpp deleted file mode 100644 index 64775601b8e..00000000000 --- a/Stream_support/src/CGAL/File_writer_OFF.cpp +++ /dev/null @@ -1,24 +0,0 @@ -// Copyright (c) 1997 -// Utrecht University (The Netherlands), -// ETH Zurich (Switzerland), -// INRIA Sophia-Antipolis (France), -// Max-Planck-Institute Saarbruecken (Germany), -// and Tel-Aviv University (Israel). All rights reserved. -// -// This file is part of CGAL (www.cgal.org) -// -// $URL$ -// $Id$ -// SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial -// -// -// Author(s) : Lutz Kettner - -#ifndef CGAL_HEADER_ONLY - -#include -#include - -#endif // CGAL_HEADER_ONLY - -// EOF // diff --git a/Stream_support/src/CGAL/File_writer_VRML_2.cpp b/Stream_support/src/CGAL/File_writer_VRML_2.cpp deleted file mode 100644 index 287a0cff524..00000000000 --- a/Stream_support/src/CGAL/File_writer_VRML_2.cpp +++ /dev/null @@ -1,24 +0,0 @@ -// Copyright (c) 1997 -// Utrecht University (The Netherlands), -// ETH Zurich (Switzerland), -// INRIA Sophia-Antipolis (France), -// Max-Planck-Institute Saarbruecken (Germany), -// and Tel-Aviv University (Israel). All rights reserved. -// -// This file is part of CGAL (www.cgal.org) -// -// $URL$ -// $Id$ -// SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial -// -// -// Author(s) : Lutz Kettner - -#ifndef CGAL_HEADER_ONLY - -#include -#include - -#endif // CGAL_HEADER_ONLY - -// EOF // diff --git a/Stream_support/src/CGAL/File_writer_inventor.cpp b/Stream_support/src/CGAL/File_writer_inventor.cpp deleted file mode 100644 index e97402b4bcc..00000000000 --- a/Stream_support/src/CGAL/File_writer_inventor.cpp +++ /dev/null @@ -1,24 +0,0 @@ -// Copyright (c) 1997 -// Utrecht University (The Netherlands), -// ETH Zurich (Switzerland), -// INRIA Sophia-Antipolis (France), -// Max-Planck-Institute Saarbruecken (Germany), -// and Tel-Aviv University (Israel). All rights reserved. -// -// This file is part of CGAL (www.cgal.org) -// -// $URL$ -// $Id$ -// SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial -// -// -// Author(s) : Lutz Kettner - -#ifndef CGAL_HEADER_ONLY - -#include -#include - -#endif // CGAL_HEADER_ONLY - -// EOF // diff --git a/Stream_support/src/CGAL/File_writer_wavefront.cpp b/Stream_support/src/CGAL/File_writer_wavefront.cpp deleted file mode 100644 index 11dc3085309..00000000000 --- a/Stream_support/src/CGAL/File_writer_wavefront.cpp +++ /dev/null @@ -1,24 +0,0 @@ -// Copyright (c) 1997 -// Utrecht University (The Netherlands), -// ETH Zurich (Switzerland), -// INRIA Sophia-Antipolis (France), -// Max-Planck-Institute Saarbruecken (Germany), -// and Tel-Aviv University (Israel). All rights reserved. -// -// This file is part of CGAL (www.cgal.org) -// -// $URL$ -// $Id$ -// SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial -// -// -// Author(s) : Lutz Kettner - -#ifndef CGAL_HEADER_ONLY - -#include -#include - -#endif // CGAL_HEADER_ONLY - -// EOF // diff --git a/Stream_support/src/CGAL/io.cpp b/Stream_support/src/CGAL/io.cpp deleted file mode 100644 index 6cdf861abc4..00000000000 --- a/Stream_support/src/CGAL/io.cpp +++ /dev/null @@ -1,22 +0,0 @@ -// Copyright (c) 1997 -// Utrecht University (The Netherlands), -// ETH Zurich (Switzerland), -// INRIA Sophia-Antipolis (France), -// Max-Planck-Institute Saarbruecken (Germany), -// and Tel-Aviv University (Israel). All rights reserved. -// -// This file is part of CGAL (www.cgal.org) -// -// $URL$ -// $Id$ -// SPDX-License-Identifier: LGPL-3.0-or-later OR LicenseRef-Commercial -// -// -// Author(s) : Andreas Fabri - -#ifndef CGAL_HEADER_ONLY - -#include -#include - -#endif From 24390666ebc2d75a7c64b94c07bed862cae71843 Mon Sep 17 00:00:00 2001 From: Maxime Gimeno Date: Wed, 14 Oct 2020 11:31:40 +0200 Subject: [PATCH 21/32] remove qt4 traces in scripts --- Scripts/scripts/cgal_create_CMakeLists | 130 +------------------------ 1 file changed, 5 insertions(+), 125 deletions(-) diff --git a/Scripts/scripts/cgal_create_CMakeLists b/Scripts/scripts/cgal_create_CMakeLists index 2be5be308a3..0bb4db7f473 100755 --- a/Scripts/scripts/cgal_create_CMakeLists +++ b/Scripts/scripts/cgal_create_CMakeLists @@ -29,12 +29,10 @@ #BLAS #LAPACK #OPENNL -#QGLViewer (or implied by Qt4?) #ESBTL #NTL #Core (implies GMP+GMPXX) -#Qt4 (implies QT4) #ImageIO #not (yet) supported @@ -114,11 +112,10 @@ fi if [ ! -z "$CGAL_COMPONENTS" ]; then # ensure capitalization - # CGAL: Core, Qt4, PDB, ImageIO + # CGAL: Core, PDB, ImageIO CGAL_COMPONENTS=${CGAL_COMPONENTS//[c|C][o|O][r|R][e|E]/Core} - CGAL_COMPONENTS=${CGAL_COMPONENTS//[q|Q][t|T]4/Qt4} CGAL_COMPONENTS=${CGAL_COMPONENTS//[i|I][m|M][a|A][g|G][e|E][i|I][o|O]/ImageIO} - + # external libs CGAL_COMPONENTS=${CGAL_COMPONENTS//[g|G][m|M][p|P]/GMP} @@ -153,11 +150,6 @@ fi for cgal_component in $CGAL_COMPONENTS; do COMPONENT=`echo $cgal_component | tr '[:upper:]' '[:lower:]'` - # for qtmoc - if [ "$COMPONENT" = "qt4" ]; then - qt4='y' - fi - done IFS=$OLDIFS @@ -241,31 +233,6 @@ EOF #------------------------------------------------------------------------- fi - # Qt4 - if [ "$qt4" = "y" ]; then - - #vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv - cat << 'EOF' - -# Qt4 -set( QT_USE_QTXML true ) -set( QT_USE_QTMAIN true ) -set( QT_USE_QTSCRIPT true ) -set( QT_USE_QTOPENGL true ) - -find_package(Qt4) - -if ( NOT QT_FOUND ) - - message(STATUS "This project requires the Qt4 library, and will not be compiled.") - return() - -endif() -EOF - #------------------------------------------------------------------------- - - fi #qt4 - if [ ! -z "$BOOST_COMPONENTS" ]; then #vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv cat << 'EOF' @@ -308,22 +275,6 @@ EOF # add a new line echo - # Qt4 - if [ "$qt4" = "y" ]; then - #vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv - cat << 'EOF' - -if ( CGAL_Qt4_FOUND AND QT_FOUND ) - - include( ${QT_USE_FILE} ) - include_directories( ${QT_INCLUDE_DIR} ) - -endif() - -EOF - #----------------------------------------------------------------------- - fi # qt4 - for file in `ls *.cc *.cp *.cxx *.cpp *.CPP *.c++ *.C 2> /dev/null | sort` ; do # Create an executable for each cpp that contains a function "main()" BASE=`basename $file .cc` @@ -335,12 +286,8 @@ EOF BASE=`basename $BASE .C` egrep '\bmain[ \t]*\(' $file >/dev/null 2>&1 if [ $? -eq 0 ]; then - if [ "$qt4" = "y" ]; then - echo "create_single_source_cgal_program_qt4( \"$file\" )" - else - echo "create_single_source_cgal_program( \"$file\" )" - fi - if [ -n "$ENABLE_CTEST" ]; then + echo "create_single_source_cgal_program( \"$file\" )" + if [ -n "$ENABLE_CTEST" ]; then if [ -f "$BASE.cin" ] ; then CIN=" < $BASE.cin" else @@ -384,73 +331,6 @@ EOF all="$all $file" done - # Qt4 - if [ "$qt4" = "y" ]; then - #vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv - cat << 'EOF' - -if ( CGAL_Qt4_FOUND AND QT_FOUND ) - - include( ${QT_USE_FILE} ) - include_directories( ${QT_INCLUDE_DIR} ) - -EOF - #----------------------------------------------------------------------- - - echo " # UI files (Qt Designer files)" - for file in `ls *.ui 2> /dev/null | sort`; do - echo " qt4_wrap_ui( DT_UI_FILES $file )" - done - echo - echo " # qrc files (resources files, that contain icons, at least)" - for file in `ls *.qrc 2> /dev/null | sort`; do - echo " qt4_add_resources ( DT_RESOURCE_FILES ./$file )" - done - echo - MOC_FILES="" - echo " # use the Qt MOC preprocessor on classes that derives from QObject" - for file in `ls include/*.h 2> /dev/null | sort`; do - BASE=`basename $file .h` - egrep 'Q_OBJECT' $file >/dev/null 2>&1 - if [ $? -eq 0 ]; then - echo " qt4_generate_moc( include/${BASE}.h ${BASE}.moc )" - MOC_FILES="${BASE}.moc $MOC_FILES" - fi - done - for file in `ls *.h 2> /dev/null | sort`; do - BASE=`basename $file .h` - egrep 'Q_OBJECT' $file >/dev/null 2>&1 - if [ $? -eq 0 ]; then - echo " qt4_generate_moc( ${BASE}.h ${BASE}.moc )" - MOC_FILES="${BASE}.moc $MOC_FILES" - fi - done - for file in `ls *.cc *.cp *.cxx *.cpp *.CPP *.c++ *.C 2> /dev/null | sort` ; do - BASE=`basename $file .cc` - BASE=`basename $BASE .cp` - BASE=`basename $BASE .cxx` - BASE=`basename $BASE .cpp` - BASE=`basename $BASE .CPP` - BASE=`basename $BASE .c++` - BASE=`basename $BASE .C` - egrep 'Q_OBJECT' $file >/dev/null 2>&1 - if [ $? -eq 0 ]; then - echo " qt4_generate_moc( ${BASE}.cpp ${BASE}.moc )" - MOC_FILES="${BASE}.moc $MOC_FILES" - fi - done - - #vvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvvv - cat << 'EOF' - -endif() -EOF - #----------------------------------------------------------------------- - - all="${all} ${MOC_FILES} \${DT_UI_FILES} \${DT_RESOURCE_FILES}" - - fi # qt4 - # no 'cat' here, as variable substitution required echo echo "add_executable( ${target_name} ${all} )" @@ -480,7 +360,7 @@ usage() echo "Usage: `basename $0` [-s source] [-c cgal-component1:cgal-component2:...] [-b boost-component1:boost-component2:...] [-p] [-o options_file='`pwd`/cgal_cmake_options:$HOME/.cgal_cmake_options_rc'] [-v] [-h]" >&2 echo >&2 echo " -s source If this parameter is given the script will create one single executable for 'source' with all source files; otherwise it creates one executable for each main'ed source." >&2 - echo " cgal_componentX - must be a valid cgal component, examples are 'Core','ImageIO','Qt4' ('benchmark', 'symbolic')." >&2 + echo " cgal_componentX - must be a valid cgal component, examples are 'Core','ImageIO' ('benchmark', 'symbolic')." >&2 echo " boost_componentX - must be a valid boost component, like 'filesystem', 'program_options'." >&2 echo " -o options_file - file with PACKAGE, DIRECTORY, CGAL_COMPONENT, and BOOST_COMPONENT directives" >&2 echo " -v the version" >&2 From 8eb02bd7aa8dcfc98252ade8431fd168d2ceea98 Mon Sep 17 00:00:00 2001 From: Maxime Gimeno Date: Wed, 14 Oct 2020 11:38:31 +0200 Subject: [PATCH 22/32] update scripts --- Scripts/developer_scripts/check_library_uses_no_gpl_files | 2 +- Scripts/developer_scripts/run_testsuite_with_ctest | 4 ++-- Scripts/scripts/cgal_create_CMakeLists | 6 ++---- 3 files changed, 5 insertions(+), 7 deletions(-) diff --git a/Scripts/developer_scripts/check_library_uses_no_gpl_files b/Scripts/developer_scripts/check_library_uses_no_gpl_files index 1d88879cfc0..32960caefda 100755 --- a/Scripts/developer_scripts/check_library_uses_no_gpl_files +++ b/Scripts/developer_scripts/check_library_uses_no_gpl_files @@ -70,7 +70,7 @@ rm -fr demo/[A-Z]* rm -fr examples/[A-Z]* # Somehow -DWITH_CGAL_Core=OFF is not taken into account, hence the CORE files # are listed in the exceptions file. -cmake . -DBUILD_SHARED_LIBS=TRUE -DWITH_CGAL_Qt5=OFF -DWITH_CGAL_Core=OFF +cmake . make | grep -C 10 "No such file" || true echo " done" echo diff --git a/Scripts/developer_scripts/run_testsuite_with_ctest b/Scripts/developer_scripts/run_testsuite_with_ctest index e576403c326..06ccd107d37 100644 --- a/Scripts/developer_scripts/run_testsuite_with_ctest +++ b/Scripts/developer_scripts/run_testsuite_with_ctest @@ -262,14 +262,14 @@ run_test_on_platform() if [ ! -f "${INIT_FILE}" ]; then echo "error NEED A INIT FILE !" fi - cmake ${INIT_FILE:+"-C${INIT_FILE}"} '${CMAKE_GENERATOR}' -DBUILD_TESTING=OFF -DWITH_tests=OFF -DWITH_CGAL_Qt5=OFF -DCGAL_HEADER_ONLY=ON $CGAL_DIR>installation.log 2>&1 + cmake ${INIT_FILE:+"-C${INIT_FILE}"} '${CMAKE_GENERATOR}' -DBUILD_TESTING=OFF -DWITH_tests=OFF $CGAL_DIR>installation.log 2>&1 rm CMakeCache.txt CMAKE_OPTS="-DCGAL_TEST_SUITE=ON -DCMAKE_VERBOSE_MAKEFILE=ON" if [ -n "${SCRIPTS_DIR}" ]; then CMAKE_OPTS="${CMAKE_OPTS} -DWITH_examples=ON -DWITH_demos=ON" fi if [ -z "${SHOW_PROGRESS}" ]; then - cmake ${INIT_FILE:+"-C${INIT_FILE}"} '${CMAKE_GENERATOR}' -DBUILD_TESTING=ON ${CMAKE_OPTS} $CGAL_DIR >package_installation.log 2>&1 + cmake ${INIT_FILE:+"-C${INIT_FILE}"} '${CMAKE_GENERATOR}' -DBUILD_TESTING=ON ${CMAKE_OPTS} $CGAL_DIR >package_installation.log 2>&1 else cmake ${INIT_FILE:+"-C${INIT_FILE}"} '${CMAKE_GENERATOR}' -DBUILD_TESTING=ON ${CMAKE_OPTS} $CGAL_DIR 2>&1 |tee package_installation.log fi diff --git a/Scripts/scripts/cgal_create_CMakeLists b/Scripts/scripts/cgal_create_CMakeLists index 0bb4db7f473..67db54e8d38 100755 --- a/Scripts/scripts/cgal_create_CMakeLists +++ b/Scripts/scripts/cgal_create_CMakeLists @@ -42,21 +42,19 @@ create_cmake_script_with_options() { - qt4='n' - # parse options file if [ -e "$OPTIONS_FILE" ]; then OLDIFS="$IFS" IFS=$'\n' - for LINE in `cat $OPTIONS_FILE`; do + for LINE in `cat $OPTIONS_FILE`; do # CGAL components if [ -z "$CGAL_COMPONENTS_GIVEN" ]; then # read file only if not given! next_cgal_component=`echo $LINE | grep -v "#" | grep CGAL_COMPONENT` if [ ! -z "$next_cgal_component" ]; then next_cgal_component=${next_cgal_component/CGAL_COMPONENT /} - if [ -z "$CGAL_COMPONENTS" ]; then + if [ -z "$CGAL_COMPONENTS" ]; then CGAL_COMPONENTS=$next_cgal_component else CGAL_COMPONENTS=$CGAL_COMPONENTS":"$next_cgal_component From 1df239ed1163ad887f11413dd5ade82ac83d1520 Mon Sep 17 00:00:00 2001 From: Maxime Gimeno Date: Wed, 14 Oct 2020 11:57:43 +0200 Subject: [PATCH 23/32] restore WITH_cgal_lib as it is use din some tests and examples. --- Installation/lib/cmake/CGAL/CGALConfig.cmake | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Installation/lib/cmake/CGAL/CGALConfig.cmake b/Installation/lib/cmake/CGAL/CGALConfig.cmake index 6ca74644abe..e09f2d2c38f 100644 --- a/Installation/lib/cmake/CGAL/CGALConfig.cmake +++ b/Installation/lib/cmake/CGAL/CGALConfig.cmake @@ -131,7 +131,7 @@ include(CGAL_setup_target_dependencies) # Define the CGAL targets and their CGAL:: aliases # foreach(cgal_lib ${CGAL_LIBRARIES}) - + set(WITH_${cgal_lib} TRUE) if(${cgal_lib}_FOUND AND NOT TARGET ${cgal_lib}) add_library(${cgal_lib} INTERFACE IMPORTED GLOBAL) if(NOT TARGET CGAL::${cgal_lib}) From 7bdc5d11a99c22793c958f701359a878d58f8865 Mon Sep 17 00:00:00 2001 From: Maxime Gimeno Date: Thu, 15 Oct 2020 15:03:20 +0200 Subject: [PATCH 24/32] Post-review --- Installation/CMakeLists.txt | 72 +++---------------- Installation/cmake/modules/CGAL_Macros.cmake | 25 ------- .../modules/CGAL_SetupDependencies.cmake | 60 ---------------- .../cmake/modules/CGAL_add_test.cmake | 1 - Installation/demo/CMakeLists.txt | 2 +- Installation/examples/CMakeLists.txt | 2 +- Installation/test/CMakeLists.txt | 2 +- Installation/test/Installation/CMakeLists.txt | 2 +- 8 files changed, 13 insertions(+), 153 deletions(-) diff --git a/Installation/CMakeLists.txt b/Installation/CMakeLists.txt index f6e69d5a1ba..e0c0a639090 100644 --- a/Installation/CMakeLists.txt +++ b/Installation/CMakeLists.txt @@ -4,18 +4,15 @@ # ${CMAKE_SOURCE_DIR} and to the root binary directory of the project as # ${CMAKE_BINARY_DIR} or ${CMAKE_BINARY_DIR}. if(NOT PROJECT_NAME) - cmake_minimum_required(VERSION 3.1...3.15) + cmake_minimum_required(VERSION 3.12...3.18) project(CGAL CXX C) endif() -# https://cmake.org/cmake/help/v3.2/policy/CMP0056.html -# # Fix a bug: `try_compile` should use `CMAKE_EXE_LINKER_FLAGS`. # That variable can contain important flags like # # -static-libstdc++ -static-libgcc # -cmake_policy(SET CMP0056 NEW) # Use GNUInstallDirs to get canonical paths include(GNUInstallDirs) @@ -505,16 +502,7 @@ endif() message("== Detect external libraries ==") -# this is the place to tell which external libs are supporting -# Remarks: -# External libs configured when Qt5 lib of cgal are required -# Coin is used in KDS, but no FindCoin or FindCOIN exists -# There exists FindIPE, FindMKL, but they are only used to support supporting libs -list (INSERT CGAL_SUPPORTING_3RD_PARTY_LIBRARIES 0 LEDA ) -# Where CMake is run several times, to avoid duplicates -list(REMOVE_DUPLICATES CGAL_SUPPORTING_3RD_PARTY_LIBRARIES) -hide_variable(CGAL_SUPPORTING_3RD_PARTY_LIBRARIES) # set some to have special prefix macro( set_special_prefix library prefix) @@ -561,24 +549,6 @@ else() endif() hide_variable(CGAL_ESSENTIAL_3RD_PARTY_LIBRARIES) -foreach (lib ${CGAL_SUPPORTING_3RD_PARTY_LIBRARIES}) - - # set standard prefix - if(NOT DEFINED CGAL_EXT_LIB_${lib}_PREFIX) - set(CGAL_EXT_LIB_${lib}_PREFIX ${lib}) - endif() - hide_variable(CGAL_EXT_LIB_${lib}_PREFIX) - - # add option - list( FIND CGAL_ESSENTIAL_3RD_PARTY_LIBRARIES "${lib}" POSITION ) - if ( "${POSITION}" STRGREATER "-1" ) # if lib is essential - option(WITH_${lib} "Select external library ${lib}" ON) - else() - option(WITH_${lib} "Select external library ${lib}" OFF) - endif() - -endforeach() - #-------------------------------------------------------------------------------------------------- # # -= DEPENDENCIES =- @@ -666,21 +636,9 @@ cache_get(CGAL_3RD_PARTY_INCLUDE_DIRS ) cache_get(CGAL_3RD_PARTY_LIBRARIES ) cache_get(CGAL_3RD_PARTY_LIBRARIES_DIRS) -#add_subdirectory(src) -if(NOT POLICY CMP0070 AND POLICY CMP0053) - # Only set CMP0053 to OLD with CMake<3.10, otherwise there is a warning. - cmake_policy(SET CMP0053 OLD) -endif() - -find_package(Qt5 QUIET COMPONENTS OpenGL Svg Xml) -if(NOT Qt5_FOUND) - message("CGAL_Qt5 needs Qt5 and won't be configured.") -else()#NOT Qt5_FOUND - message( STATUS "USING Qt5_VERSION = '${Qt5Core_VERSION_STRING}'" ) - install(DIRECTORY "${CGAL_GRAPHICSVIEW_PACKAGE_DIR}/include/CGAL/Qt/" DESTINATION "${CGAL_INSTALL_INC_DIR}/CGAL/Qt" COMPONENT CGAL_Qt5) - install(DIRECTORY "${CGAL_GRAPHICSVIEW_PACKAGE_DIR}/demo/resources/" DESTINATION "${CGAL_INSTALL_CMAKE_DIR}/demo/resources" COMPONENT CGAL_Qt5) - install(DIRECTORY "${CGAL_GRAPHICSVIEW_PACKAGE_DIR}/demo/icons/" DESTINATION "${CGAL_INSTALL_CMAKE_DIR}/demo/icons" COMPONENT CGAL_Qt5) -endif()#NOT Qt5_FOUND +install(DIRECTORY "${CGAL_GRAPHICSVIEW_PACKAGE_DIR}/include/CGAL/Qt/" DESTINATION "${CGAL_INSTALL_INC_DIR}/CGAL/Qt" COMPONENT CGAL_Qt5) +install(DIRECTORY "${CGAL_GRAPHICSVIEW_PACKAGE_DIR}/demo/resources/" DESTINATION "${CGAL_INSTALL_CMAKE_DIR}/demo/resources" COMPONENT CGAL_Qt5) +install(DIRECTORY "${CGAL_GRAPHICSVIEW_PACKAGE_DIR}/demo/icons/" DESTINATION "${CGAL_INSTALL_CMAKE_DIR}/demo/icons" COMPONENT CGAL_Qt5) # @@ -1084,11 +1042,6 @@ You must disable CGAL_ENABLE_CHECK_HEADERS.") message("sorting:") list(SORT list_of_documented_headers) #string(REPLACE ";" " \n" list_of_documented_headers "${list_of_documented_headers}") - if (NOT "${list_of_documented_headers}" STREQUAL "") - set(has_list_of_documented_headers TRUE) - else() - set(has_list_of_documented_headers FALSE) - endif() list(SORT list_of_documented_headers) list(REMOVE_DUPLICATES list_of_documented_headers) @@ -1097,26 +1050,19 @@ You must disable CGAL_ENABLE_CHECK_HEADERS.") message("list_of_whitelisted_headers: ${list_of_whitelisted_headers}") ## Loop on package and headers set(check_pkg_target_list) - cmake_policy(SET CMP0057 NEW) #get build dir for removal from deps get_filename_component(BUILD_DIR ${CMAKE_BINARY_DIR} NAME) foreach (package ${CGAL_CONFIGURED_PACKAGES_NAMES}) if(EXISTS ${CMAKE_CURRENT_SOURCE_DIR}/../${package}/include) set(check_pkg_headers_depends "") - if(has_list_of_documented_headers) - # Then recurse2 - file(GLOB_RECURSE ${package}_HEADERS #don't use a hard coded list because the ones for the documented headers is enough. - RELATIVE "${CMAKE_CURRENT_SOURCE_DIR}/../${package}/include" - "${CMAKE_CURRENT_SOURCE_DIR}/../${package}/include/CGAL/*.h*") - else() - file(GLOB ${package}_HEADERS - RELATIVE "${CMAKE_CURRENT_SOURCE_DIR}/../${package}/include" - "${CMAKE_CURRENT_SOURCE_DIR}/../${package}/include/CGAL/*.h*") - endif() + file(GLOB_RECURSE ${package}_HEADERS #don't use a hard coded list because the ones for the documented headers is enough. + RELATIVE "${CMAKE_CURRENT_SOURCE_DIR}/../${package}/include" + "${CMAKE_CURRENT_SOURCE_DIR}/../${package}/include/CGAL/*.h*") + list(SORT ${package}_HEADERS) foreach(header ${${package}_HEADERS}) set(skip_hdr FALSE) - if(has_list_of_documented_headers AND NOT header IN_LIST list_of_documented_headers) + if(NOT header IN_LIST list_of_documented_headers) # message(STATUS "Skip non-documented header \"${header}\".") set(skip_hdr TRUE) endif() diff --git a/Installation/cmake/modules/CGAL_Macros.cmake b/Installation/cmake/modules/CGAL_Macros.cmake index 1b1e42a09d7..f619cd32950 100644 --- a/Installation/cmake/modules/CGAL_Macros.cmake +++ b/Installation/cmake/modules/CGAL_Macros.cmake @@ -367,31 +367,6 @@ if( NOT CGAL_MACROS_FILE_INCLUDED ) file( APPEND ${CMAKE_BINARY_DIR}/CGALConfig.cmake "${SPECIAL_PREFIXES}\n") file( APPEND ${CMAKE_BINARY_DIR}/config/CGALConfig.cmake "${SPECIAL_PREFIXES}") - foreach( lib ${CGAL_SUPPORTING_3RD_PARTY_LIBRARIES} ) - - list( FIND CGAL_ESSENTIAL_3RD_PARTY_LIBRARIES "${lib}" POSITION ) - # if lib is essential ... - if ( ("${POSITION}" STRGREATER "-1") ) - - set (vlib ${CGAL_EXT_LIB_${lib}_PREFIX} ) - #the next 'if' is needed to avoid ${vlib} config variables to be overidden in case of a local configuration change - file( APPEND ${CMAKE_BINARY_DIR}/CGALConfig.cmake " set( ${vlib}_FOUND \"${${vlib}_FOUND}\" )\n") - file( APPEND ${CMAKE_BINARY_DIR}/CGALConfig.cmake " set( ${vlib}_USE_FILE \"${${vlib}_USE_FILE}\" )\n") - file( APPEND ${CMAKE_BINARY_DIR}/CGALConfig.cmake " set( ${vlib}_INCLUDE_DIR \"${${vlib}_INCLUDE_DIR}\" )\n") - file( APPEND ${CMAKE_BINARY_DIR}/CGALConfig.cmake " set( ${vlib}_LIBRARIES \"${${vlib}_LIBRARIES}\" )\n") - file( APPEND ${CMAKE_BINARY_DIR}/CGALConfig.cmake " set( ${vlib}_DEFINITIONS \"${${vlib}_DEFINITIONS}\" )\n") - - - #the next 'if' is needed to avoid ${vlib} config variables to be overidden in case of a local configuration change - file( APPEND ${CMAKE_BINARY_DIR}/config/CGALConfig.cmake " set( ${vlib}_FOUND \"${${vlib}_FOUND}\")\n") - file( APPEND ${CMAKE_BINARY_DIR}/config/CGALConfig.cmake " set( ${vlib}_USE_FILE \"${${vlib}_USE_FILE}\" )\n") - file( APPEND ${CMAKE_BINARY_DIR}/config/CGALConfig.cmake " set( ${vlib}_INCLUDE_DIR \"${${vlib}_INCLUDE_DIR}\" )\n") - file( APPEND ${CMAKE_BINARY_DIR}/config/CGALConfig.cmake " set( ${vlib}_LIBRARIES \"${${vlib}_LIBRARIES}\" )\n") - file( APPEND ${CMAKE_BINARY_DIR}/config/CGALConfig.cmake " set( ${vlib}_DEFINITIONS \"${${vlib}_DEFINITIONS}\" )\n") - endif() - - endforeach() - endmacro() macro ( fetch_env_var VAR ) diff --git a/Installation/cmake/modules/CGAL_SetupDependencies.cmake b/Installation/cmake/modules/CGAL_SetupDependencies.cmake index 0f51c80147f..6051c7d3ce4 100644 --- a/Installation/cmake/modules/CGAL_SetupDependencies.cmake +++ b/Installation/cmake/modules/CGAL_SetupDependencies.cmake @@ -1,65 +1,5 @@ include(${CMAKE_CURRENT_LIST_DIR}/CGAL_Macros.cmake) -message ( STATUS "External libraries supported: ${CGAL_SUPPORTING_3RD_PARTY_LIBRARIES}") - -foreach (lib ${CGAL_SUPPORTING_3RD_PARTY_LIBRARIES}) - - # Part 1: Try to find lib - - set (vlib "${CGAL_EXT_LIB_${lib}_PREFIX}") - - # Check whether lib is essential or WITH_ is given: - - list(FIND CGAL_ESSENTIAL_3RD_PARTY_LIBRARIES "${lib}" POSITION) - - if ("${POSITION}" STRGREATER "-1" OR WITH_${lib}) - - # In both cases CGAL_USE_ will be finally set. - - #message (STATUS "With ${lib} given or essential: pos=${POSITION}") - - message (STATUS "Configuring library: ${lib} ...") - - find_package( ${lib} ) - - if ( ${vlib}_FOUND ) - message( STATUS "${lib} has been configured") - use_lib( ${vlib} ${${vlib}_USE_FILE}) - - # TODO EBEB what about Qt5, zlib etc? - set ( CGAL_USE_${vlib} TRUE ) - - - # Part 2: Add some lib-specific definitions or obtain version - - if (${lib} STREQUAL "GMP") - get_dependency_version(GMP) - endif() - - if (${lib} STREQUAL "MPFR") - set( MPFR_DEPENDENCY_INCLUDE_DIR ${GMP_INCLUDE_DIR} ) - set( MPFR_DEPENDENCY_LIBRARIES ${GMP_LIBRARIES} ) - get_dependency_version(MPFR) - endif() - - if (${lib} STREQUAL "LEDA") - # special case for LEDA - add a flag - message( STATUS "LEDA cxx flags: ${LEDA_CXX_FLAGS}" ) - uniquely_add_flags( CMAKE_CXX_FLAGS ${LEDA_CXX_FLAGS} ) - endif() - - else() - - if ("${POSITION}" STRGREATER "-1") # if lib is essential - message( FATAL_ERROR "CGAL requires ${lib} to be found" ) - endif() - - endif() - - endif() - -endforeach() - if( (GMP_FOUND AND NOT MPFR_FOUND) OR (NOT GMP_FOUND AND MPFR_FOUND) ) message( FATAL_ERROR "CGAL needs for its full functionality both GMP and MPFR.") endif() diff --git a/Installation/cmake/modules/CGAL_add_test.cmake b/Installation/cmake/modules/CGAL_add_test.cmake index 7a6ec1197bb..7a818e2e5cb 100644 --- a/Installation/cmake/modules/CGAL_add_test.cmake +++ b/Installation/cmake/modules/CGAL_add_test.cmake @@ -9,7 +9,6 @@ if(BUILD_TESTING) enable_testing() endif() -cmake_policy(SET CMP0064 NEW) include(CMakeParseArguments) diff --git a/Installation/demo/CMakeLists.txt b/Installation/demo/CMakeLists.txt index 32f0d522916..0c734c7c57b 100644 --- a/Installation/demo/CMakeLists.txt +++ b/Installation/demo/CMakeLists.txt @@ -1,4 +1,4 @@ -cmake_minimum_required(VERSION 3.1...3.15) +cmake_minimum_required(VERSION 3.12...3.18) project(CGAL_DEMOS) diff --git a/Installation/examples/CMakeLists.txt b/Installation/examples/CMakeLists.txt index ae8af2e1062..e74b6980723 100644 --- a/Installation/examples/CMakeLists.txt +++ b/Installation/examples/CMakeLists.txt @@ -1,4 +1,4 @@ -cmake_minimum_required(VERSION 3.1...3.15) +cmake_minimum_required(VERSION 3.12...3.18) project(CGAL_EXAMPLES) diff --git a/Installation/test/CMakeLists.txt b/Installation/test/CMakeLists.txt index 3559145e988..5fca44325b5 100644 --- a/Installation/test/CMakeLists.txt +++ b/Installation/test/CMakeLists.txt @@ -1,4 +1,4 @@ -cmake_minimum_required(VERSION 3.1...3.15) +cmake_minimum_required(VERSION 3.12...3.18) project(CGAL_TESTS) diff --git a/Installation/test/Installation/CMakeLists.txt b/Installation/test/Installation/CMakeLists.txt index 01706321155..d9cb97d3c76 100644 --- a/Installation/test/Installation/CMakeLists.txt +++ b/Installation/test/Installation/CMakeLists.txt @@ -2,7 +2,7 @@ # This is the CMake script for compiling a CGAL application. -cmake_minimum_required(VERSION 3.11...3.15) +cmake_minimum_required(VERSION 3.12...3.18) project( Installation_Tests ) From 076974547d0b2b86cef4a4a5109989d4fc6a9308 Mon Sep 17 00:00:00 2001 From: Maxime Gimeno Date: Fri, 16 Oct 2020 10:42:42 +0200 Subject: [PATCH 25/32] Update cmake version in doc --- Documentation/doc/Documentation/Third_party.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Documentation/doc/Documentation/Third_party.txt b/Documentation/doc/Documentation/Third_party.txt index 6019c3057ae..503b17dbd5c 100644 --- a/Documentation/doc/Documentation/Third_party.txt +++ b/Documentation/doc/Documentation/Third_party.txt @@ -23,7 +23,7 @@ supporting C++14 or later. Older versions of the above listed compilers might work, but no guarantee is provided. \section seccmake CMake -Version 3.1 or later +Version 3.12 or later In order to configure and build the \cgal examples, demos, or libraries, you need CMake, a cross-platform "makefile generator". From 1b09f6e77efaa2a3f2c00e96a1cb0a3acf7958c7 Mon Sep 17 00:00:00 2001 From: Maxime Gimeno Date: Mon, 19 Oct 2020 15:10:20 +0200 Subject: [PATCH 26/32] Set CMP0015 OLD --- Polyhedron/demo/Polyhedron/CMakeLists.txt | 3 +++ 1 file changed, 3 insertions(+) diff --git a/Polyhedron/demo/Polyhedron/CMakeLists.txt b/Polyhedron/demo/Polyhedron/CMakeLists.txt index 1eea2af4625..42b8ff82043 100644 --- a/Polyhedron/demo/Polyhedron/CMakeLists.txt +++ b/Polyhedron/demo/Polyhedron/CMakeLists.txt @@ -17,6 +17,9 @@ if(POLICY CMP0074) cmake_policy(SET CMP0074 NEW) endif() +if(POLICY CMP0115) + cmake_policy(SET CMP0115 OLD) +endif() # Find includes in corresponding build directories set(CMAKE_INCLUDE_CURRENT_DIR ON) From 11af006adbfda38396427097e45bd43b0fda3a2b Mon Sep 17 00:00:00 2001 From: Maxime Gimeno Date: Wed, 21 Oct 2020 12:47:56 +0200 Subject: [PATCH 27/32] remove POLICIes form polyhedron_demo and use cmake 3.20 in cmake_minimum_required --- Polyhedron/demo/Polyhedron/CMakeLists.txt | 22 +--------------------- 1 file changed, 1 insertion(+), 21 deletions(-) diff --git a/Polyhedron/demo/Polyhedron/CMakeLists.txt b/Polyhedron/demo/Polyhedron/CMakeLists.txt index 42b8ff82043..2df21de925b 100644 --- a/Polyhedron/demo/Polyhedron/CMakeLists.txt +++ b/Polyhedron/demo/Polyhedron/CMakeLists.txt @@ -1,26 +1,6 @@ -cmake_minimum_required(VERSION 3.1...3.15) +cmake_minimum_required(VERSION 3.1...3.20) project( Polyhedron_Demo ) -if(NOT POLICY CMP0070 AND POLICY CMP0053) - # Only set CMP0053 to OLD with CMake<3.10, otherwise there is a warning. - cmake_policy(SET CMP0053 OLD) -endif() -if(POLICY CMP0071) - cmake_policy(SET CMP0071 NEW) -endif() -if(POLICY CMP0072) - # About the use of OpenGL - cmake_policy(SET CMP0072 NEW) -endif() - -if(POLICY CMP0074) - cmake_policy(SET CMP0074 NEW) -endif() - -if(POLICY CMP0115) - cmake_policy(SET CMP0115 OLD) -endif() - # Find includes in corresponding build directories set(CMAKE_INCLUDE_CURRENT_DIR ON) From 9e93d8d4221dbef923a3bcf722f8e1868969e6f1 Mon Sep 17 00:00:00 2001 From: Maxime Gimeno Date: Thu, 22 Oct 2020 09:18:28 +0200 Subject: [PATCH 28/32] Remove unused call to component Core from demo's plufgins `Surface_mesh` CMakeLists.txt. (It should fix a linker error in the LEDA testsuite.) --- Polyhedron/demo/Polyhedron/Plugins/Surface_mesh/CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Polyhedron/demo/Polyhedron/Plugins/Surface_mesh/CMakeLists.txt b/Polyhedron/demo/Polyhedron/Plugins/Surface_mesh/CMakeLists.txt index f849310c106..7abb4e3d715 100644 --- a/Polyhedron/demo/Polyhedron/Plugins/Surface_mesh/CMakeLists.txt +++ b/Polyhedron/demo/Polyhedron/Plugins/Surface_mesh/CMakeLists.txt @@ -5,7 +5,7 @@ if(POLICY CMP0074) endif() if(TARGET CGAL::Eigen_support) - find_package(CGAL COMPONENTS Core) + find_package(CGAL) include(${CGAL_USE_FILE}) From a7ed8c429cb94ae4a2996a25841ebcd52f305406 Mon Sep 17 00:00:00 2001 From: Maxime Gimeno Date: Wed, 13 Jan 2021 15:17:24 +0100 Subject: [PATCH 29/32] triling whitespace --- Installation/CMakeLists.txt | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Installation/CMakeLists.txt b/Installation/CMakeLists.txt index b3e79d1a3a6..9697b7a6f99 100644 --- a/Installation/CMakeLists.txt +++ b/Installation/CMakeLists.txt @@ -1121,7 +1121,7 @@ You must disable CGAL_ENABLE_CHECK_HEADERS.") "${CMAKE_SOURCE_DIR}/Documentation/doc" WORKING_DIRECTORY "${DOC_DIR}") execute_process( - COMMAND + COMMAND "${CMAKE_COMMAND}" --build . --target "doc" WORKING_DIRECTORY "${DOC_DIR}" ) From fab8c31662a9932b3cfe27854aed3622e8a93649 Mon Sep 17 00:00:00 2001 From: Maxime Gimeno Date: Tue, 19 Jan 2021 10:15:43 +0100 Subject: [PATCH 30/32] Keep from using CGLA_Core if CGAL_DISABLE_GMP is ON --- Installation/lib/cmake/CGAL/CGALConfig.cmake | 16 ++++++++-------- Installation/test/Installation/CMakeLists.txt | 1 + 2 files changed, 9 insertions(+), 8 deletions(-) diff --git a/Installation/lib/cmake/CGAL/CGALConfig.cmake b/Installation/lib/cmake/CGAL/CGALConfig.cmake index e09f2d2c38f..014def99418 100644 --- a/Installation/lib/cmake/CGAL/CGALConfig.cmake +++ b/Installation/lib/cmake/CGAL/CGALConfig.cmake @@ -79,18 +79,18 @@ include(${CGAL_MODULES_DIR}/CGAL_TweakFindBoost.cmake) set(CGAL_USE_FILE ${CGAL_MODULES_DIR}/UseCGAL.cmake) - -foreach(comp ${CGAL_FIND_COMPONENTS}) - if(CGAL_${comp}_FOUND) - list(APPEND CGAL_LIBRARIES CGAL_${comp}) - endif() -endforeach() - foreach(comp ${CGAL_FIND_COMPONENTS}) if(NOT comp MATCHES "Core|ImageIO|Qt5") message(FATAL_ERROR "The requested CGAL component ${comp} does not exist!") endif() - list(APPEND CGAL_LIBRARIES CGAL_${comp}) + + if(CGAL_${comp}_FOUND) + if(comp MATCHES "Core" AND CGAL_DISABLE_GMP) + message("CGAL_Core needs GMP and won't be used.") + else() + list(APPEND CGAL_LIBRARIES CGAL_${comp}) + endif() + endif() endforeach() set(CGALConfig_all_targets_are_defined TRUE) diff --git a/Installation/test/Installation/CMakeLists.txt b/Installation/test/Installation/CMakeLists.txt index 6a2fe54fdb5..de1278d6c82 100644 --- a/Installation/test/Installation/CMakeLists.txt +++ b/Installation/test/Installation/CMakeLists.txt @@ -29,6 +29,7 @@ macro(create_link_to_program COMPONENT) add_to_cached_list(CGAL_EXECUTABLE_TARGETS link_to_${COMPONENT}) endmacro() + find_package(CGAL REQUIRED COMPONENTS Core) include(${CGAL_USE_FILE}) From 3ccd79eec68ba485b7284bc946ee82c353a45e54 Mon Sep 17 00:00:00 2001 From: Maxime Gimeno Date: Wed, 20 Jan 2021 15:25:55 +0100 Subject: [PATCH 31/32] Don't check if CGAL_comp is found, it will be done later. --- Installation/lib/cmake/CGAL/CGALConfig.cmake | 11 ++++------- 1 file changed, 4 insertions(+), 7 deletions(-) diff --git a/Installation/lib/cmake/CGAL/CGALConfig.cmake b/Installation/lib/cmake/CGAL/CGALConfig.cmake index 014def99418..bb8bdcc9c93 100644 --- a/Installation/lib/cmake/CGAL/CGALConfig.cmake +++ b/Installation/lib/cmake/CGAL/CGALConfig.cmake @@ -83,13 +83,10 @@ foreach(comp ${CGAL_FIND_COMPONENTS}) if(NOT comp MATCHES "Core|ImageIO|Qt5") message(FATAL_ERROR "The requested CGAL component ${comp} does not exist!") endif() - - if(CGAL_${comp}_FOUND) - if(comp MATCHES "Core" AND CGAL_DISABLE_GMP) - message("CGAL_Core needs GMP and won't be used.") - else() - list(APPEND CGAL_LIBRARIES CGAL_${comp}) - endif() + if(comp MATCHES "Core" AND CGAL_DISABLE_GMP) + message("CGAL_Core needs GMP and won't be used.") + else() + list(APPEND CGAL_LIBRARIES CGAL_${comp}) endif() endforeach() From 426b2163401ef36f66514b8d96b28809fd63152c Mon Sep 17 00:00:00 2001 From: Maxime Gimeno Date: Wed, 20 Jan 2021 15:33:54 +0100 Subject: [PATCH 32/32] disable the parsing of CGAL libs, as there is none anymore. --- .../test/collect_cgal_testresults_from_cmake | 124 ++++-------------- 1 file changed, 27 insertions(+), 97 deletions(-) diff --git a/Testsuite/test/collect_cgal_testresults_from_cmake b/Testsuite/test/collect_cgal_testresults_from_cmake index 1aa8768de40..2587aca5edb 100755 --- a/Testsuite/test/collect_cgal_testresults_from_cmake +++ b/Testsuite/test/collect_cgal_testresults_from_cmake @@ -9,8 +9,8 @@ if [ -z "${CGAL_TEST_PLATFORM}" ]; then - - CGAL_TEST_PLATFORM=`dirname $PWD` + + CGAL_TEST_PLATFORM=`dirname $PWD` echo "CGAL_TEST_PLATFORM not in the environment, setting it to ${CGAL_TEST_PLATFORM}" fi @@ -24,7 +24,6 @@ GENERAL_BUILD_LOGFILE='' PLATFORM_BUILD_LOGFILE='' TEST_REPORT='' RESULT_FILE='' -shared_or_static='' #print_testresult # print result on stdout @@ -53,12 +52,12 @@ print_testresult() then RESULT="w" else - if grep -E -q 'NOTICE: .*(need|require|incompatible).*and.*will not be' CompilerOutput_$1 - then - RESULT="r" + if grep -E -q 'NOTICE: .*(need|require|incompatible).*and.*will not be' CompilerOutput_$1 + then + RESULT="r" else RESULT="y" - fi + fi fi fi TIMING=`awk '/^ # Running time: / {print $4}' < ErrorOutput_$1` @@ -67,81 +66,19 @@ print_testresult() echo "$2 $RESULT" } - -parse_shared_or_static() -{ - if [ -f "${PLATFORM_BUILD_LOGFILE}" ] ; then - - if grep "Building shared libraries" ${PLATFORM_BUILD_LOGFILE} >/dev/null 2>&1; then - shared_or_static='shared' - else - shared_or_static='static' - fi - - else - shared_or_static='shared' - fi -} - parse_flags_and_third_party_choices() { - grep -e "^-- USING " ${PLATFORM_BUILD_LOGFILE} >> $RESULT_FILE + grep -e "^-- USING " ${PLATFORM_BUILD_LOGFILE} >> $RESULT_FILE echo "------------" >> $RESULT_FILE } -parse_lib_building_results() -{ - libname=$1 - target=$2 - - if [ ! -e "${libname}_${shared_or_static}" ]; then - mkdir "${libname}_${shared_or_static}" - fi - - y_or_no='n' - - configured='' - - if [ -f "${PLATFORM_BUILD_LOGFILE}" ]; then - - if grep -q "Built target ${target}" ${PLATFORM_BUILD_LOGFILE} ; then - y_or_no='y' - fi - - marker_beg=`grep -e "${target}.dir/depend$" ${PLATFORM_BUILD_LOGFILE} | head -1` - - if [ -n "${marker_beg}" ]; then - - configured='y' - - if [ ! "$target" = "CGAL" ]; then - cat ${PLATFORM_BUILD_LOGFILE} | sed -n "\|${marker_beg}|,\|depend$| p" >> ${libname}_${shared_or_static}/$TEST_REPORT - fi - - # Test if there is a warning in the build log. - if [ "$y_or_no" = "y" ]; then - # See the comment line 38. - if grep -i -E -q '(^|[^a-zA-Z_,:-])warning' ${libname}_${shared_or_static}/$TEST_REPORT ; then - y_or_no='w' - fi - fi - fi - fi - - if [ -z "${configured}" ] ; then - y_or_no='r' - echo "Not configured!" >> ${libname}_${shared_or_static}/$TEST_REPORT - fi - - echo ${libname}_${shared_or_static} $y_or_no >> $RESULT_FILE -} output_main_logs() { [ -e Installation ] || mkdir "Installation" - + INSTALLATION_TEST_REPORT="Installation/$TEST_REPORT" - + echo "---------------------------------------------------------------" >> "$INSTALLATION_TEST_REPORT" echo " General Build Log " >> "$INSTALLATION_TEST_REPORT" echo "---------------------------------------------------------------" >> "$INSTALLATION_TEST_REPORT" @@ -149,9 +86,9 @@ output_main_logs() if [ -f "${GENERAL_BUILD_LOGFILE}" ] ; then cat "${GENERAL_BUILD_LOGFILE}" >> "$INSTALLATION_TEST_REPORT" else - echo "Not found!" >> "$INSTALLATION_TEST_REPORT" + echo "Not found!" >> "$INSTALLATION_TEST_REPORT" fi - + echo "---------------------------------------------------------------" >> "$INSTALLATION_TEST_REPORT" echo " Platform-specific Build Log " >> "$INSTALLATION_TEST_REPORT" echo "---------------------------------------------------------------" >> "$INSTALLATION_TEST_REPORT" @@ -159,9 +96,9 @@ output_main_logs() if [ -f "${PLATFORM_BUILD_LOGFILE}" ] ; then cat "${PLATFORM_BUILD_LOGFILE}" >> "$INSTALLATION_TEST_REPORT" else - echo "Not found!" >> "$INSTALLATION_TEST_REPORT" + echo "Not found!" >> "$INSTALLATION_TEST_REPORT" fi - + if [ -f "$HOME/.autocgal_with_cmake_rc" ] ; then echo "" >> "$INSTALLATION_TEST_REPORT" echo "---------------------------------------------------------------" >> "$INSTALLATION_TEST_REPORT" @@ -179,7 +116,7 @@ output_main_logs() cat "$HOME/.autocgalrc" >> "$INSTALLATION_TEST_REPORT" fi fi - + if [ -f "../setup" ] ; then echo "" >> "$INSTALLATION_TEST_REPORT" echo "---------------------------------------------------------------" >> "$INSTALLATION_TEST_REPORT" @@ -188,8 +125,8 @@ output_main_logs() echo "" >> "$INSTALLATION_TEST_REPORT" cat "../setup" >> "$INSTALLATION_TEST_REPORT" fi - - + + echo "" >> "$INSTALLATION_TEST_REPORT" echo "---------------------------------------------------------------" >> "$INSTALLATION_TEST_REPORT" echo " CMakeCache.txt" >> "$INSTALLATION_TEST_REPORT" @@ -198,9 +135,9 @@ output_main_logs() if [ -f "../CMakeCache.txt" ] ; then cat "../CMakeCache.txt" >> "$INSTALLATION_TEST_REPORT" else - echo "Not found!" >> "$INSTALLATION_TEST_REPORT" + echo "Not found!" >> "$INSTALLATION_TEST_REPORT" fi - + echo "" >> "$INSTALLATION_TEST_REPORT" echo "---------------------------------------------------------------" >> "$INSTALLATION_TEST_REPORT" echo " include/CGAL/compiler_config.h" >> "$INSTALLATION_TEST_REPORT" @@ -209,9 +146,9 @@ output_main_logs() if [ -f "../include/CGAL/compiler_config.h" ] ; then cat "../include/CGAL/compiler_config.h" >> "$INSTALLATION_TEST_REPORT" else - echo "Not found!" >> "$INSTALLATION_TEST_REPORT" + echo "Not found!" >> "$INSTALLATION_TEST_REPORT" fi - + echo "" >> "$INSTALLATION_TEST_REPORT" echo "---------------------------------------------------------------" >> "$INSTALLATION_TEST_REPORT" echo " CGALConfig.cmake" >> "$INSTALLATION_TEST_REPORT" @@ -220,9 +157,9 @@ output_main_logs() if [ -f "../CGALConfig.cmake" ] ; then cat "../CGALConfig.cmake" >> "$INSTALLATION_TEST_REPORT" else - echo "Not found!" >> "$INSTALLATION_TEST_REPORT" + echo "Not found!" >> "$INSTALLATION_TEST_REPORT" fi - + echo "" >> "$INSTALLATION_TEST_REPORT" echo "---------------------------------------------------------------" >> "$INSTALLATION_TEST_REPORT" echo " CMakeError.log" >> "$INSTALLATION_TEST_REPORT" @@ -231,9 +168,9 @@ output_main_logs() if [ -f "../CMakeFiles/CMakeError.log" ] ; then cat "../CMakeFiles/CMakeError.log" >> "$INSTALLATION_TEST_REPORT" else - echo "Not found!" >> "$INSTALLATION_TEST_REPORT" + echo "Not found!" >> "$INSTALLATION_TEST_REPORT" fi - + echo "" >> "$INSTALLATION_TEST_REPORT" echo "---------------------------------------------------------------" >> "$INSTALLATION_TEST_REPORT" echo " CMakeOutput.log" >> "$INSTALLATION_TEST_REPORT" @@ -242,9 +179,9 @@ output_main_logs() if [ -f "../CMakeFiles/CMakeOutput.log" ] ; then cat "../CMakeFiles/CMakeOutput.log" >> "$INSTALLATION_TEST_REPORT" else - echo "Not found!" >> "$INSTALLATION_TEST_REPORT" + echo "Not found!" >> "$INSTALLATION_TEST_REPORT" fi - + } echo "---------------------------------------------------------------" @@ -271,17 +208,10 @@ echo "CGAL_TEST_PLATFORM ${CGAL_TEST_PLATFORM}" >> "$RESULT_FILE" echo "General installation log file: ${GENERAL_BUILD_LOGFILE}" >> "$RESULT_FILE" echo "Host-specific installation log file: ${PLATFORM_BUILD_LOGFILE}" >> "$RESULT_FILE" -parse_shared_or_static - -output_main_logs +output_main_logs parse_flags_and_third_party_choices -parse_lib_building_results "libCGAL" "CGAL" -parse_lib_building_results "libCGALCore" "CGAL_Core" -parse_lib_building_results "libCGALimageIO" "CGAL_ImageIO" -parse_lib_building_results "libCGALQt5" "CGAL_Qt5" - for DIR in $TEST_DIRECTORIES ; do if [ -d "$DIR" ] ; then echo " $DIR ..."