## 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
## Summary
This PR adds a new debugging utility `bisect_failures` to the
STL_Extension package. This function helps identify minimal failing test
cases from complex input data by using a bisection-like approach.
**Small feature: [bisect failures debugging
utility](https://cgalwiki.geometryfactory.com/CGAL/Members/wiki/Features/Small_Features/bisect_failures_debugging_utility)**
## Features
- **Multiple failure type support**: Handles CGAL exceptions,
std::exceptions, and exit codes
- **Automatic granularity adjustment**: Starts with ratio=0.5,
automatically halves when no fault is found
- **Debug output**: Saves intermediate states (`current`, `bad`,
`error`, `final_bad`)
- **Template-based design**: Works with any copyable/assignable data
type
## Testing
Added comprehensive test suite (`test_bisect_failures.cpp`) with 14
tests:
- ✅ Edge cases (empty data, no failures)
- ✅ Single element failures (CGAL exception, std::exception, exit code)
- ✅ Pair combinations (all 2-element permutations)
- ✅ Triple combinations (all 3 failure types together)
All tests pass in both Debug and Release configurations.
## Use Case
This utility is particularly useful for:
- Debugging complex geometric algorithms with large input datasets
- Finding minimal reproducible test cases from failing inputs
- Isolating problematic elements in mesh processing, triangulation, etc.
## Example Usage
```cpp
auto get_size = [](const Mesh& m) { return m.number_of_faces(); };
auto simplify = [](Mesh& m, std::size_t start, std::size_t end) -> bool {
// Remove faces from start to end
for(std::size_t i = start; i < end && i < m.number_of_faces(); ++i) {
m.remove_face(start);
}
return true;
};
auto run = [](const Mesh& m) -> int { return algorithm(m); };
auto save = [](const Mesh& m, const std::string& prefix) {
std::ofstream out(prefix + ".off");
out << m;
};
int result = bisect_failures(mesh, get_size, simplify, run, save);
```
## Files Changed
- `STL_Extension/include/CGAL/bisect_failures.h` (new) - Main utility
header
- `STL_Extension/test/STL_Extension/test_bisect_failures.cpp` (new) -
Test suite
- `STL_Extension/test/STL_Extension/CMakeLists.txt` (modified) - Added
test
## Checklist
- [x] Code compiles without errors (Debug and Release)
- [x] All tests pass
- [x] Comprehensive documentation with Doxygen comments
- [x] Example usage in documentation
- [x] Follows CGAL coding style conventions
- [x] Deal with false positive in the testsuite
## Release Management
* Affected package(s): `STL_Extension`
* Feature/Small Feature (if any): [bisect failures debugging
utility](https://cgalwiki.geometryfactory.com/CGAL/Members/wiki/Features/Small_Features/bisect_failures_debugging_utility)
* Link to compiled documentation (obligatory for small feature)
[doc](https://cgal.github.io/9118/v2/STL_Extension/group__PkgSTLExtensionUtilities.html#gad56d708faac9063d3de057394a6d8c52)
* License and copyright ownership: no change
## Summary of Changes
While the Polyhedron demo can read `*.nii` files there is no example in
`examples/Mesh_3/`.
This PR adds the functionality to the example that uses vtk to read
DICOM data.
This is triggered by [this
question](https://stackoverflow.com/questions/77331075/is-there-an-easy-way-to-convert-from-nifti-nii-image-format-to-inr)
on stackoverflow.
- [ ] Support of `*.nrrd` format
- [ ] example for segmented images
- [ ] Add example data for the file formats.
## Release Management
* Affected package(s): Mesh_3
* License and copyright ownership: unchanged