Laurent Rineau
e8be529c8d
Revert "add Orientation_3(Point_3, Point_3, Point_3, Vector_3)"
...
This reverts commit 0db0d5b92a2887e13bcd87437046b1b525ba900b.
2024-04-24 17:08:55 +02:00
Laurent Rineau
3095a5b412
add Orientation_3(Point_3, Point_3, Point_3, Vector_3)
2024-04-22 15:48:21 +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
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
Mael Rouxel-Labbé
19162905eb
Clean and factorize robust circumcenter filtered traits
2022-04-04 11:33:27 +02:00
Sébastien Loriot
b9a14a447f
Merge pull request #6426 from afabri/Kernel_23-Call_function_objects-GF
...
Kernel_23: Call function objects from CGAL::Segment_3
2022-03-29 17:47:06 +02:00
Andreas Fabri
d39c7742f1
Kernel_23: Call function objects from CGAL::Segment_3
2022-03-17 12:14:43 +01:00
Andreas Fabri
9a2d782345
No need for parameter
2022-03-15 12:42:56 +01:00
Andreas Fabri
7a7e1d2724
Update Cartesian_kernel/include/CGAL/Cartesian/function_objects.h
...
Co-authored-by: Mael <mael.rouxel.labbe@geometryfactory.com>
2022-03-11 11:13:42 +01:00
Andreas Fabri
6e4483a7d0
The same for Construct_orthogonal_vector_3
2022-03-10 14:18:48 +00:00
Andreas Fabri
f01e24c75b
Add Orientation_3::operator()(Origin,Point_3,Point_3,Point_3)
2022-03-10 10:55:44 +00:00
Laurent Rineau
1fb32e70b4
Merge pull request #5978 from janetournois/Mesh_2-add_predicate_for_lloyd-jtournois
...
Mesh 2 and Kernel - add predicate oriented_side_2(segment, triangle)
2021-10-27 17:20:28 +02:00
Mael Rouxel-Labbé
e424356ffa
Add Construct_projected_point_3(P3, P3) + correct parameter order
...
Not a kernel requirement
2021-09-28 15:34:51 +02:00
Jane Tournois
b3a0beb366
make implementation more consistent with the other functions in the same file
2021-09-21 10:58:45 +02:00
Jane Tournois
b9de94de93
add assertions to avoid degenerate inputs
2021-09-10 14:10:11 +02:00
Jane Tournois
8bb7e62c1c
apply review
2021-09-10 13:56:12 +02:00
Jane Tournois
7e3af5cbda
move the implementation of segment_hides_circumcenter() to the kernel
...
to use filtered predicates
2021-09-10 11:26:53 +02:00
Mael Rouxel-Labbé
8a92d51601
Merge branch 'Distance_3-Add_Tri_Tri-GF-old' into Distance_3-Add_Tri_Tri-GF
2021-09-02 17:26:44 +02:00
Sebastien Loriot
e5279db7fb
Merge pull request #5777 from MaelRL/AABB-Dont_call_global_do_intersect-GF
...
Misc fixes for Intersections_3 + related
2021-09-02 15:44:53 +02:00
Sebastien Loriot
92d90a4a11
Merge pull request #5667 from afabri/Kernel-compare_slopes-GF
...
Kernel: Add compare_slope with 4 points
2021-08-12 10:12:26 +02:00
Laurent Rineau
0f906ae606
Merge pull request #5545 from Dig-Doug/segment-midpoint
...
Segment_2/Segment_3 midpoint()
2021-07-07 14:37:38 +02:00
Mael Rouxel-Labbé
03ab79899b
Fix Construct_radical_plane_3 for Homogeneous_kernel
2021-06-29 09:24:53 +02:00
Mael Rouxel-Labbé
084a1efe2d
Merge remote-tracking branch 'cgal/master' into Distance_3-Add_Tri_Tri-GF
2021-06-23 22:30:03 +02:00
Andreas Fabri
6aeb4eea08
remove trailing whitespace
2021-05-03 16:42:30 +02:00
Andreas Fabri
4e1ebec30a
untabify
2021-05-01 17:04:52 +02:00
Andreas Fabri
20d1629e1b
Add compare_slope with 4 points
2021-04-30 17:39:57 +02:00
Laurent Rineau
c091c7f86e
Merge pull request #5532 from lrineau/Kernel_23-Do_interesect__without_division-GF
...
Remove operator/ from CGAL::Mpzf and implement Do_intersect_3 with RT only (without division)
2021-04-28 15:24:15 +02:00
Andreas Fabri
d3b26a60cb
The free function must call the functor
2021-04-22 17:35:27 +01:00
Mael Rouxel-Labbé
5deb509374
Move to Distance_3/X_Y.h rather than squared_distance_X_Y.h (as Intersections)
2021-04-12 14:42:44 +02:00
Andreas Fabri
ae945cd329
Avoid division for bounded side test
2021-03-18 14:18:11 +01:00
Mael Rouxel-Labbé
596f3e3013
Fix namespaces
2021-03-12 14:34:36 +01:00
Mael Rouxel-Labbé
2adddeacc1
Add missing includes
2021-03-12 13:08:16 +01:00
Mael Rouxel-Labbé
6b0459c686
Re-organize squared_distance_3_x.h into squared_distance_O1_O2.h
...
+ minor improvements (missing overloads, obvious improvements, etc.)
2021-03-12 12:51:59 +01:00
Mael Rouxel-Labbé
69d215a33e
Fix erroneous description in Kernel_23::Coplanar_orienation_3
2021-01-27 10:06:03 +01:00
Sébastien Loriot
4527b1f52c
extra run of the script to remove tabs and trailing whitespaces
2020-03-26 19:01:49 +01:00
Sébastien Loriot
a943082eff
Update branch from master after trailing whitespaces and tabs removal
2020-03-26 19:01:31 +01:00
Sébastien Loriot
0779373835
extra run of the script to remove tabs and trailing whitespaces
...
right after the merge of 4.14 release branch
+ manual fix on one line in:
* Arrangement_on_surface_2/include/CGAL/IO/Arr_text_formatter.h
* .travis/generate_travis.sh
2020-03-26 14:16:06 +01:00
Andreas Fabri
99eea7ac21
Add operator for line/point/point
2020-02-25 16:47:12 +00:00
Mael Rouxel-Labbé
4536ea4f53
Clean whitespace (no changes)
2020-01-16 12:33:01 +01:00
Andreas Fabri
3bd0adf61f
Adress Mael's review
2020-01-15 16:44:13 +01:00
Sébastien Loriot
52164b1fba
First pass on removing license notice in header for LGPL files
2019-10-19 15:40:30 +02:00
Sébastien Loriot
7356421d80
introduce Commercial license SPDX tag
2019-10-19 12:15:19 +02:00
Sébastien Loriot
9bd9c68b83
update LGPL[23]+ and GPL[23]+ SPDX tags
...
ack -l --no-svg "SPDX-License-Identifier: GPL-3.0\+" | xargs sed -i "s/SPDX-License-Identifier: GPL-3.0+/SPDX-License-Identifier: GPL-3.0-or-later/"
ack -l --no-svg "SPDX-License-Identifier: LGPL-3.0\+" | xargs sed -i "s/SPDX-License-Identifier: LGPL-3.0+/SPDX-License-Identifier: LGPL-3.0-or-later/"
ack -l --no-svg "SPDX-License-Identifier: GPL-2.0\+" | xargs sed -i "s/SPDX-License-Identifier: GPL-2.0+/SPDX-License-Identifier: GPL-2.0-or-later/"
ack -l --no-svg "SPDX-License-Identifier: LGPL-2.0\+" | xargs sed -i "s/SPDX-License-Identifier: LGPL-2.0+/SPDX-License-Identifier: LGPL-2.0-or-later/"
2019-10-18 21:57:54 +02:00