Commit Graph

6196 Commits

Author SHA1 Message Date
Mael Rouxel-Labbé f2299f844f Use plural for the all-vertices function 2024-12-07 23:42:49 +01:00
Mael Rouxel-Labbé 693fd25174 Use a capital 'G' 2024-12-07 23:42:31 +01:00
Mael Rouxel-Labbé 0fe940555d Fix namespace 2024-12-07 23:41:38 +01:00
Mael Rouxel-Labbé e9de7e88ad Fix test pretty much never testing envelope tests + read all formats 2024-12-07 23:34:58 +01:00
Mael Rouxel-Labbé eb668da9ea Misc cleaning 2024-12-07 23:34:23 +01:00
Mael Rouxel-Labbé fda7b1ae6a Avoid a lot of useless shape predicate calls
Here are some changes:
- Avoid a lot of redundant calls of is_it_a_needle / is_it_a_cap
  - Do not test for cap-ness if it's already a needle
  - Do not fill both ranges at the beginning, but fill
    with everything: on the first round, needle-ness will
    be tested, and the exit towards cap-ness will happen
  - Wait for a needle to no longer be a needle, or not be
    treatable to actually test cap-ness
- When the mesh is modified, do not test everything immediately,
  just put them in the queue of the next iteration

Result: Fewer calls to shape predicates

- master -
needle calls = 828 668
cap calls = 803 330

- PR -
needle calls = 803 554
cap calls = 795 317

Should be fewer but two effects are balacing each other for the calls:
- much fewer calls to shape predicates (is_it_a_needle, is_it_a_cap)
  by not calling until absolutely necessary (but still checking at pop time).
- when we modify the mesh, I no longer fill the CURRENT cap and needle
  ranges, but the next ones. The point is to really prioritize all caps
  BEFORE treating needles, whereas otherwise we would treat some needles
  at the current iteration while there are still caps to treat.
So there are more iterations which add more useless calls (see below)
2024-12-07 23:31:57 +01:00
Mael Rouxel-Labbé a4cb48a145 Fix never trying again a user-rejected cap 2024-12-07 23:29:04 +01:00
Mael Rouxel-Labbé eb5ff9b33e Fix collect_badly_shaped_triangles not actually filling both ranges 2024-12-07 23:28:20 +01:00
Sébastien Loriot cac285d097 no need to redo new node propagation if it was already been done once 2024-12-06 17:19:01 +01:00
albert-github 36f6a36dac Errors in bibliography and incorrect usage of `\f[` command
- The `&` in the bibliography has to be escaped
- the doxygen command `\f[` should not be used to directly change the environment, for this the doxygen command `\f{` exists.
2024-12-02 15:48:48 +01:00
Sébastien Loriot 0b3c27e584 swap the parameters also here 2024-11-21 09:04:17 +01:00
Sébastien Loriot 41d37ac2a9 split badly shaped triangle check and delay the check calls 2024-11-20 09:40:13 +01:00
Sébastien Loriot b60b203c56 add missing cap collection in case of non-collapsed edge 2024-11-20 09:11:48 +01:00
Jane Tournois 21e1ff113a vertex is constrained if NOT allowed to move 2024-11-18 16:17:19 +01:00
Sébastien Loriot c9c1770c18 in case an edge is both a cap and a needle but that is not collapsable try to flip 2024-11-14 11:54:48 +01:00
albert-github 1320a1d497 Spelling correction
Spelling correction
2024-11-14 10:22:43 +01:00
Jane Tournois 7462b70bec remove unused 2024-11-12 14:01:30 +01:00
Jane Tournois b8165f62de add is_move_allowed(v) and use it in tangential_relaxation_impl() 2024-11-08 16:57:42 +01:00
Jane Tournois ec1d43afbe add constrained vertices to pmap 2024-11-08 16:11:11 +01:00
Andreas Fabri fcf062bf48 PMP: Initialize to avoid warning 2024-11-08 10:13:26 +00:00
Laurent Rineau 96cd3e6f09 Merge remote-tracking branch 'cgal/master' into pr/afabri/8528 2024-10-17 00:25:24 +02:00
Andreas Fabri 95616154d5 More PRIVATE in LCC and Generalized_map 2024-10-09 07:19:52 +01:00
Andreas Fabri 527569346e CGAL: Modernize CMakeLists.txt 2024-10-08 17:02:41 +01:00
albert-github dd02af92a2 issue #8515 Spelling mistakes found checking `en-GB` to `en-US`
Spelling corrections, `en-GB` -> `en-US`
2024-10-05 11:28:29 +02:00
Laurent Rineau e1c1582c08 Merge pull request #8210 from janetournois/PMP-allow_move_example-jtournois
PMP isotropic_remeshing - add example using `allow_move_functor`

# Conflicts:
#	Polygon_mesh_processing/doc/Polygon_mesh_processing/examples.txt
2024-09-27 11:49:59 +02:00
Laurent Rineau 5a06283647 Merge pull request #8418 from sloriot/PMP-isorem_deg_faces
[isotropic_remeshing] do no flip if creating a degenerate face
2024-09-27 10:59:52 +02:00
albert-github f7320ae1c1 Spelling corrections
Spelling corrections
2024-09-13 17:53:05 +02:00
Sebastien Loriot abd0a58338
Installation - update `FindOpenMesh.cmake` (#8332)
## Summary of Changes

This PR updates CGAL's `FindOpenMesh.cmake`, accordingly with the one
provided by OpenMesh 11.0, and introducing the target
`OpenMesh::OpenMesh`

## Release Management

* Affected package(s): Installation
* License and copyright ownership: unchanged
2024-09-06 13:26:41 +02:00
Sébastien Loriot 4cf1f4b214 CONFIG options is only needed if a FindXXX.cmake exists 2024-09-04 14:48:07 +02:00
Jane Tournois 3f6083e6ff use CGAL::OpenMesh_support in examples and tests 2024-08-27 14:06:16 +02:00
Jane Tournois eabb4dc756 remove border degenerate faces, fixed 2024-08-26 10:21:41 +02:00
Jane Tournois c7ce0e43b8 remove boundary degenerate faces 2024-08-26 10:06:08 +02:00
Sébastien Loriot 152fd4d74e do no flip if creating a degenerate face 2024-08-20 17:25:32 +02:00
Sebastien Loriot 47c417a785
Deal with duplicate lines (#8396)
## Summary of Changes

Deal with Issue #8348 

## Release Management

* Affected package(s):  Triangulation_2 and Periodic_triangulation_2
* Issue(s) solved (if any): fix #8348 
* License and copyright ownership:  unchanged
2024-08-19 11:17:50 +02:00
Andreas Fabri 12468ccf4a Address #8401 2024-08-09 11:32:26 +01:00
Sébastien Loriot 2577ecea27 fix initialization
bug introduced #7712
2024-07-05 13:01:45 +02:00
Sébastien Loriot e95ea7cde7 unused variable 2024-07-04 18:36:55 +02:00
Jane Tournois 8905201e21 replace pig (not closed) by triceratops 2024-07-01 15:15:34 +02:00
Laurent Rineau a800918665 Merge pull request #8276 from sloriot/PMP-split_visitor_fwd
Forward the visitor for split
2024-06-13 12:48:47 +02:00
Laurent Rineau 21bc6c669f Merge pull request #8277 from afabri/PMP-normals-GF
PMP: Change the string of the property
2024-06-13 12:48:45 +02:00
Laurent Rineau 6f4b598b6a Merge pull request #8278 from albert-github/feature/bug_spell_20240511
Spelling correction
2024-06-13 12:48:43 +02:00
Laurent Rineau 212a323e4d Merge pull request #8276 from sloriot/PMP-split_visitor_fwd
Forward the visitor for split
2024-06-13 12:48:22 +02:00
Laurent Rineau 96d91fa2bd Merge pull request #8277 from afabri/PMP-normals-GF
PMP: Change the string of the property
2024-06-13 12:48:20 +02:00
Laurent Rineau 32893b91c0 Merge pull request #8263 from lrineau/CGAL-update_minimal_cmake-GF
cmake_minimum_required(VERSION 3.12...3.29)
2024-06-12 10:06:12 +02:00
Laurent Rineau ff6e9d262b Merge pull request #8272 from sloriot/PMP-coref_use_size_type
Fix iteration on dynamic bit set
2024-06-12 10:06:06 +02:00
albert-github c35a0a7f11 Spelling correction
Spelling correction due to updated dictionary.
(dictionary was updated after the previous spelling correction :-( )
2024-06-11 10:12:12 +02:00
Andreas Fabri 8a6b86b9ae PMP: Change the string of the property 2024-06-11 08:18:34 +01:00
Sébastien Loriot 4cd04080b3 forward the visitor 2024-06-11 09:08:33 +02:00
Sébastien Loriot a99ebc30eb test several polygon types 2024-06-10 15:44:17 +02:00
Sébastien Loriot 174a1d68e0 avoid potentially infinite loop 2024-06-10 15:07:25 +02:00
Laurent Rineau 3a223ebd1e cmake_minimum_required(VERSION 3.12...3.29) 2024-06-06 20:19:44 +02:00
Jane Tournois 8613b04e93 add to examples list 2024-06-04 09:48:40 +02:00
albert-github 36c8b7589d Spelling corrections
Last batch (for now) of spelling corrections in doxygen and normal comments
2024-05-31 19:05:34 +02:00
Sebastien Loriot 596fa09e20
Kinetic Shape Partition (#7198)
PR for Kinetic Partitioning and Reconstruction feature.

* Affected package(s): Kinetic Partitioning and Reconstruction
* Issue(s) solved (if any): 
* Feature/Small Feature (if any):
[link](https://cgal.geometryfactory.com/CGAL/Members/wiki/Features/Kinetic_Shape_Partition_3)
* Link to compiled documentation:
[link](https://cgal.github.io/7198/v0/Manual/packages.html#PkgKineticSpacePartition)
* License and copyright ownership:  GeometryFactory/Inria

**TODO:**
- [x] check branch size (for @sloriot)
2024-05-26 17:51:49 +02:00
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