Commit Graph

446 Commits

Author SHA1 Message Date
albert-github 36c8b7589d Spelling corrections
Last batch (for now) of spelling corrections in doxygen and normal comments
2024-05-31 19:05:34 +02:00
Laurent Rineau e9fb0190c3 Merge pull request #7373 from sloriot/Kernel-Perfect_forwarding
Add some perfect forwarding in the Kernel
2024-05-15 16:12:23 +02:00
Laurent Rineau 2bb3f9a0d3 make_array is not useful here 2024-04-19 17:24:24 +02:00
Laurent Rineau d48ca93f64 fix the logic 2024-03-29 11:34:43 +01:00
Laurent Rineau 50c9740cff fix the use of rvalue references 2024-03-27 23:18:33 +01:00
Laurent Rineau 1926ffd619 Merge remote-tracking branch 'cgal/master' into Kernel-Perfect_forwarding 2024-03-27 17:00:45 +01:00
Laurent Rineau d6c39e52bd fixes
Use:
  - perfect forwarding in objects of the kernel (`Point_2`, `Point_3`,
    `Vector_2`, `Vector_3`), and also in `PointC2`, and `PointC3`
    (that forward to the equivalent vector)
  - constructors with rvalue references in `VectorC2` and `VectorC3`.
2024-03-27 15:56:03 +01:00
Laurent Rineau 9c5653dedc fix the dimension 2 2024-03-27 10:49:53 +01:00
Laurent Rineau 098df72644 remove a useless constructor 2024-03-27 10:49:18 +01:00
Sven Oesau 86fe47c7f7 re-add Construct_projected_point_2 for 2d closest point query 2024-03-21 12:03:57 +01:00
Sébastien Loriot 57062536c3 another forgotten revert 2024-03-21 10:32:06 +01:00
Sven Oesau 3f9c5222e2 WIP: adding Construct_projected_point_2 for point onto segment and point onto triangle 2024-03-06 18:23:39 +01:00
Sven Oesau 911ac1a34d added Construct_projected_point_2(Segment_2, Point_2) 2024-03-05 15:54:27 +01:00
Andreas Fabri 6c1185d60b Add AABB_triangle_primitive_2 2024-03-05 10:03:52 +00:00
Andreas Fabri 84362a2b1e Add Construct_projected_point_2::operator()(Segment_2,Point_2) 2024-03-04 15:42:49 +00:00
Andreas Fabri 25ad1dc064 Kernel_23: Exploit Uncertain in collinear_3() 2023-10-23 14:45:26 +01:00
Sébastien Loriot fbd24d665d add version for Point_2/Vector_2 2023-10-09 12:30:37 +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
Laurent Rineau 74a0aa8c20 Cstr_point_[23]: simplify the different overloads
One perfect forwarding is enough.
2023-04-26 17:12:06 +02:00
Sébastien Loriot 72624bb0f1 fix narrowing 2023-04-26 09:55:14 +02:00
Sébastien Loriot c0ec1b96f5 fix after Laurent's comment 2023-04-07 11:28:20 +02: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
Andreas Fabri 6dec6c320d More forwarding 2023-04-06 17:49:24 +01:00
Sébastien Loriot 8d062a88ce example of perfect forwarding for Point_3 2023-04-06 17:25:17 +02:00
Laurent Rineau 78e2d5e4d2 Merge pull request #6478 from afabri/Nef_3-replace_deque_by_vector_and_reserve-GF
Nef_3: Add overloads with ORIGIN in predicates
2023-03-02 13:42:35 +01:00
Sébastien Loriot 9e137bca24 Merge 'cgal/master' 2023-01-31 12:26:55 +01:00
Mael 0ff7882997
Merge branch 'master' into feature/bug_documentation_spell_20221113 2022-12-06 22:21:06 +01:00
albert-github 7a62583efa spelling corrections
Some spelling corrections (Directories starting with `C`)
2022-11-14 19:14:33 +01:00
Laurent Rineau 2e90313b07 In cpp20 namespace: CGAL::cpp20::remove_cvref 2022-11-09 10:50:01 +01:00
Laurent Rineau b56a79eacf Compute_[abcd]_[23] return references
That simplifies the code, and is more correct.
2022-11-08 11:06:44 +01:00
Laurent Rineau 0f28931760 Add a newline 2022-11-07 16:43:48 +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é 2c23a6d5c5 Revert back to wrapping result_type to distinguish FT-necessary operator()s 2022-10-12 21:24:59 +02:00
Mael Rouxel-Labbé d0fe75e908 Add missing FT_necessary tags 2022-09-23 11:35:12 +02:00
Mael Rouxel-Labbé 24067447af Make some predicates division-free 2022-09-23 11:34:49 +02:00
Mael Rouxel-Labbé 214e072959 Switch from RT_sufficient to FT_necessary 2022-09-22 12:02:53 +02:00
Laurent Rineau f52298a8c5 WIP: try to always use Filtered_predicate_RT_FT 2022-09-08 17:30:14 +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 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
Sébastien Loriot 861588abe1 Merge 'sloriot/CGAL-std_type_traits' into master 2022-08-03 20:19:51 +02:00
Mael Rouxel-Labbé 93c47ec702 Use cmp_signed_dist_to_directionC2 for Compare_signed_distance_to_line_2 2022-06-30 16:23:09 +02:00
Sébastien Loriot 4f5f8341cc use std::enable_if_t 2022-06-10 07:37:53 +02:00
Laurent Rineau 288456950d Merge pull request #6488 from sloriot/ICC-workaround
Workaround issue with intel compiler
2022-04-27 16:32:06 +02:00
Sébastien Loriot cca0a1942f workaround issue with intel compiler
Cartesian_kernel/include/CGAL/Cartesian/Line_3.h(38): error: incomplete type is not allowed
      Point_3 first;
              ^
2022-04-12 16:14:39 +02:00
Andreas Fabri 9023aaa542 More code for ORIGIN 2022-04-07 10:39:01 +01:00
Mael Rouxel-Labbé 19162905eb Clean and factorize robust circumcenter filtered traits 2022-04-04 11:33:27 +02:00