New in CGAL: Interpolated Corrected Curvature Measures and Isotropic Remeshing with Sizing Field

CGAL/cgal

New in CGAL: Interpolated Corrected Curvature Measures and Isotropic Remeshing with Sizing Field


The CGAL project has been participating in 12 editions of the Google Summer of Code internship program. It is a great opportunity to welcome new members to our community, both contributors and mentors. This post introduces two contributions that have been incorporated into the CGAL library. First, Interpolated Corrected Curvature Measures from GSoC'22, by Hossam Mohamed Seed mentored by David Coeurjolly, Jacques-Olivier Lachaud, and Sébastien Loriot. Second, Isotropic Remeshing with Sizing Field from GSoC'23 by Ivan Pađen mentored by Jane Tournois and Sébastien Loriot. We present them together, as the second one relies on the first.

Interpolated Corrected Curvature Measures

Based on the article Lachaud, J.-O., Romon, P., Thibert, B. and Coeurjolly, D. (2020), Interpolated corrected curvature measures for polygonal surfaces. Computer Graphics Forum, 39: 41-54, the Polygon Mesh Processing package of CGAL now contains the function interpolated_corrected_curvatures(). This function can compute the Gaussian curvature, the mean curvature, and the principal curvatures and directions at every vertex (or a single one) of a surface mesh. An additional parameter, the ball radius, is provided so that the curvature estimation is summed over the neighborhood within a ball centered at each vertex (rather than using its 1-ring neighborhood) to accommodate for possible noise in the positions of vertices of the surface mesh. Additionally, if the polygonal mesh has a user-prescribed normal vector field, as opposed to only relying on the geometric information (e.g., post-processed normal vectors, normal vectors from normal maps), the corrected curvature measures can adapt accordingly.



Mean curvature, Gaussian curvature, Minimal principal curvature directions and Maximal principal curvature directions on a mesh.


Isotropic Remeshing with Sizing Field

Almost since the introduction of the Polygon Mesh Processing package in CGAL, the function isotropic_remeshing() has provided a way to isotropically and uniformly remesh a triangle mesh, given a target edge length. This implementation includes the preservation of (sharp) feature lines, as well as the possibility to only remesh a portion of the mesh. Extending this work, a concept of sizing field has been incorporated to the function, and a first model has been implemented following the article Dunyach, Marion, et al. "Adaptive remeshing for real-time mesh deformation." Eurographics 2013. The Eurographics Association, 2013. and using the Interpolated Corrected Curvature Measures function for curvature computation.


Input Mesh (left), Curvature based isotropic remeshing (right).




Input Mesh (left), Curvature based isotropic remeshing (right).

Status

All these additions already are integrated in CGAL's master branch on the CGAL GitHub repository, and will be officially released in the upcoming version of CGAL, CGAL 6.0, scheduled for mid 2024.

Documentation of the package Polygon Mesh Processing
Documentation section of the master branch about interpolated_corrected_curvatures()
Documentation section of the master branch about isotropic_remeshing()
CGAL master branch on GitHub