Laurent Rineau
e8ec440859
Merge branch 'master' into Kernel-Compare_distance_3_RT_FT__always_Filtered_predicate_RT_FT-GF
...
# Conflicts:
# STL_Extension/doc/STL_Extension/CGAL/Concurrent_compact_container.h
2022-12-05 14:51:31 +01:00
Mael
da0b13699c
Merge branch 'master' into Kernel-Compare_distance_3_RT_FT__always_Filtered_predicate_RT_FT-GF
2022-12-02 23:19:29 +01:00
Mael Rouxel-Labbé
b5c21e1f5d
Http -> https + update some dead links
2022-11-23 18:54:37 +01:00
Mael Rouxel-Labbé
10eb694d38
Replace if constexpr with C++14 compatible code
2022-10-13 23:11:05 +02:00
Mael Rouxel-Labbé
2c23a6d5c5
Revert back to wrapping result_type to distinguish FT-necessary operator()s
2022-10-12 21:24:59 +02:00
Mael Rouxel-Labbé
873cc884b5
Get rid of _RT / _RT_FT kernel interface macros
2022-09-22 12:03:25 +02:00
Mael Rouxel-Labbé
214e072959
Switch from RT_sufficient to FT_necessary
2022-09-22 12:02:53 +02:00
Laurent Rineau
0141404f4d
Merge pull request #6809 from lrineau/Filtered_kernel-fix__do_intersect__Bbox_3__Triangle_3__static_filters-GF
...
Fix static filter of Do_intersect_3(Bbox_3,Triangle_3)
2022-09-13 12:33:03 +02:00
Laurent Rineau
f52298a8c5
WIP: try to always use Filtered_predicate_RT_FT
2022-09-08 17:30:14 +02:00
Laurent Rineau
8521c44c6f
Add a constexpr, because I can
2022-09-07 15:10:39 +02:00
Laurent Rineau
4b660d9ec9
Another proposal for Filtered_predicate_RT_FT
...
Instead of having the return type wrapped in a `Needs_FT` tag,
not the call operator overloads that can be called with `RT` are
"tagged" by adding a last argument of type `RT_sufficient` with a
default value.
2022-09-07 11:10:13 +02:00
Laurent Rineau
1e485113e8
Add an important comment
2022-09-07 10:30:01 +02:00
Laurent Rineau
81410701f7
Factorize the test "needs_ft" into a meta-function
2022-09-06 17:25:39 +02:00
Laurent Rineau
b114789abf
Fix spelling
2022-09-06 13:56:31 +02:00
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
c573ccb827
Fix static filter of Do_intersect_3(Bbox_3,Triangle_3)
...
See the publication at https://www.semanticscholar.org/paper/High-performance-triangle-versus-box-intersection-Christensen-Karlsson/bad661b58359ec01be2deb2f47ec8fd8eb293747
The test of intersection of `bbox` and `triangle.bbox` was missing.
2022-08-24 16:18:07 +02:00
Sébastien Loriot
9dd8235dc5
more workarounds for MSVC 2015
...
[skip ci]
2022-08-10 23:50:39 +02:00
Sébastien Loriot
861588abe1
Merge 'sloriot/CGAL-std_type_traits' into master
2022-08-03 20:19:51 +02:00
Sébastien Loriot
b96f6d5ce9
move is_iterator to type_traits
2022-06-10 09:43:59 +02:00
Sébastien Loriot
44250cb019
is_iterator_XXX<>::value --> is_iterator_XXX_v<>
2022-06-10 09:40:29 +02:00
Sébastien Loriot
ac8b6d4731
boost::is_same --> std::is_same
2022-06-10 08:18:20 +02:00
Laurent Rineau
575f7a42fe
Move exact_intersection_point back to CT_2
2022-06-01 20:31:22 +02:00
Laurent Rineau
feaf6a4ca2
Add Kernel::Construct_exact_intersection_point_2
2022-05-31 16:40:34 +02:00
Laurent Rineau
2288225448
Massive update of CMake policies to version 3.23
2022-05-06 09:34:35 +02:00
Laurent Rineau
97e99cbc22
Merge pull request #6487 from afabri/Filtered_kernel-fix_depth_bug-GF
...
Kernel_23: Fix depth() in Epeck
2022-04-27 16:32:08 +02:00
Marc Glisse
8644c82103
Don't check interval validity in Lazy_rep
2022-04-16 13:53:58 +02:00
Andreas Fabri
33a80835ae
Kernel_23: Fix depth() in Epeck
2022-04-11 15:32:57 +01:00
Andreas Fabri
c4b8c370cb
Deal with Null_vector similar to Origin
2022-03-11 10:26:00 +00:00
Andreas Fabri
53a6308edb
No longer a need for a partial specaialization for Bbox (thank you Mael)
2022-03-11 09:17:45 +00:00
Andreas Fabri
04fa75eb84
Use auto
2022-03-11 09:12:17 +00:00
Andreas Fabri
f01e24c75b
Add Orientation_3::operator()(Origin,Point_3,Point_3,Point_3)
2022-03-10 10:55:44 +00:00
Sébastien Loriot
ab48f63e30
update latest cmake version tested
2021-11-09 10:58:47 +01:00
Mael Rouxel-Labbé
381ff61796
More profiler macros
2021-10-08 21:52:32 +02:00
Mael Rouxel-Labbé
7f55e63559
Merge remote-tracking branch 'cgal/master' into Filtered_kernel-Do_intersect_3-GF
2021-10-08 20:09:11 +02:00
Mael Rouxel-Labbé
180f9c8e8d
Remove obsolete todo
2021-10-08 20:08:01 +02:00
Mael Rouxel-Labbé
37f2541942
Add profiler macros
2021-10-08 20:07:50 +02:00
Andreas Fabri
c8d2761f45
partial work after Mael's review
2021-09-29 15:14:54 +01:00
Sébastien Loriot
7de9564e1c
remove archive directories that are of not use (available in git history)
2021-09-23 18:55:54 +02:00
Laurent Rineau
c7437c6fb4
Merge pull request #5996 from sloriot/CGAL-internal_dir_fixes
...
Restore sub-directories accidently removed in 4009
2021-09-23 16:14:00 +02:00
Laurent Rineau
72c0a0deba
Merge pull request #5973 from sloriot/CGAL-restore_rounding_mode-master
...
master version of #5971 (Make sure the rounding mode is restored when doing exact computations)
2021-09-20 17:07:07 +02:00
Laurent Rineau
ac7a72eff8
Merge pull request #5986 from MaelRL/FK-Complete_static_filter_profiler_-GF-5.3
...
Add missing profiler macros in the static filter of Collinear_3 (5.3)
2021-09-20 17:07:00 +02:00
Sébastien Loriot
5945e48a3e
restore sub-directories accidently removed in 98e471849b
2021-09-17 08:14:06 +02:00
Mael Rouxel-Labbé
88e14adf89
Add missing profiler macros in Collinear_3's static filter
2021-09-14 09:20:28 +02:00
Mael Rouxel-Labbé
93c7b6de1f
Remove STL header include from CGAL-specific namespace
2021-09-14 09:19:50 +02:00
Mael Rouxel-Labbé
e829dc73d3
Merge branch 'Filtered_kernel-Do_intersect_3-GF-old' into Filtered_kernel-Do_intersect_3-GF
2021-09-10 17:46:08 +02:00
Sébastien Loriot
74c029cc68
Merge remote-tracking branch 'sloriot/CGAL-restore_rounding_mode-5.3'
2021-09-09 11:44:36 +02:00
Sébastien Loriot
2ba64da4e5
change protector scope + FPU assertion for operator not in 5.2
2021-09-09 11:34:08 +02:00
Sébastien Loriot
6bae0e3939
Merge remote-tracking branch 'sloriot/CGAL-restore_rounding_mode'
2021-09-09 11:09:16 +02:00
Sébastien Loriot
c8624ee0b3
check that the rounding mode when doing exact computation is to-nearest
2021-09-09 11:01:03 +02:00
Sébastien Loriot
106645ec2e
make sure the rounding mode is to nearest when doing exact computations
...
Thoses changes should have been done when the code was modified for
CGAL_CFG_FPU_ROUNDING_MODE_UNWINDING_VC_BUG
2021-09-09 09:55:16 +02:00