Commit Graph

1020 Commits

Author SHA1 Message Date
Laurent Rineau 7c92341be7 Introduce CGAL_Kernel_pred_RT_or_FT
This commit introduces a new kind of predicate in
`<CGAL/Kernel/interface_macros.h>`. In addition to
  - `CGAL_kernel_pred` for predicates,
  - `CGAL_Kernel_pred_RT` for predicates that can be implemented using a
    ring-type,

now there is also:
  - `CGAL_Kernel_pred_RT_or_FT` for predicates with multiple overloads of
    `operator()`, some needing a field type and other needing a ring type
    (without the division operator).

The C++ code can discriminate between the two cases with a special wrapper
for the return type: `CGAL::Needs_FT<result_type` instead of `result_type`
(defined in `<CGAL/tags.h>`.

In `<CGAL/Filtered_predicate.h>`, in addition to the usual class template
 `Filtered_predicate`, there is now also `Filtered_predicate_RT_FT` that
 takes three predicates as template parameters instead of two:
  - the exact predicate with an ring-type,
  - the exact predicate with a field-type,
  - the approximate predicate (with `Interval_nt` as number-type).

For the moment, only `Compare_distance_3` in
`<CGAL/Cartesian/function_objects.h>` is using the new
`Filtered_predicate_RT_FT`.

Before this commit, the file
`Kernel_23/test/Kernel_23/include/CGAL/_test_new_3.h` was testing
`Compare_distance_3` only with three points or for points. This commit adds:
  - a test with `Point_3, Point_3, Segment_3`, and
  - a test with `Line_3, Point_3, Point_3`, that actually needs a field type
    with its current implementation.

In the test `Kernel_23/test/Kernel_23/Filtered_cartesian.cpp`, the macro
`CGAL_NO_MPZF_DIVISION_OPERATOR` is defined, to remove the division operator
from `CGAL::Mpzf`. `CGAL::Mpzf` is a ring-type, even with its `operator/`
(because that `operator/` can only compute exact divisions), but with
`CGAL_NO_MPZF_DIVISION_OPERATOR` defined, that is now checked by the compiler.
2022-09-02 11:31:47 +02:00
Laurent Rineau 79e064c9cf Merge pull request #6692 from lrineau/CGAL-fix_cmake-GF
Cleanup CMake scripts
2022-07-24 18:08:38 +02:00
Laurent Rineau 755c9d5d42 Merge pull request #6646 from lrineau/Installation-optional_ASAN-GF
Use ASAN optionally
2022-06-29 09:52:15 +02:00
Laurent Rineau ad54e34af1 `cmale_language(DEFER ...)` is actually from CMake 3.19 2022-06-21 21:59:55 +02:00
Laurent Rineau 266b0ae15a Fix the dependencies of CTest tests on compilation_of__CGAL_Qt5_moc_and_resources 2022-06-21 21:51:52 +02:00
Laurent Rineau a31a7b10eb use `cmake_language(DEFER CALL..)` instead of `variable_watch` 2022-06-21 20:59:18 +02:00
Laurent Rineau 5a038abf34 Fix a CMake bad code
https://cmake.org/cmake/help/latest/command/if.html#command:if
> `if(ENV{some_var})` will always evaluate to false.
2022-06-20 09:55:12 +02:00
Laurent Rineau b99f1afac6 Disable TBB when ASAN is used 2022-06-15 16:05:10 +02:00
Laurent Rineau 35f29ecbe8 Use ASAN optionally 2022-06-07 12:00:30 +02:00
Laurent Rineau 35ec6c83ac Add CGAL include paths first 2022-05-19 14:38:35 +02:00
Laurent Rineau f237c761c2 Resore the requirement for CMake 3.11 2022-05-06 09:44:14 +02:00
Laurent Rineau 2288225448 Massive update of CMake policies to version 3.23 2022-05-06 09:34:35 +02:00
Laurent Rineau 55a3b3f1aa Active CMake policies up to CMake-3.23 2022-05-06 09:28:17 +02:00
Laurent Rineau 80c3baa196 /wd4503 is only for MSVC 2015 2022-05-05 16:09:51 +02:00
Laurent Rineau c00c481e06 Remove workarounds for CMake<3.11 2022-05-05 16:08:51 +02:00
Sébastien Loriot cd1cdccd62 change the scope of imported targets 2021-11-02 11:01:38 +01:00
Sébastien Loriot c59405342a add target for generated files 2021-11-01 12:38:48 +01:00
Laurent Rineau ca89949169 Merge pull request #5597 from lrineau/Mesh_3-weighted_images-GF
Mesh_3: Add weighted images
2021-10-29 17:01:33 +02:00
Jane Tournois 0498cace68 add and use CGAL_ITK_support.cmake 2021-10-29 12:27:04 +02:00
Laurent Rineau fb9333f0d0 Merge pull request #6028 from MaelRL/CGAL-Fix_typos-GF
Fix typos
2021-10-07 14:27:21 +02:00
Marius Kintel 3f369718be
Bugfix: ORIGINAL_CMAKE_MODULE_PATH was set to PARENT_SCOPE and later referenced in the current scope
In the `cgal_setup_module_path` function, the intent is to set a few variables then later export them.
The ORIGINAL_CMAKE_MODULE_PATH variable, however, was set directly in the parent scope. When later trying to export it, it reads from the current scope, where the variable is empty as it hasn't yet been set.
This fix makes correctly sets the variable in the local scope the first time, making the export work as expected.
2021-10-04 16:13:30 -04:00
Mael Rouxel-Labbé 521c72d57e Fix typos 2021-10-04 13:34:07 +02:00
Laurent Rineau 458fa7c280 Merge pull request #6007 from lrineau/Installation-fix_CGAL_pointmatcher_support.cmake-GF
Fix CGAL_pointmatcher_support.cmake
2021-09-29 11:46:36 +02:00
Laurent Rineau e5ab9202f5 Merge pull request #4229 from gdamiand/CGAL_data-gdamiand
Regroup data: scripts and function updates
2021-09-23 16:14:11 +02:00
Jane Tournois 4b3fee813f ITK is not needed in c3t3_item, and find with the required components only 2021-09-23 14:46:40 +02:00
Laurent Rineau 9e30160ad0 Fix CGAL_pointmatcher_support.cmake
Fix https://github.com/CGAL/cgal/issues/5346

The quotes around `${libpointmatcher_LIBRARIES}` are harmful.
2021-09-22 14:39:34 +02:00
Sébastien Loriot 78b0b2afbd add target def in generated files for install 2021-09-16 11:40:57 +02:00
Laurent Rineau 4bcbcfd9f2 Change the name of whitelisted header 2021-09-14 10:51:09 +02:00
Laurent Rineau 834c9d452b Whitelist CGAL/Mesh_3/generate_weights_from_labeled_image.h
`CGAL/Mesh_3/generate_weights_from_labeled_image.h` depends on ITK and
cannot be tested automatically.
2021-07-29 10:32:00 +02:00
Laurent Rineau 5759a800e3
Merge pull request #5705 from maxGimeno/CGAL-Clean_up_boost_versions-maxGimeno 2021-07-28 10:14:38 +02:00
Laurent Rineau 4fb90756da Merge pull request #5475 from sloriot/gsoc2019-PMPHDist-martinskrodzki
[Small Feature] Add bounded error Hausdorff distance
2021-07-27 16:28:04 +02:00
Laurent Rineau b1ccf3fee3 Merge pull request #5402 from mglisse/mt-glisse
Epeck thread safety
2021-07-27 15:55:25 +02:00
Laurent Rineau b9743fffa3 Merge pull request #5741 from danston/Solvers-add_osqp-danston
[Small Feature] OSQP Support in Solver Interface
2021-07-27 15:55:23 +02:00
Maxime Gimeno 97cac65a86 Fix __GNUC__ tests 2021-07-23 10:59:49 +02:00
Laurent Rineau af14540751 Use THREADS_PREFER_PTHREAD_FLAG 2021-07-22 17:05:43 +02:00
Sébastien Loriot f153a1ed3e Merge remote-tracking branch 'cgal/master' into HEAD 2021-07-22 13:15:22 +02:00
Laurent Rineau f9444fa85d CGAL depends on threads-support... for all compilers! 2021-07-21 11:03:36 +02:00
Laurent Rineau 5b0e0936d5 Set CMP0064 to fix #5857 2021-07-20 11:52:18 +02:00
Marc Glisse e7357ac003 Merge remote-tracking branch 'cgal/master' into mt-glisse
several PRs in Filtered_kernel conflicted with this :-(
2021-07-19 14:53:27 +02:00
Maxime Gimeno a3d1765ab4 Merge remote-tracking branch 'cgal/master' into CGAL-Clean_up_boost_versions-maxGimeno 2021-07-19 14:18:40 +02:00
Dmitry Anisimov aaf55dbaa0 Merge remote-tracking branch 'maxGimeno/PMP-compare_faces_from_meshes-maxGimeno' into gsoc2019-PMPHDist-martinskrodzki 2021-06-18 14:45:24 +02:00
Dmitry Anisimov 94b75803c0
Merge branch 'master' into Solvers-add_osqp-danston 2021-06-18 10:02:11 +02:00
Laurent Rineau 530616534a Fix and document the CMake CGAL_HAS_NO_THREADS option 2021-06-16 17:12:59 +02:00
Laurent Rineau f0ba5bc7c6 Merge pull request #5768 from alefy/CMake-Fix_OpenMesh-alefy
Set CMake imported OpenMesh library as INTERFACE
2021-06-16 15:04:48 +02:00
Laurent Rineau 94d1be2a79 Merge pull request #5768 from alefy/CMake-Fix_OpenMesh-alefy
Set CMake imported OpenMesh library as INTERFACE
2021-06-16 15:03:42 +02:00
Laurent Rineau aa6dbfe4f2 Make CGAL unconditionally depend on Threads::Threads 2021-06-15 12:56:25 +02:00
Adrien Lefieux b6a34b2bc5 Set CMake imported OpenMesh library as INTERFACE 2021-06-08 16:53:13 +02:00
Laurent Rineau b935f4daa6 Merge pull request #5732 from janetournois/Polyhedron_demo-fix_cmakelists_find_tbb-jtournois
FindTBB.cmake: only search TBB in Config mode if version >= 2019 update 5
2021-06-02 17:21:05 +02:00
Laurent Rineau 5cbadbede6 Merge pull request #5701 from maxGimeno/Ctest-Adapt_scripts_to_windows-maxGimeno
Testsuite: Adapt ctest scripts for use with cygwin
2021-06-02 17:20:49 +02:00
Laurent Rineau d99fa2517e Merge branch '5.1.x-branch' into 5.2.x-branch 2021-06-02 17:19:45 +02:00