Commit Graph

4906 Commits

Author SHA1 Message Date
Mael Rouxel-Labbé e8602e1f4e Use modern typedefs 2024-12-07 23:50:02 +01:00
Mael Rouxel-Labbé 25cd25c477 Tiny indentation fix 2024-12-07 23:49:55 +01:00
Mael Rouxel-Labbé a0e319e67b Re-attach convenience overloads to their respective main function 2024-12-07 23:43:07 +01:00
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é 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
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
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
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
Sébastien Loriot 2577ecea27 fix initialization
bug introduced #7712
2024-07-05 13:01:45 +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 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 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
Sébastien Loriot 4cd04080b3 forward the visitor 2024-06-11 09:08:33 +02:00
Sébastien Loriot 174a1d68e0 avoid potentially infinite loop 2024-06-10 15:07:25 +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
Sébastien Loriot 279ddde799 more to core 2024-05-24 17:03:18 +02:00
Jane Tournois de9eccf316 functor is not unary! 2024-05-17 15:41:29 +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
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
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
Sébastien Loriot 05c0625bce only allocate necessary bboxes 2024-04-24 21:27:29 +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
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 04a58f9e53 prevent isolated vertices in the soup 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 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 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
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
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
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 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
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
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
Laurent Rineau 47324c1f1c Merge pull request #7919 from hoskillua/icc-todos
Interpolated Curvature remaining TODOs
2024-01-24 16:02:00 +01:00
Sébastien Loriot 6b40f5b189 restore axis aligned projection traits 2024-01-19 12:03:40 +01:00
Andreas Fabri f520602a0d Comment #warning and qualify get() with std:: 2024-01-19 11:47:05 +01:00
Sébastien Loriot 272a242f1b restore delaunay in CDT + autoref and deduplicate identical points in no segments case 2024-01-19 11:47:05 +01:00
Sébastien Loriot 0095748cd7 insert points directly on edges 2024-01-19 11:47:04 +01:00
Sébastien Loriot 81d2938910 collect on-edge information and do not collect segments on the same edge 2024-01-19 11:47:04 +01:00
Sébastien Loriot 61461b14b3 more debug and fix indices 2024-01-19 11:47:04 +01:00
Sébastien Loriot 3b003535c7 WIP 2024-01-19 11:47:04 +01:00
Laurent Rineau b4f360f952 Merge pull request #7962 from sloriot/CGAL-header_fixes
Fix license issues
2024-01-11 12:45:40 +01:00
Sébastien Loriot 241e1bf557 add missing license include directives 2024-01-04 11:53:18 +01:00
Sébastien Loriot 9985f9cfa0 autorefinement has its own license file 2024-01-02 14:06:59 +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
Sébastien Loriot 6eff89bbc8 Merge pull request #7614 from sloriot/PMP-BF_autorefine
Add autorefine for triangle soup
2023-12-26 12:11:04 +01:00
Sébastien Loriot 89d3d74865 Merge remote-tracking branch 'cgal/5.6.x-branch' 2023-12-18 13:31:48 +01:00
Sébastien Loriot ee1fa58406 Merge remote-tracking branch 'cgal/5.5.x-branch' 2023-12-18 13:31:06 +01:00
Sebastien Loriot cadc6ed343
Add a convenience IO header (#7929)
## Summary of Changes

There is:

```
CGAL/boost/graph/IO/polygon_mesh_io.h
CGAL/PMP/IO/polygon_mesh_io.h
CGAL/IO/polygon_soup_io.h
```

The first one is a bit awkward to remember, so this PR adds a
convenience header at `CGAL/IO/polygon_mesh_io.h`.

## Release Management

* Affected package(s): `BGL`
* Issue(s) solved (if any): -
* Feature/Small Feature (if any):
* Link to compiled documentation (obligatory for small feature) [*wrong
link name to be changed*](httpssss://wrong_URL_to_be_changed/Manual/Pkg)
* License and copyright ownership:
2023-12-18 13:22:46 +01:00
Sebastien Loriot b9696c2f86
Polyhedron Demo: Add sampling plugin (#7910)
## Summary of Changes

Add a plugin that samples meshes and polygon soups

### Todo

- [x] Add dialog for the various parameters of the sampling function
- [x] Check that the input is triangular.

## Release Management

* Affected package(s): Polyhedron
* License and copyright ownership: unchanged
2023-12-18 13:21:01 +01:00
Sébastien Loriot 93ba75b8a1 add missing not 2023-12-14 08:47:54 +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
Sébastien Loriot 814a92655d remove non needed typenames + missing ref 2023-12-12 13:12:45 +01:00
Sébastien Loriot b267b31bea workaround MSVC 2022 bug 2023-12-12 13:12:21 +01:00
Sébastien Loriot 10f4caa296 add missing ref 2023-12-12 11:53:22 +01:00
Andreas Fabri 62a64ae870 Add check that it faces are triangles 2023-12-12 09:28:01 +00:00
Sébastien Loriot 07acb78d30 add tests for autoref 2023-12-12 09:41:44 +01:00
Mael Rouxel-Labbé 81972df60e Add a convenience IO header 2023-12-12 09:39:35 +01:00
Sébastien Loriot d0c224fafb handle some todos 2023-12-11 16:09:55 +01:00
Laurent Rineau 275c175f15 Merge pull request #5895 from sloriot/PMP-refine_mesh_along_isolevel
add function to refine a mesh along an isocurve
2023-12-11 14:00:49 +01:00
Laurent Rineau 721487fded Merge pull request #7873 from sloriot/PMP-improve_sizing_concept_and_new_ex
Isotropic remeshing: add example with custom dummy sizing
2023-12-11 13:56:13 +01:00
Laurent Rineau 0ccf0745ec Merge pull request #7914 from sloriot/PMP-remesh_planar_faces_missing_remove_const
PMP remesh_planar_patches: handle const meshes
2023-12-11 13:54:43 +01:00
Sébastien Loriot f36bdda9fe doc thread-safety of output iterators 2023-12-11 13:42:54 +01:00
Sébastien Loriot 93a1549c65 used typedef 2023-12-11 11:34:42 +01:00
Sébastien Loriot 8d0a047685 remote debug code and abandonned alternatives 2023-12-08 14:22:41 +01:00
Sébastien Loriot d75e4f2f54 Merge remote-tracking branch 'cgal/master' into PMP-BF_autorefine 2023-12-08 13:26:06 +01:00
hoskillua 0e60f7cb77 moving average_edge_length to measure 2023-12-08 09:16:35 +03:00
Sébastien Loriot dc04e5baa5 use doxygen macro 2023-12-07 11:30:17 +01:00
Sébastien Loriot 63556d4faa use explicitly const meshes 2023-12-06 15:50:14 +01:00
Sébastien Loriot 560f02c921 add missing remove_const 2023-12-06 15:29:17 +01:00
Sébastien Loriot c7ab2ba750 fix include 2023-11-30 09:54:27 +01:00
Sebastien Loriot a207e3af2e
wrong header
Co-authored-by: Andreas Fabri <andreas.fabri@geometryfactory.com>
2023-11-30 09:35:56 +01:00
Sébastien Loriot fd37bc3a16 add missing include 2023-11-30 09:25:04 +01:00
Sébastien Loriot bef0339671 fixes for edges entirely on the isoline 2023-11-29 17:43:17 +01:00
Sébastien Loriot 16de47d1e6 more fixes 2023-11-23 14:55:30 +01:00
Sébastien Loriot fe32ee586e at Eigen dependency 2023-11-20 11:36:06 +01:00