## 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
- 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)
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).
- 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`