Commit Graph

827 Commits

Author SHA1 Message Date
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
Jane Tournois f786b86432 Merge remote-tracking branch 'cgal/master' into PMP-add_bbox_to_face_graph-jtournois 2024-03-06 16:04:58 +00:00
Jane Tournois 75160fc24b reduce number of operations in bbox scaling 2024-03-06 11:52:26 +01:00
Jane Tournois 6407f852e6 add scale(factor) to bbox_2 and uniformize implementation with bbox_3 2024-03-05 09:47:16 +01:00
Jane Tournois 272beb678a move scaling to CGAL::Bbox_3 2024-03-04 16:08:10 +01:00
Laurent Rineau 820465a556 Merge pull request #8023 from sloriot/PMP-soup_autoref_insert_in_edge
Autorefinement: insert points in edge to avoid filter failures
2024-02-28 10:57:25 +01:00
Andreas Fabri ab19b99105 Kernel_23: Add function squared_length() 2024-01-29 16:16:17 +00:00
Andreas Fabri a783412ba7 Use structural filtering for the fixed projection traits classes 2024-01-19 11:51:54 +01:00
Sebastien Loriot caecbe29c7
Replace boost::mpl (#7813)
- `boost::mpl::if_` --> `std::conditional`
- `boost::enable_if` -> `std::enable_if`
- `boost::mpl::and_` -> `&&`
- `boost::mpl::or_` -> `||`
- `boost::constant::bool_` -> `std::bool_constant`
- ...
2023-12-26 17:33:36 +01:00
Laurent Rineau 9a944e563c Merge remote-tracking branch 'cgal/master' into PMP-BF_autorefine
# Conflicts:
#	Installation/CHANGES.md
#	Polygon_mesh_processing/examples/Polygon_mesh_processing/CMakeLists.txt
2023-12-13 15:57:30 +01:00
Laurent Rineau e2a745f79f Merge pull request #7892 from sloriot/CGAL-fix_dh_angle_sign
fix dihedral angle computation
2023-12-11 13:56:02 +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
Sébastien Loriot d75e4f2f54 Merge remote-tracking branch 'cgal/master' into PMP-BF_autorefine 2023-12-08 13:26:06 +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
Sébastien Loriot fbd24d665d add version for Point_2/Vector_2 2023-10-09 12:30:37 +02:00
Sébastien Loriot 8700394122 boost::mpl::if_ -> std::conditional 2023-09-24 22:57:20 +02:00
Laurent Rineau eb70c2f310 Merge pull request #7650 from sloriot/K23-compare_dihedral_angle_deg_tet
Be more permissive in Compare_dihedral_angle_3
2023-08-28 15:45:12 +02: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
Sébastien Loriot 49d6821d9b accomodate update to c++17 STL 2023-08-28 13:51:57 +02:00
Sébastien Loriot a528464f31 Merge branch 'cgal/master' into PMP-BF_autorefine 2023-08-28 13:44:44 +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
Sébastien Loriot bab2c72674 add functor to compute intersection point of coplanar segments 2023-07-06 16:53:51 +02:00
Sébastien Loriot a8a3d8ab36 add functor to compute the intersection of 3 independant planes 2023-07-06 15:39:08 +02:00
Sébastien Loriot b86a1fed32 Merge remote-tracking branch 'sloriot/PMP-BF_autorefine' into PMP-BF_autorefine 2023-07-05 17:59:29 +02: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 dfc386d65b Merge branch 'master' into HEAD 2023-06-22 14:05:45 +02:00
Sébastien Loriot 0ee31a5d4f remove extra parenthesis 2023-06-19 19:17:49 +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
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