Commit Graph

794 Commits

Author SHA1 Message Date
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
Sébastien Loriot bbc4d08ee0 Merge remote-tracking branch 'cgal/master' into HEAD 2023-06-15 10:47:07 +02:00
Sébastien Loriot c8a88b9014 remove CGAL_static_assertion* 2023-06-15 10:42:10 +02:00
Sébastien Loriot 003bf47781 move alpha computation into a functor 2023-06-08 14:05: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 39e6369d39 add missing FT and typename 2023-05-12 10:32:54 +02:00
Andreas Fabri 9924814e77 Fix construction of Iso_rectangle/cuboid from Bbox 2023-05-12 08:07:08 +01: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
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 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
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
Laurent Rineau 5f8930db8c Merge branch '5.5.x-branch'
# Conflicts:
#	Convex_hull_2/test/Convex_hull_2/ch_test_CH.cpp
#	Convex_hull_2/test/Convex_hull_2/ch_test_SC.cpp
#	Convex_hull_2/test/Convex_hull_2/ch_test_SH.cpp
#	Convex_hull_2/test/Convex_hull_2/ch_test_SS.cpp
#	Straight_skeleton_2/include/CGAL/constructions/Straight_skeleton_cons_ftC2.h
#	Straight_skeleton_2/include/CGAL/predicates/Straight_skeleton_pred_ftC2.h
2023-01-27 21:16:14 +01:00
Andreas Fabri 404cf8f0c2 Projection_traits_xy_3: Enable structural filtering 2023-01-09 11:13:29 +00:00
Mael 0ff7882997
Merge branch 'master' into feature/bug_documentation_spell_20221113 2022-12-06 22:21:06 +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
Laurent Rineau bf114a4509 Remove CGAL_EPICK_SINGLE_PRECISION 2022-11-22 16:13:35 +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 a6050f4bb3 Fix the comment 2022-11-08 15:57:53 +01:00
Laurent Rineau 92d8d1c805 Merge remote-tracking branch 'cgal/master' into CGAL-allow_Epick_with_float-GF
# Conflicts:
#	Mesh_3/test/Mesh_3/test_meshing_3D_image.cpp
2022-11-08 12:11:06 +01:00
Laurent Rineau 3933d0bec8 Fix a 16 years old todo
Sylvain Pion, wrote in August 2006:
> FIXME : Use Qrt<> here

At that time `Qrt` stood for `Qualified_result_of` (sic, maybe it was
named "qualified result type" at a time).

Now that we can use C++14, we have `decltype(auto)` instead.
2022-11-08 12:07:14 +01:00
Laurent Rineau 3600173ed4 Missing includes, for users of Epick
(even if those headers are probably already included elsewhere)
2022-11-08 12:01:44 +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 cb0ad7f509 Use template aliases to factorize code 2022-11-08 11:04:38 +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
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
Laurent Rineau 026049cf8e Switch to Epick-with-float using a new macro
If  `CGAL_EPICK_SINGLE_PRECISION` is defined, then the number type
of `CGAL::Epick` is `float` instead of `double`.
2022-10-10 16:15:01 +02:00
Andreas Fabri d3fca65ae5 CGAL: No longer per package assertions 2022-09-23 12:49:40 +01: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 861588abe1 Merge 'sloriot/CGAL-std_type_traits' into master 2022-08-03 20:19:51 +02:00
Sébastien Loriot 1e857506c1 Merge remote-tracking branch 'cgal/5.5.x-branch' 2022-07-12 18:22:02 +02:00
Sébastien Loriot 12795ba29c Merge remote-tracking branch 'cgal/5.4.x-branch' into HEAD 2022-07-12 18:21:16 +02:00
Sébastien Loriot 45b5fd43f8 fix more warnings 2022-07-12 18:18:34 +02:00
Mael Rouxel-Labbé d07434708a Merge remote-tracking branch 'cgal/master' into CH2-Fix_bykat-GF 2022-07-11 09:39:45 +02:00
Mael Rouxel-Labbé 384cddadec Fix some result_types in projection traits 2022-07-05 10:11:44 +02:00
Mael Rouxel-Labbé 711d64674a Less_signed_... --> Compare_signed_... in CH3 adapters 2022-07-02 17:19:48 +02:00
Laurent Rineau 561cc66264 Backport the patch of pull request #6602 from lrineau/Triangulation_2-fix_cdt_2-GF
Try to fix CDT_2 with inexact construction of intersections
2022-06-29 12:30:35 +02:00
Laurent Rineau e1195a4229 Make public Exact_kernel and related types 2022-06-17 16:37:56 +02:00
Sébastien Loriot 5872413f37 remove boost is_same headers 2022-06-10 08:48:53 +02:00
Sébastien Loriot 3fa436459d BOOST_MPL_ASSERT -> static_assert 2022-06-10 08:46:01 +02:00
Sébastien Loriot ac8b6d4731 boost::is_same --> std::is_same 2022-06-10 08:18:20 +02:00
Sébastien Loriot 4f5f8341cc use std::enable_if_t 2022-06-10 07:37:53 +02:00
Sébastien Loriot 47d6b3a240 add barycenter functor 2022-06-05 19:06:23 +02:00
Laurent Rineau 258dd55c03 Make it work with the projection traits 2022-06-02 16:17:26 +02:00
Laurent Rineau 575f7a42fe Move exact_intersection_point back to CT_2 2022-06-01 20:31:22 +02:00
Laurent Rineau ffe675423f Merge branch 'master' into Triangulation_2-fix_cdt_2-GF 2022-06-01 15:15:18 +02:00
Laurent Rineau 53b4878a94 Use exact FT instead of exact Kernel 2022-05-31 18:09:00 +02:00
Laurent Rineau feaf6a4ca2 Add Kernel::Construct_exact_intersection_point_2 2022-05-31 16:40:34 +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
Laurent Rineau 288456950d Merge pull request #6488 from sloriot/ICC-workaround
Workaround issue with intel compiler
2022-04-27 16:32:06 +02:00
Laurent Rineau 1538fdbbbb Merge pull request #6488 from sloriot/ICC-workaround
Workaround issue with intel compiler
2022-04-27 16:30:53 +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
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
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 71bba3e226 Add Plane_3 constructor with Origin/Vector_3 2022-03-17 22:35:09 +01:00
Andreas Fabri d39c7742f1 Kernel_23: Call function objects from CGAL::Segment_3 2022-03-17 12:14:43 +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
Laurent Rineau df777080ff Merge pull request #6102 from afabri/Kernel_23-Non_zero_dimension_3-GF
Kernel_23: Add NonZeroDimension_3
2021-11-18 14:02:07 +01:00
Andreas Fabri a24229a6b2 Use homogeneous coordinates 2021-11-04 15:46:45 +01:00
Andreas Fabri d0ed65838e Fix interface_macros 2021-11-03 17:39:21 +01:00
Andreas Fabri 7cb53ab8ef Change to NonZeroCoordinateIndex 2021-11-03 17:30:26 +01: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 be2f8457d3 add Oriented_side_2 to Projection_traits_3 (for use in the demo) 2021-09-10 17:29:27 +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
Sébastien Loriot dacbd186d1 accomodate changes of internal -> Pkg/internal 2021-08-30 12:35:34 +02:00
Sébastien Loriot 4454c5b3ed Merge remote-tracking branch 'cgal/master' into T2-Document_projection_traits_3-maxGimeno 2021-08-30 12:25:51 +02:00
Sébastien Loriot 98e471849b moving files from internal to PKG/internal 2021-08-26 11:33:39 +02:00
Mael Rouxel-Labbé 71d88536b8 Fix doc 2021-08-26 11:08:28 +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
Maxime Gimeno f7df517f57 Merge remote-tracking branch 'cgal/master' into T2-Document_projection_traits_3-maxGimeno 2021-08-09 09:14:23 +02:00
Mael 5a30c321b8
Misc cleaning 2021-08-04 15:42:04 +02:00
Laurent Rineau 04b690b099 Merge pull request #5736 from danston/Kernel_23-add_centroid_2_and_determinant_2-danston
Projection Traits With Centroid 2 and Determinant 2
2021-07-27 16:25:09 +02:00