Commit Graph

6142 Commits

Author SHA1 Message Date
Sebastien Loriot abe1bba8bd
CGAL improvement backported from CDT_3 branch (#8170)
## Summary of Changes

Important various fixes and improvements, from an experimental branch of
mine about CDT_3.

- <s>remove CMake warnings about `VTK_USE_FILE`</s> (our testsuite tests
with [VTK-8.2](https://docs.vtk.org/en/latest/release_details/8.2.html),
whereas
[VTK-9.0](https://docs.vtk.org/en/latest/release_details/9.0.html) was
released four years ago).
- make `Circulator_from_container` compatible with ranges (instead of
just containers)
- `Hash_map` is move-constructible and -assignable
- add preliminary support for C++20 concepts and `<format>`
- [x] add `Compare_angle_3(Point_3, Point_3, Point_3, Point_3, Point_3,
Point_3)` (with six points) **TODO: needs doc**... will be handled later
in issue #8219
- [x] **breaking changes:** add `Compare_xy_2` to
`TriangulationTraits_2` <s>TODO: needs announcement</s>
- fix `Compact_container` time stamp feature
- [x] commits from #7410 **That is probably a problem, to be fixed.**
**fixed in #7410 and then my the merge
70464ea107**
- add `CGAL::Scope_exit`, `CGAL::make_scope_exit`, for CGAL developers
(undocumented)
- add an overload of `make_sorted_pair` with only one pair-like argument
- improve `CGAL::IO::Output_ref` and `oformat`
- perf improvements in
`TDS_3/include/CGAL/Triangulation_data_structure_3.h` (`is_edge` is 7
times faster)
- <s>perf improvement in
`Triangulation_2/include/CGAL/Triangulation_2/internal/Polyline_constraint_hierarchy_2.h`
(with the use of `unordered_flat_map` from Boost>=1.80</s>
- less filter failures in `Triangulation_segment_cell_iterator_3`
- add `Triangulation_3::is_facet(u, v, w)` (without `, c, i, j, k`)

## Release Management

* Affected package(s): Installation, T_2, TDS_2, T_3, TDS_3, SMDS_3,
Kernel, STL_Extension, Stream_support
* Feature/Small Feature (if any):
* License and copyright ownership: maintenance by GeometryFactory
2024-05-26 17:48:10 +02:00
Sébastien Loriot 279ddde799 more to core 2024-05-24 17:03:18 +02:00
Laurent Rineau 81357855d5
Using std::optional for Property_container::get<T> (#8035)
## Summary of Changes
Switching from `std::pair<Property_map<T>, bool>` to `std::optional` in
`Property_container::get<T>`

Introducing `Pair_optional_adaptor` for backward compatibility which
extends `std::optional<T>` to interface of `std::pair`

using `Pair_optional_adaptor` for `Surface_mesh` and `Point_set_3`

## Release Management

* Affected package(s): Point_set_3, Surface_mesh, STL_Extension
2024-05-22 12:12:56 +02:00
Laurent Rineau 70464ea107 Merge remote-tracking branch 'afabri/STL_extension-Fix_Prevent_deref-GF' into pr/lrineau/8170 2024-05-21 18:55:11 +02:00
Jane Tournois de9eccf316 functor is not unary! 2024-05-17 15:41:29 +02:00
Jane Tournois 12455fbd55 add example using allow_move_functor 2024-05-17 10:19:49 +02:00
Laurent Rineau 022b19d3ca Merge pull request #8057 from sloriot/AABB_tree-2d_and_3d
Updating the AABB-tree to work in both 2D and 3D
2024-05-15 16:12:19 +02:00
Laurent Rineau 0dcb83bff8 Merge pull request #8142 from sloriot/PMP-coref_nm_out
Add extra parameters to the corefinement visitor to handle non-manifold output
2024-05-15 16:12:16 +02:00
Laurent Rineau 02ad5d6003 Merge pull request #8150 from janetournois/PMP-isotropic_remeshing_with_allow_move_functor-jtournois
PMP::isotropic_remeshing() - add NP `allow move functor`
2024-05-15 16:12:14 +02:00
Laurent Rineau f260a22a64 Merge pull request #8160 from sloriot/PMP-coref_with_less_bbox
PMP corefinement: only allocate necessary bboxes
2024-05-15 16:12:09 +02:00
Laurent Rineau 87fe13fcf6 Merge pull request #8168 from sloriot/PMP-remesh_doc
Update parameter description
2024-05-15 16:12:07 +02:00
Laurent Rineau 76809fa947 Merge pull request #8178 from sloriot/PMP-shorten_params
Rename parameters
2024-05-15 16:06:06 +02:00
Sven Oesau ab2ca20aac some more cases 2024-05-14 16:38:47 +02:00
Sébastien Loriot 6291a4f62d also rename input nps 2024-05-06 09:50:18 +02:00
Sébastien Loriot 1be3e1d3f2 shorten parameters for better doc readibility 2024-05-02 14:36:18 +02:00
Laurent Rineau 127163fda3 cosmetic changes in debug messages 2024-04-26 16:10:23 +02:00
Laurent Rineau 4bf1c438af Add a tool to list non triangulated off files 2024-04-26 16:10:23 +02:00
Sébastien Loriot 4525eeb988 do not modify the map if not the default one 2024-04-25 19:29:48 +02:00
Sébastien Loriot be81f15b95 update description: it is also an input parameter 2024-04-25 18:35:25 +02:00
Laurent Rineau 07eb230ed8 Merge pull request #8149 from lrineau/cgallab-cont
Rename Polyhedron demo to CGAL Lab everywhere
2024-04-25 11:30:08 +02:00
Sébastien Loriot 05c0625bce only allocate necessary bboxes 2024-04-24 21:27:29 +02:00
Laurent Rineau 2a2031df3b Rename cgallab to CGALlab
@janetournois (see https://github.com/CGAL/cgal/pull/8149#issuecomment-2066444180
2024-04-23 15:09:51 +02:00
Laurent Rineau c4165fe5f9 Merge pull request #7439 from MaelRL/PMP-Remove_degen_faces-no-clear-GF
Introduce remove_all_elements(Graph)
2024-04-22 14:54:18 +02:00
Laurent Rineau 3e3eed7f05 Merge pull request #8129 from sloriot/PMP-deterministic_triangulate_faces
Make triangulate_faces deterministic
2024-04-22 14:54:08 +02:00
Sven Oesau ffba6279c9 Merge remote-tracking branch 'cgal/master' into AABB_tree-2d_and_3d 2024-04-19 08:47:54 +02:00
Jane Tournois 96d8e1a5f6 document NP allow_move_functor 2024-04-18 13:01:07 +02:00
Jane Tournois 9a27b92a7d NP allow_move_functor from tangential_relaxation to isotropic_remeshing
this NP exists in tangential_relaxation() and we want to be able to
use it in the relaxation step, from the named parameters of isotropic_remeshing()
2024-04-18 12:50:20 +02:00
Laurent Rineau 621859b526 Rename Polyhedron demo to CGAL Lab
And announce it in the `CHANGES.md`.
2024-04-18 12:39:30 +02:00
Sébastien Loriot bf6af35d42 address review comments 2024-04-15 18:34:45 +02:00
Sébastien Loriot 05f4cf6106 add doc and make implementation generic 2024-04-15 17:32:22 +02:00
Sven Oesau d9cd44e30c AABBGeomTraits -> AABBGeomTraits_3 2024-04-15 11:59:00 +02:00
Sébastien Loriot 0e06536bf1 use a template parameter for the id in the triangle 2024-04-15 09:23:51 +02:00
Sébastien Loriot 3f147fb06a show how to create the mesh from the soup 2024-04-15 09:23:51 +02:00
Sébastien Loriot 07580f1a58 fix filename 2024-04-15 09:23:51 +02:00
Sébastien Loriot 04a58f9e53 prevent isolated vertices in the soup 2024-04-15 09:23:51 +02:00
Sébastien Loriot d796c06cae add test 2024-04-15 09:23:51 +02:00
Sébastien Loriot 3fbd0fd886 handle several operations 2024-04-15 09:23:37 +02:00
Sébastien Loriot 5583f42fce do no unmark edges as the soup does not need them + allow several operations 2024-04-15 09:23:12 +02:00
Sébastien Loriot 9d6c4dcd8a handle existing vertices that are intersection points 2024-04-15 09:23:12 +02:00
Sébastien Loriot 13e2adf130 First draft of using a visitor to extract non-manifold soups 2024-04-15 09:23:12 +02:00
Sébastien Loriot cfec3bb0cc fix values due to the diagonal change in degenerate triangulation 2024-04-11 11:44:35 +02:00
Sébastien Loriot 147b313cc8 also apply deterministic fix to polygon soup function 2024-04-11 09:36:16 +02:00
Sébastien Loriot ebe6d6719c precompute vectors 2024-04-11 08:55:10 +02:00
Laurent Rineau 8d5984bd1b Merge pull request #8108 from lrineau/CGAL-simplify_cmake-GF
CMake: simplify, now that C++17 is required
2024-04-10 18:04:20 +02:00
Andreas Fabri 4015b2b5c5 fixes after review 2024-04-10 11:52:33 +01:00
Laurent Rineau 49ca51275a
Fix typos (#8118) 2024-04-08 16:10:23 +02:00
Sébastien Loriot 16782d1e8b do not depend on vertex order when opposite angles are identical 2024-04-08 15:46:48 +02:00
Laurent Rineau 4677ece3da Merge pull request #7712 from sloriot/BGL-dynamic_with_default
Adding a default to dynamic property maps
2024-04-05 14:25:20 +02:00
Laurent Rineau 708711e7a7 Merge pull request #8018 from janetournois/PMP-add_bbox_to_face_graph-jtournois
New function `PMP::add_bbox(face_graph)` that adds bbox to face graph
2024-04-05 14:25:17 +02:00
Sébastien Loriot 68bc4a4bbc typos 2024-04-03 15:59:34 +02:00
Andreas Fabri caa8aaaa21 merge master 2024-04-03 14:09:39 +01:00
Laurent Rineau 04cf39bd8c CMake: simplify, now that C++17 is required 2024-03-28 18:38:48 +01:00
Sébastien Loriot a34120d817 fix warning 2024-03-27 08:21:34 +01:00
Sven Oesau f0d32fe869
Merge branch 'master' into AABB_tree-2d_and_3d 2024-03-26 16:03:19 +01:00
Sven Oesau 65be6133d8 removing deprecated AABB types 2024-03-26 15:56:45 +01:00
Sebastien Loriot a42ffdec11
Merge branch 'master' into CORE-boost_mp_number-GF 2024-03-26 00:27:22 +01:00
Sébastien Loriot baf084950b use default value for dynamic maps 2024-03-25 11:05:55 +01:00
Sébastien Loriot 12c80ac512 Merge remote-tracking branch 'cgal/master' into HEAD 2024-03-25 10:21:41 +01:00
Laurent Rineau 7a17b47d9f Merge pull request #8052 from afabri/Polygon-exact_area-GF
Polygon: Avoid stackoverflow when summing exact numbers

# Conflicts:
#	Polygon/include/CGAL/Polygon_2_algorithms.h
#	Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/measure.h
2024-03-22 09:18:07 +01:00
Laurent Rineau 9f96166d44 Merge branch '5.5.x-branch' into 5.6.x-branch
# Conflicts:
#	Polygon/include/CGAL/Polygon_2_algorithms.h
#	Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/measure.h
2024-03-22 09:09:57 +01:00
Sébastien Loriot b855194fba add missing include directive 2024-03-15 09:20:44 +01:00
Andreas Fabri a42d56fc67 Add several #include 2024-03-14 10:09:07 +01:00
Sébastien Loriot f34745c4d8 use a functor for collapsing the DAG to not depend on Filtered_kernel
nor inclusion order
2024-03-14 10:02:30 +01:00
Andreas Fabri 19725c0b08 Fix PMP testsuite 2024-03-08 08:40:02 +00: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 bb2335a86e early exit already is in Bbox_3::scale() so we can remove this condition 2024-03-06 14:50:32 +01:00
Jane Tournois 15310c93ef copy_face_graph is not needed anymore 2024-03-06 14:48:31 +01:00
Jane Tournois ff3db1e0d7
doc suggestions from code review
Co-authored-by: Mael <mael.rouxel.labbe@geometryfactory.com>
2024-03-06 11:11:27 +01:00
Jane Tournois 78872aca27 move NP do_not_triangulate to make_hexahedron(isocuboid)
and fix nb of faces of hexahedron from 8 to 6
2024-03-05 13:38:14 +00:00
Andreas Fabri b70a736083 Replace deprecated classes 2024-03-05 07:20:28 +00:00
Andreas Fabri eb49100a96 Replace deprecated classes 2024-03-05 07:08:51 +00:00
Jane Tournois c074187836 Merge branch 'PMP-add_bbox_to_face_graph-jtournois' of https://github.com/janetournois/cgal into PMP-add_bbox_to_face_graph-jtournois 2024-03-04 16:05:56 +00:00
Jane Tournois 1fc30afde7 doc simplified (similar to most functions of PMP) 2024-03-04 17:05:08 +01:00
Jane Tournois 685f6e7f84 create an overload of CGAL::make_hexahedron for Iso_cuboid_3 2024-03-04 17:04:06 +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
Sébastien Loriot 910945eb5f undo dependency changes + always use core if not disabled 2024-02-27 16:19:28 +01:00
Sébastien Loriot 3b30756cd3 do not depend on CGAL_Core 2024-02-27 14:46:18 +01:00
Sébastien Loriot 67b330bd5a do no iterate on a container you modify 2024-02-26 17:45:06 +01:00
Sébastien Loriot 08ab32e14a missing references 2024-02-26 14:23:09 +01:00
Sébastien Loriot 7a11b642fb Revert "get rid of extra container"
This reverts commit a57800ce07.

points vector of Triangle_data can be updated when intersecting
new intersection points. If the container is used at the same time
by another thread calling generate_subtriangles, the container might
be in an invalid state while resizing it.
2024-02-26 14:22:46 +01:00
Andreas Fabri e4558a4d4b Merge branch 'master' into CORE-boost_mp_number-GF 2024-02-23 17:04:37 +01:00
Laurent Rineau 053a2b3b81 Merge pull request #8010 from afabri/CGAL-change_include_order-GF
Change inclusion order to check dependencies
2024-02-22 10:23:02 +01:00
Laurent Rineau 5c5bb0477f Merge pull request #8032 from sloriot/PMP-locate_path
Fix invalid path
2024-02-16 18:03:06 +01:00
Sébastien Loriot a57800ce07 get rid of extra container 2024-02-16 12:12:19 +01:00
Sébastien Loriot 5cae5340e9 remove TODO that are not 2024-02-16 11:48:15 +01:00
Sébastien Loriot 7aa4f37b6b rename macro 2024-02-16 11:39:09 +01:00
Sébastien Loriot 916282e164 fix invalid path 2024-02-14 14:22:47 +01:00
Jane Tournois cb07b0f545 use midpoint from GT (and add precondition on factor) 2024-02-13 15:04:43 +01:00
Jane Tournois 83e80c91e9 doc 2024-02-13 13:48:24 +01:00
Jane Tournois c23db551f3 make bbox really tight when factor is 1. 2024-02-13 11:50:10 +01:00
Jane Tournois 6191f7de3c use split_face() instead of triangulate_faces()
and remove dependency on T2
2024-02-13 10:31:26 +01:00
Jane Tournois b48760af26 use do_not_triangulate_faces
a NP that already existed before this PR
2024-02-12 17:08:46 +01:00
Jane Tournois 801d7822c6 doc 2024-02-12 16:39:54 +01:00
Jane Tournois 6ed6aa681a improve add_bbox using make_hexahedron and Iso_cuboid_3 2024-02-12 16:32:52 +01:00
Jane Tournois 62b8e8fb6f new function add_bbox(face_graph) that adds bbox to face graph
the bbox can be :
* triangulated or not
* tight or not
2024-02-06 12:13:03 +01:00
Andreas Fabri 5b187bd79d Provide a fix for distance.h 2024-01-31 11:10:00 +00:00
Andreas Fabri 7d7b080842 PMP: Change inclusion order to check dependencies 2024-01-31 09:39:45 +00:00
Laurent Rineau 47324c1f1c Merge pull request #7919 from hoskillua/icc-todos
Interpolated Curvature remaining TODOs
2024-01-24 16:02:00 +01:00
Sebastien Loriot 128b169b24
Fixes when neither LEDA nor GMP is available (#7960) 2024-01-19 13:57:12 +01:00