This fixes the issue, but it could still be broken e.g. by a kernel
that is based on a CGAL kernel, but redefines the Sphere_3 and
with Sphere_3-functor that would not return a const& (or in that
case the custom kernel needs to define the appropriate functors
too...)
But so much breaks into this configuration, that it's out of scope
for this fix.
do not throw an error but return SMALLER
The collinearity check being already do in the predicate it
would be more expensive to do it also before calling the
predicate
## Summary of Changes
- Add a dummy point generator that is agnostic to the periodic domain's
geometry, allowing P3M3 to handle non-cubic domain.
- Add an example of P3M3 running on polyhedral domains.
- Fix a few issues in SMDS_3's tet soup reading relating to
non-manifoldness + general IO code speed improvements.
- Fix a few issues in P3M3's medit output and always duplicate facets to
reduce the quantity of non-manifoldness occurences.
- Fix an issue with including Mesh_3 headers before P3M3's.
- Fix periodic point projection (for Mesh_3 optimizers) badly computing
the projection direction
- Robustify a handful of P3M3 functions that were using intermediate
constructions rather than the <Point, Offset> API (which uses filtered
predicates and thus yields proper robustness)
- Misc minor code cleaning / modernization
ToDo:
- [x] Check if some medit IO issues are fixed
- [x] Add non-manifoldness flag to read_MEDIT
- [x] Fix value of orthosphere_radius_threshold
- [x] Check calls of insert_dummy_points() (use generic)
- [x] Check doc of P3M3 about cubic domains requirement
Not done:
- [ ] Fix sharp features for periodic polyhedral domains (problems due
to changing weights creating cover change...). Code:
https://gist.github.com/MaelRL/357c52dc04e16a162f13a3c6860a1398; WIP
diff: https://gist.github.com/MaelRL/f98809964acffbacb6d3f42793e2654e
## Release Management
* Affected package(s): `Mesh_3`, `P3M3`, `P3T3`, `SMDS3`
* Issue(s) solved (if any): Fix#6997, Fix#7214
* Feature/Small Feature (if any): TODO
* License and copyright ownership: no change
Adjusted after review
- usage of `Adaptable...Function` instead of `AdapatableFunctor (with... arguments)`
- corrected some incorrect / superfluous `}`
- Corrected some more redundant / missing backticks
- correctes a spelling error (Boolean_set_operations_2/doc/Boolean_set_operations_2/CGAL/Boolean_set_operations_2/Gps_default_dcel.h)