## 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
```
In file included from /usr/include/c++/15/bits/stl_algobase.h:66,
from /usr/include/c++/15/algorithm:62,
from /usr/include/qt6/QtCore/qflags.h:10,
from /usr/include/qt6/QtCore/qglobal.h:49,
from /home/lrineau/Git/cgal-master/Lab/demo/Lab/Plugins/PMP/Selection_plugin.cpp:1:
In function ‘constexpr void std::__advance(_InputIterator&, _Distance, input_iterator_tag) [with _InputIterator = __detail::_Node_iterator<CGAL::SM_Vertex_index, true, true>; _Distance = long int]’,
inlined from ‘constexpr void std::advance(_InputIterator&, _Distance) [with _InputIterator = __detail::_Node_iterator<CGAL::SM_Vertex_index, true, true>; _Distance = long int]’ at /usr/include/c++/15/bits/stl_iterator_base_funcs.h:226:21,
inlined from ‘constexpr _InputIterator std::next(_InputIterator, typename iterator_traits<_Iter>::difference_type) [with _InputIterator = __detail::_Node_iterator<CGAL::SM_Vertex_index, true, true>]’ at /usr/include/c++/15/bits/stl_iterator_base_funcs.h:239:19,
inlined from ‘Scene_polyhedron_selection_item::fg_face_descriptor Scene_polyhedron_selection_item::add_facet_from_selected_vertices()’ at /home/lrineau/Git/cgal-master/Lab/demo/Lab/./Scene_polyhedron_selection_item.h:795:26,
inlined from ‘void CGAL_Lab_selection_plugin::on_validateButton_clicked()’ at /home/lrineau/Git/cgal-master/Lab/demo/Lab/Plugins/PMP/Selection_plugin.cpp:922:55:
/usr/include/c++/15/bits/stl_iterator_base_funcs.h:164:7: warning: iteration 9223372036854775809 invokes undefined behavior [-Waggressive-loop-optimizations]
164 | while (__n--)
| ^~~~~
/usr/include/c++/15/bits/stl_iterator_base_funcs.h:164:7: note: within this loop
```
Add functions to compute the kernel of a mesh
## Release Management
* Affected package(s): `PMP`, `BGL`
* Issue(s) solved (if any):
* Feature/Small Feature (if any):
[Mesh_Kernel](https://cgalwiki.geometryfactory.com/CGAL/Members/wiki/Features/Small_Features/Mesh_Kernel)
* Link to compiled documentation (obligatory for small feature) [*wrong
link name to be changed*]()
* License and copyright ownership: GF
## Summary of Changes
This PR fixes the error reported in issue #781. The main two changes
are:
- in `Refine_edges.h`: allow the refinement point of a constrained edge
to be an existing close encroaching vertex,
- in `Refine_faces.h`: skip tiny bad faces when their bbox are smaller
than a few ulp.
## Release Management
* Affected package(s): Triangulation_2, Mesh_2
* Issue(s) solved (if any): fix#781
* 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: maintenance by GeometryFactory, now
copyright change
## Summary of Changes
Prefix macros. Some are include guards, some have relatively generic
names.
Remove several files from CGAL_ImageIO and put the code in the files
kept in `namespace CGAL`
## Release Management
* Affected package(s): several
* License and copyright ownership: unchanged
- Fix grid generation for x=constant
- Enable 2D point generation
- Fixes and enhancements for the UI
- General clean-up
Not fixed: the pyramid has a Y axis, that should be at Z for consistency,
or even be a parameter of the BGL function...
## Summary of Changes
As reported in #7868 the function `CGAL::IO::write_PLY()` used in binary
mode does not correctly write the coordinates if the points are from a
kernel with exact constructions.
~~This PR applies `to_double()" to the coordinates.~~
~~After a discussion with @MaelRL we decided that the user is in charge
to pass a `vertex_point_map` as named parameter that does the
conversion. This is straightforward as we offer the
[`Cartesian_converter_property_map`](https://doc.cgal.org/latest/Property_map/structCGAL_1_1Cartesian__converter__property__map.html).~~
Moving back to the previous proposal: hardcode some to_double and
to_float casts such that we meet the requirements of the file format,
whatever the input.
As the problem is the same for the vertex normals we add a named
parameter `vertex_normal_map`.
### Todo
- [x] Fix the generic function `write_polygon_mesh()`. Currently it is
fixed for `Surface_mesh`
## Release Management
* Affected package(s): Stream_support
* Issue(s) solved (if any): fix#7868 and fix
https://github.com/CGAL/cgal/issues/7327
* License and copyright ownership: unchanged
* upcoming integration, update #9072 and test it