Commit Graph

317 Commits

Author SHA1 Message Date
Mael Rouxel-Labbé 9c517a47a2 Fix bad return types 2024-12-20 16:14:40 +01:00
Mael Rouxel-Labbé 4d4549cad6 Get rid of result_type in Kernels + fix some bad return types (wip) 2024-12-20 16:13:35 +01:00
Mael Rouxel-Labbé b02776b504 Remove wrong result_type (WIP: does not compile anymore) 2024-11-06 11:26:50 +01:00
Mael Rouxel-Labbé 181ccd2275 More instances of result_type --> dcltype(auto) 2024-11-06 11:25:47 +01:00
Mael Rouxel-Labbé ee451ed469 Fix dangling reference in Construct_center_3(Circle_3)
This fixes the issue, but it could still be broken e.g. by a kernel
that is based on a CGAL kernel, but redefines the Sphere_3 and
with Sphere_3-functor that would not return a const& (or in that
case the custom kernel needs to define the appropriate functors
too...)

But so much breaks into this configuration, that it's out of scope
for this fix.
2024-11-03 18:09:45 +01:00
Laurent Rineau 4be3a1e589 Merge pull request #7892 from sloriot/CGAL-fix_dh_angle_sign
fix dihedral angle computation
2023-12-11 13:50:38 +01:00
Laurent Rineau 46877d4134 fix two typos 2023-11-29 15:34:36 +01:00
Laurent Rineau df4eed9302 add tests for the dihedral angle 2023-11-29 15:27:57 +01:00
Sébastien Loriot 4bed66e82f fix description 2023-11-29 13:17:10 +01:00
Sébastien Loriot 5879bb72c6 add comments about the formula 2023-11-29 13:11:21 +01:00
Sébastien Loriot 0145bafbc5 update formula
will add comments in a upcoming commit
2023-11-29 12:22:46 +01:00
Sébastien Loriot 6b570f767e fix sign 2023-11-28 18:10:32 +01:00
Laurent Rineau ef998bded5 Merge pull request #7650 from sloriot/K23-compare_dihedral_angle_deg_tet
Be more permissive in Compare_dihedral_angle_3
2023-08-28 15:43:59 +02:00
Sebastien Loriot f879c68155
Test earlier
Co-authored-by: Andreas Fabri <andreas.fabri@geometryfactory.com>
2023-08-21 11:32:12 +02:00
Sébastien Loriot 73cf624d0f be more permessive
do not throw an error but return SMALLER
The collinearity check being already do in the predicate it
would be more expensive to do it also before calling the
predicate
2023-08-16 09:59:44 +02:00
Laurent Rineau d2bc415a15 Merge pull request #6950 from lrineau/CGAL-allow_Epick_with_float-GF
Simple_precision_epick: an Epick-like kernel with float as FT
2023-05-04 16:37:17 +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
Sébastien Loriot b1d2744821 Merge branch 'master' into PMP-decimation 2023-03-02 14:24:27 +01: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 fbe559adc9 Merge 'cgal/master' into PMP-decimation 2023-02-14 08:33:24 +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
Mael Rouxel-Labbé 4bb2d13272 Rephrase comment 2022-11-22 12:36:07 +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 b56a79eacf Compute_[abcd]_[23] return references
That simplifies the code, and is more correct.
2022-11-08 11:06:44 +01:00
Laurent Rineau c685810119 Add Construct_point_on_3(Line_3), for efficiency 2022-10-28 12:07:58 +02:00
Sébastien Loriot 0cac6a9da8 Merge remote-tracking branch 'sloriot/PMP-decimation' into PMP-decimation 2022-10-25 14:55:57 +02:00
Laurent Rineau 3745073df6 Fix a compilation error 2022-10-13 18:25:58 +02:00
Mael Rouxel-Labbé 73de5e49f4 Remove unnecessary include 2022-10-12 21:32:30 +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é 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 a267cee598 Avoid one intermediate call to the global (non-internal) function 2022-09-15 16:05:35 +02:00
Laurent Rineau f52298a8c5 WIP: try to always use Filtered_predicate_RT_FT 2022-09-08 17:30:14 +02:00
Laurent Rineau 03b1501508 Merge branch 'Kernel-Compare_distance_3_RT_FT-GF' into Kernel-Compare_distance_3_RT_FT__new_proposal-GF 2022-09-07 14:49:45 +02:00
Laurent Rineau dcca65b740 Spelling typo 2022-09-07 14:48:45 +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 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 4f5f8341cc use std::enable_if_t 2022-06-10 07:37:53 +02:00
Sébastien Loriot ebf9fb025a Merge remote-tracking branch 'cgal/5.4.x-branch' 2022-05-26 18:13:59 +02:00
Sébastien Loriot f29015ef1c please intel 2019 compiler 2022-05-25 00:22:24 +02:00
Sébastien Loriot 2b547ec58a Merge remote-tracking branch 'cgal/5.4.x-branch' 2022-05-13 17:26:04 +02:00
Andreas Fabri 46d1aea329 Convex_hull_3: Use K::Boolean and not bool 2022-05-09 15:30:26 +01:00
Andreas Fabri 9023aaa542 More code for ORIGIN 2022-04-07 10:39:01 +01:00
Sébastien Loriot 3a03201ff1 Merge pull request #6338 from MaelRL/PMP-Orient_PS_with_PS-GF
Add orient_triangle_soup_with_reference_triangle_soup()
2022-03-30 08:03:29 +02:00
Andreas Fabri 71bba3e226 Add Plane_3 constructor with Origin/Vector_3 2022-03-17 22:35:09 +01:00
Mael Rouxel-Labbé 8d95d22a9e Tiny indentation fix 2022-03-15 00:46:39 +01:00
Sébastien Loriot d16dfc381e add Compare_angle_3 functor in the Kernel 2022-01-27 19:43:21 +01:00
Sébastien Loriot d228e994cf predicate requires only RT 2022-01-27 18:29:39 +01:00