P3M3: Non-cubic domains, fixes, improvements (#7062)

## 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
This commit is contained in:
Sebastien Loriot
2023-05-30 19:13:45 +02:00
committed by GitHub
60 changed files with 2470 additions and 980 deletions
@@ -50,7 +50,7 @@ do
fi
PKG_DIFF=$(grep -Fxv -f "$pkg_path/package_info/$pkg/dependencies" "$pkg_path/package_info/$pkg/dependencies.old" || true)
if [ -n "$PKG_DIFF" ]; then
TOTAL_RES="Differences in $pkg:\n$PKG_DIFF\mhave disappeared.\n$TOTAL_RES"
TOTAL_RES="Differences in $pkg:\n$PKG_DIFF\nhave disappeared.\n$TOTAL_RES"
fi
if [ -f $pkg_path/package_info/$pkg/dependencies.old ]; then
rm $pkg_path/package_info/$pkg/dependencies.old