Commit Graph
3319 Commits
Author SHA1 Message Date
Sebastien Loriot 37e69750b4 Breakup and improve PMP's documentation (#9286)
## Summary of Changes

With the years and the additions to the package "Polygon Mesh
Processing" (PMP), the user and reference manuals have grown overly
large, making it difficult to find information.

This PR splits **the documentation** of PMP into four (three new)
packages:
- PMP (core): essential functions, ranging from simple geometric
functions to distance functions, feature detection etc.
- Boolean Operations on Meshes: Corefinement, autorefinement, clipping,
splitting, slicing, [upcoming kernel ?]
- Meshing and Remeshing of Polygon Meshes: combinatorial and geometric,
local and global meshing and remeshing.
- Polygon Mesh Repair: detection and treatment of defects in polygon
meshes

TODO:
- [x] Update usages of now deprecated PMP border.h (moved to BGL)
- [x] Test deprecated border.h
- [x] Fix "Topics" order
- [x] Dispatch functions and doc coming from:
    - [x] #9131
      - [ ] use the new make_hex in add_bbox
- [x] Move .h but keep include/CGAL/PMP

Tentative TODO:
- [ ] Update some package icons?

## Release Management

Integrate after :
- https://github.com/CGAL/cgal/pull/8935
- https://github.com/CGAL/cgal/pull/9131

* Affected package(s): `PMP`
* Issue(s) solved (if any): 
* Feature/Small Feature (if any):
[PMP_doc_breakup](https://cgalwiki.geometryfactory.com/CGAL/Members/wiki/Features/Small_Features/PMP_doc_breakup)
* 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: no change
2026-03-03 15:51:59 +01:00
Laurent Rineau e3be7eba0c robustness to bad inputs 2026-03-01 23:32:50 +01:00
Laurent Rineau 441ff7cf00 disable an assertions (for robustness to bad inputs) 2026-03-01 23:32:50 +01:00
Laurent Rineau b5155a17bd result == 0 must be a hard error 2026-03-01 23:32:50 +01:00
Laurent Rineau 32f3270fb7 new version of surface_mesh_to_tetrahedral_mesh.cpp
- moved to `test/Mesh_3/`, because that is not really an example (to be discussed),
- it is now a full application, capable of:
  -  running the meshing in parallel,
  - displaying the current number of vertices, like in CGAL Lab,
  - and the meshing is  can be interrupted/canceled with the `SIGINT` signal (Ctrl+C in the shell)
2026-03-01 23:32:14 +01:00
Laurent Rineau f6c9508f0c change again the API of MeshDomainWithFeatures::get_curves
The `Index`  information cannot be used without knowing the `in_dimension()` of the
vertex. Now, the "extremity" of the "loop curve" is registered as corner only if the curve
declares it as a corner (in case that "extremity" is shared with another curve).
2026-03-01 15:32:52 +01:00
Laurent Rineau a7a85695a4 fix warnings 2026-02-27 15:32:03 +01:00
Laurent Rineau 5497439547 move the caching from Mesh_domain to Protect_edges_sizing_field
I have kept the API in `Mesh_domain_with_polyline_features_3` for
`Periodic_3_mesh_3` (to be adapted)
2026-02-27 15:19:05 +01:00
Laurent Rineau c7f6d3e64c change the output type of get_curves, again 2026-02-27 04:19:21 +01:00
Laurent Rineau 3e8ecdf685 factorize TDS_3::Vertex_extractor
and simplify `Tr_helpers::get_sq_distance_to_closest_vertex` even further
2026-02-27 04:19:21 +01:00
Laurent Rineau 3571af7cc2 simplify Tr_helpers::get_sq_distance_to_closest_vertex 2026-02-27 04:19:21 +01:00
Laurent Rineau f505d5cf8a replace std::size_t(-2) by Time_stamper<void>::invalid_time_stamp
... and fix headers in passing.
2026-02-27 04:18:55 +01:00
Jane Tournois 12f751275f Merge branch 'Mesh_3-fix_mesh_cell_base_parallel-jtournois' into Mesh_3-speedup_balls_wip-jtournois 2026-02-26 18:09:23 +01:00
Jane Tournois 74b999eb0e fix the while loops
the logic of the while loops was inverted, leading to infinite loops
2026-02-26 17:57:12 +01:00
Jane Tournois 28ddfcbc53 add a test for Mesh_3 and the missing copy-constructors 2026-02-26 17:56:22 +01:00
Jane Tournois b5122e991b fix the case where new_location stands on an already existing vertex 2026-02-26 11:02:34 +01:00
Jane Tournois 11151d0056 fix compilation for MSVC2022 (could not access api_version variable) 2026-02-26 10:52:29 +01:00
Laurent Rineau 03ac87abaf Merge 'cgal/main' to fix conflicts
Conflicts:
	Mesh_3/include/CGAL/Labeled_mesh_domain_3.h
	Mesh_3/include/CGAL/Mesh_domain_with_polyline_features_3.h
2026-02-25 14:48:01 +01:00
Laurent Rineau 1c4a6de517 Refactor Mesh_domain_with_polyline_features_3
- Updated `Mesh_domain_with_polyline_features_3` to support API versioning, allowing for different output types based on the version.
- Adjusted the implementation of `construct_point_on_curve` and related methods in `Protect_edges_sizing_field`.
  All those methods are now in a dedicated class helper `Protect_edges_sizing_field_versioned_API`.
- Renamed `Point_and_location` to `Point_and_position` in Polyline.h for clarity.
- Wrapped assertions in `#if CGAL_MESH_3_PROTECTION_DEBUG` to enable debug checks conditionally.

That is still a WIP: I would like to move the caching map `vertex_to_polyline_iterator_`  from the domain class to
the class `Protect_edges_sizing_field`. That would avoid those member functions in the domain:
  - `Domain::set_polyline_iterator`
  - `Domain::remove_polyline_iterator`
  - `Domain::clear_point_to_polyline_iterator_cache`
2026-02-25 12:09:55 +01:00
Laurent Rineau 5f53afe5e6 fix Mesh_cell_base_3 2026-02-25 01:54:34 +01:00
Mael Rouxel-Labbé 7c535e9371 Update a comment on P3M3's fork of Protect_edges_sizing_field.h 2026-02-24 23:52:47 +01:00
Jane Tournois 6ee9d0002d avoid warning about deprecated product (enum * double) 2026-02-24 14:45:39 +01:00
Laurent Rineau c80fedeefe fix get_curves 2026-02-24 11:39:27 +01:00
Laurent Rineau 62c8163a0b rewrite needs_more_init
It was too confusing.
2026-02-20 13:56:50 +01:00
Laurent Rineau 0a7d9715cc remove costly assertions 2026-02-20 13:55:32 +01:00
Laurent Rineau 987446ed6a align profiler outputs 2026-02-20 13:50:33 +01:00
Laurent Rineau 28cf97fa1f fix a bug in the creation of tr1/tr2 (because of a usage of scale) 2026-02-20 13:50:33 +01:00
Laurent Rineau 2e0f522c52 fix a possible segfault 2026-02-20 11:52:42 +01:00
Mael Rouxel-Labbé 57e5032369 Merge remote-tracking branch 'cgal/main' into PMP-schism 2026-02-19 11:14:13 +01:00
Laurent Rineau eef47e46a4 new example "surface_mesh_to_tetrahedral_mesh"
What could be better name?
2026-02-18 18:47:35 +01:00
Laurent Rineau 29fbae2d2f fix the number and sizes of protecting balls 2026-02-17 17:40:55 +01:00
Laurent Rineau a75a540bed CGAL/Mesh_3/internal/Polyline.h:456: fix the assertion result_iterator == locate_point(result)
(from a debug of `examples/Mesh_3/mesh_polyhedral_complex_sm.cpp`)
2026-02-16 18:16:41 +01:00
Laurent Rineau 793bfa3ce4 fix examples/Mesh_3/mesh_two_implicit_spheres_with_balls.cpp 2026-02-16 15:28:33 +01:00
Laurent Rineau 1a8e5b5919 fix test/Mesh_3/test_meshing_unit_tetrahedron.cpp
(I do not like the patch.)
2026-02-16 15:15:00 +01:00
Andreas Fabri 7f77bc9718 Do not fail test_meshing_polylines_only 2026-02-16 08:47:49 +00:00
Jane Tournois cc760c6d2c remove debug code 2026-02-10 16:19:27 +01:00
Jane Tournois 94a4681539 clean previous commit 2026-02-10 11:55:51 +01:00
Andreas Fabri b31fae1d8c upper bound has no hyphen 2026-02-10 10:17:35 +00:00
Andreas Fabri 101a37eabf Add CGAL:: 2026-02-10 10:13:01 +00:00
Andreas Fabri 143777f0f8 polish 2026-02-10 09:22:35 +00:00
Andreas Fabri 8f667c5662 Do not document variant 2026-02-10 08:47:05 +00:00
Jane Tournois 0cc34e8b10 there can be an inconsistency between do_intersect() and intersection()
this assertion may fail though the inconsistency may happen with inexact
constructions
2026-02-09 21:39:24 +01:00
Jane Tournois 051668cfe3 fix the use of length_from_start in distance(pit, qit) in loop case 2026-02-09 21:38:20 +01:00
Sébastien Loriot dee52b915e fix linking 2026-02-09 14:28:53 +01:00
Andreas Fabri 370837806a Add documentation of Index 2026-02-09 12:57:54 +00:00
Andreas Fabri 5c6622a320 Add typedef for Index to avoid bad links 2026-02-09 12:08:04 +00:00
Andreas Fabri 7023f76b12 merge cgal/main 2026-02-09 08:48:27 +00:00
Andreas Fabri af5539168a Deal with Iso_cuboid 2026-02-06 18:19:15 +00:00
Andreas FabriandJane Tournois a2bef76e9c Update Mesh_3/include/CGAL/Implicit_to_labeling_function_wrapper.h
Co-authored-by: Jane Tournois <janetournois@users.noreply.github.com>
2026-02-06 15:54:51 +01:00
Jane Tournois 4beadb6ecc use c++11 range-loop, and improve readability 2026-02-06 10:16:51 +01:00