Commit Graph

640 Commits

Author SHA1 Message Date
Andreas Fabri c7ab4718fd remove unused variable 2023-10-25 16:10:14 +01:00
Andreas Fabri c985988789 Reindent 2023-10-19 11:35:37 +01:00
Andreas Fabri b025214974 Remove dead code 2023-10-19 11:33:34 +01:00
Sébastien Loriot b66afab814 Merge remote-tracking branch 'sloriot/CGAL-using_c++17_stl' into HEAD 2023-07-05 11:29:35 +02:00
Sébastien Loriot 68813c5c63 Merge pull request #7403 from sloriot/CGAL-replace_boost_by_std
Replace boost by std
2023-07-05 11:08:36 +02:00
Sébastien Loriot 846dd80253 move it to a more suitable place 2023-06-20 13:57:56 +02:00
Sébastien Loriot 936ff74dde add missing include 2023-06-20 13:42:58 +02:00
Sébastien Loriot f936680600 Merge remote-tracking branch 'cgal/master' into HEAD 2023-06-15 18:48:39 +02:00
Sébastien Loriot 9cdfe70abb Merge remote-tracking branch 'sloriot/CGAL-toward_6.0' 2023-06-15 11:34:09 +02:00
Sébastien Loriot 9a0bdb5d96 boost::variant ---> std::variant 2023-06-15 10:57:10 +02:00
Sébastien Loriot 604dcdc435 boost::optional => std::optional 2023-06-15 10:57:09 +02:00
Sebastien Loriot 11b92e94f8
Add an alternative of Mpzf using boost cpp_int (#7191)
## TODO:
- [x] branch size
- [x] boost backend should not be the default in 5.6
2023-05-22 09:23:35 +02:00
Sébastien Loriot c1294a0eaa boost::integral_constant ---> std::integral_constant 2023-04-29 09:42:15 +02:00
Sébastien Loriot 8b3acae1c7 boost::remove_reference -> std::remove_reference 2023-04-23 22:36:59 +02:00
Sébastien Loriot fa301554ce boost::remove_v -> std::remove_cv_t 2023-04-23 19:13:56 +02:00
Laurent Rineau 11ff3c57bd
Merge branch 'master' into CGAL-boost_mp_exact_ring_selector 2023-04-14 09:44:23 +02:00
Andreas Fabri b301aead85 Add a macro to not use interval arithmetic 2023-04-13 16:15:18 +01:00
Laurent Rineau 1dce90ee79 Merge remote-tracking branch 'cgal/master' into CGAL-allow_Epick_with_float-GF 2023-04-07 10:59:51 +02:00
Laurent Rineau 618a71cd0c Merge pull request #7234 from GilesBathgate/Lazy-remove_boost_pp_usage-GilesBathgate
Lazy_kernel: Replace BOOST_PP repeat macros with variadic templates
2023-02-24 16:14:46 +01:00
Giles Bathgate 5ed01d1498 Remove unneeded undef 2023-01-31 19:39:25 +00:00
Sébastien Loriot 9e137bca24 Merge 'cgal/master' 2023-01-31 12:26:55 +01:00
Giles Bathgate b3c49d0ed2 Replace BOOST_PP repeat macros with variadic templates 2023-01-30 22:12:14 +00:00
Mael 153c603209
Merge branch 'master' into CGAL-Clean_CMakeLists.txt-GF 2023-01-27 22:09:02 +01:00
Mael 0ff7882997
Merge branch 'master' into feature/bug_documentation_spell_20221113 2022-12-06 22:21:06 +01:00
Mael 6538b22e06
Merge branch 'master' into CGAL-Clean_CMakeLists.txt-GF 2022-12-05 16:03:41 +01:00
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
albert-github 45478184de spelling corrections
Some spelling corrections (Directories starting with `E`-` L`),
some backward work
some forward work
2022-11-15 13:39:40 +01:00
Laurent Rineau 9a7757c86e decltype(auto) -> auto to avoid references to temp
Visual Studio diagnoses:
```
C4172 : returning address of local variable or temporary
```

(reverts 0e898d9094)
2022-11-09 09:47:04 +01:00
Laurent Rineau 0e898d9094 decltype(auto) for Bbox_[23]
In the cartesian converter, the conversion of a bbox (2D or 3D)
returns a reference.
2022-11-08 12:00:13 +01:00
Laurent Rineau 9a881390a6 Rename Is_a_trivial_construction (remove `_a`) 2022-11-07 16:23:33 +01:00
Laurent Rineau 1c5454dcbe Add Converting_construction to Simple_precision_epick
The difficulty is to detect/define which constructions are "trivial"
and must not be wrapped into `Converting_construction`. Otherwise the
use of `Cartesian_converter`, that uses trivial constructions itself,
can lead to loops and infinite call stacks.
2022-10-28 12:07:58 +02: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
Mael Rouxel-Labbé 4fc486b195 Purge CMakeLists.txts from obsolete code / noise 2022-09-06 16:19:11 +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