Doc modification of autorefine and Polygon mesh processing

This commit is contained in:
Léo Valque 2025-02-17 15:44:10 +01:00
parent d4e66753ad
commit ac7bf3c45f
4 changed files with 23 additions and 6 deletions

View File

@ -152085,3 +152085,16 @@ keywords = {polygonal surface mesh, Surface reconstruction, kinetic framework, s
year={2014},
publisher={Elsevier}
}
@unpublished{lazard:hal-04907149,
TITLE = {{Removing self-intersections in 3D meshes while preserving floating-point coordinates}},
AUTHOR = {Lazard, Sylvain and Valque, Leo},
URL = {https://inria.hal.science/hal-04907149},
NOTE = {working paper or preprint},
YEAR = {2025},
MONTH = Jan,
KEYWORDS = {Snap rounding ; mesh intersection ; robustness},
PDF = {https://inria.hal.science/hal-04907149v1/file/Snap-HAL.pdf},
HAL_ID = {hal-04907149},
HAL_VERSION = {v1},
}

View File

@ -4,7 +4,7 @@ namespace CGAL {
\anchor Chapter_PolygonMeshProcessing
\cgalAutoToc
\authors David Coeurjolly, Jaques-Olivier Lachaud, Konstantinos Katrioplas, Sébastien Loriot, Ivan Pađen, Mael Rouxel-Labbé, Hossam Saeed, Jane Tournois, and Ilker %O. Yaz
\authors David Coeurjolly, Jaques-Olivier Lachaud, Sylvain Lazard, Konstantinos Katrioplas, Sébastien Loriot, Ivan Pađen, Mael Rouxel-Labbé, Hossam Saeed, Jane Tournois, Léo Valque and Ilker %O. Yaz
\image html neptun_head.jpg
\image latex neptun_head.jpg
@ -889,8 +889,10 @@ would then also includes overlaps of duplicated points.
The function `CGAL::Polygon_mesh_processing::autorefine_triangle_soup()` provides a way to refine a triangle soup
using the intersections of the triangles from the soup. In particular, if some points are duplicated they will be
merged. Note that if a kernel with exact predicates but inexact constructions is used, some new self-intersections
might be introduced due to rounding issues of points coordinates.
To guarantee that the triangle soup is free from self-intersections, a kernel with exact constructions must be used.
might be introduced due to rounding issues of points coordinates. The `do_snap` option can be used to resolve this issue.
When set to `true`, it ensures the coordinates are rounded to fit in `double` with potential additional subdivisions,
preventing any self-intersections from occurring.
\subsection PMPRemoveCapsNeedles Removal of Almost Degenerate Triangle Faces
Triangle faces of a mesh made up of almost collinear points are badly shaped elements that
@ -1439,5 +1441,7 @@ used as a reference during the project.
The curvature-based sizing field version of isotropic remeshing was added by Ivan Pađen during GSoC 2023, under the supervision of Sébastien Loriot and Jane Tournois.
The `do_snap` option for autorefinement were implemented during 2025. This was implemented by Léo Valque and Sylvain Lazard. The implementation is based on \cgalCite{lazard:hal-04907149}.
*/
} /* namespace CGAL */

View File

@ -15,8 +15,6 @@
#include <iostream>
#include <CGAL/Polygon_mesh_processing/internal/snap_polygon_soup.h>
typedef CGAL::Exact_predicates_inexact_constructions_kernel Kernel;
typedef CGAL::Cartesian<double> Cartesian;
typedef Kernel::Point_3 Point;

View File

@ -1090,7 +1090,7 @@ bool autorefine_triangle_soup(PointRange& soup_points,
if(do_snap)
{
CGAL_PMP_AUTOREFINE_VERBOSE("Snap polygon soup");
return internal::snap_polygon_soup(soup_points, soup_triangles, parameters::point_map(pm).snap_grid_size(grid_size).number_of_iterations(nb_of_iteration).erase_all_duplicates(ead).concurrency_tag(Concurrency_tag()));
return internal::snap_polygon_soup(soup_points, soup_triangles, parameters::point_map(pm).visitor(visitor).snap_grid_size(grid_size).number_of_iterations(nb_of_iteration).erase_all_duplicates(ead).concurrency_tag(Concurrency_tag()));
}
constexpr bool parallel_execution = std::is_same_v<Parallel_tag, Concurrency_tag>;
@ -1760,4 +1760,6 @@ autorefine( TriangleMesh& tm,
#endif
#endif
#include <CGAL/Polygon_mesh_processing/internal/snap_polygon_soup.h>
#endif // CGAL_POLYGON_MESH_PROCESSING_AUTOREFINEMENT_H