Documentation of plane_plus_line_policies

This commit is contained in:
lvalque 2025-09-02 18:35:15 +02:00
parent 32973ffa12
commit 5c7abdd617
7 changed files with 36 additions and 6 deletions

View File

@ -152118,3 +152118,15 @@ keywords = {polygonal surface mesh, Surface reconstruction, kinetic framework, s
pages={11},
year={2015}
}
@article{10.1111:cgf.70184
,journal = {Computer Graphics Forum},
title = {{Controlling Quadric Error Simplification with Line Quadrics}},
author = {Liu, Hsueh-Ti Derek and Rahimzadeh, Mehdi and Zordan, Victor},
year = {2025},
publisher = {The Eurographics Association and John Wiley & Sons Ltd.},
ISSN = {1467-8659},
DOI = {10.1111/cgf.70184},
url = {https://doi.org/10.1111/cgf.70184},
year={2025}
}

View File

@ -25,6 +25,7 @@ These policies depend on the third party \ref thirdpartyEigen library.
\sa `GarlandHeckbert_probabilistic_plane_policies`
\sa `GarlandHeckbert_triangle_policies`
\sa `GarlandHeckbert_probabilistic_triangle_policies`
\sa `GarlandHeckbert_plane_plus_line_policies`
*/
template <typename TriangleMesh, typename GeomTraits>
class GarlandHeckbert_plane_policies

View File

@ -4,9 +4,9 @@ namespace Surface_mesh_simplification {
/*!
\ingroup PkgSurfaceMeshSimplificationRef
\deprecated This class is deprecated since \cgal 5.5 and the introduction of variations
of Garland-Heckbert policies (Section \ref SurfaceMeshSimplificationGarlandHeckbertStrategy).
The class `GarlandHeckbert_plane_policies` is the modern equivalent to this class.
since \cgal 6.2, this class is an alias for the current state of the art of Garland-Heckbert policies
(Section \ref SurfaceMeshSimplificationGarlandHeckbertStrategy).
It is currently an alias of `GarlandHeckbert_plane_plus_line_policies`.
The class `GarlandHeckbert_policies` regroups the cost and placement policies
based on the Garland-Heckbert strategy (Section \ref SurfaceMeshSimplificationGarlandHeckbertStrategy),
@ -23,6 +23,12 @@ such as `Constrained_placement` or `Bounded_normal_change_placement`.
These policies depend on the third party \ref thirdpartyEigen library.
\sa `GarlandHeckbert_plane_policies`
\sa `GarlandHeckbert_probabilistic_plane_policies`
\sa `GarlandHeckbert_triangle_policies`
\sa `GarlandHeckbert_probabilistic_triangle_policies`
\sa `GarlandHeckbert_plane_plus_line_policies`
*/
template <typename TriangleMesh, typename GeomTraits>
class GarlandHeckbert_policies

View File

@ -26,6 +26,7 @@ These policies depend on the third party \ref thirdpartyEigen library.
\sa `GarlandHeckbert_plane_policies`
\sa `GarlandHeckbert_triangle_policies`
\sa `GarlandHeckbert_probabilistic_triangle_policies`
\sa `GarlandHeckbert_plane_plus_line_policies`
*/
template <typename TriangleMesh, typename GeomTraits>
class GarlandHeckbert_probabilistic_plane_policies

View File

@ -26,6 +26,7 @@ These policies depend on the third party \ref thirdpartyEigen library.
\sa `GarlandHeckbert_plane_policies`
\sa `GarlandHeckbert_probabilistic_plane_policies`
\sa `GarlandHeckbert_triangle_policies`
\sa `GarlandHeckbert_plane_plus_line_policies`
*/
template <typename TriangleMesh, typename GeomTraits>
class GarlandHeckbert_probabilistic_triangle_policies

View File

@ -49,7 +49,8 @@
- `CGAL::Surface_mesh_simplification::GarlandHeckbert_probabilistic_plane_policies<TriangleMesh, GeomTraits>`
- `CGAL::Surface_mesh_simplification::GarlandHeckbert_triangle_policies<TriangleMesh, GeomTraits>`
- `CGAL::Surface_mesh_simplification::GarlandHeckbert_probabilistic_triangle_policies<TriangleMesh, GeomTraits>`
- `CGAL::Surface_mesh_simplification::GarlandHeckbert_policies<TriangleMesh, GeomTraits>` (deprecated)
- `CGAL::Surface_mesh_simplification::GarlandHeckbert_plane_plus_line_policies<TriangleMesh, GeomTraits>`
- `CGAL::Surface_mesh_simplification::GarlandHeckbert_policies<TriangleMesh, GeomTraits>`
\cgalCRPSection{Policy Enhancements}
- `CGAL::Surface_mesh_simplification::Constrained_placement<Placement, TriangleMesh>`

View File

@ -188,6 +188,12 @@ face normals). This variance naturally deteriorates the tightness of the result,
hand it enables creating more uniform triangulations and the approach is more tolerant to noise,
while still maintaining feature sensitivity.
Another extension of the GarlandHeckbert approach was introduced by Liu et al. \cgalCite{10.1111:cgf.70184}, who
proposed the concept of line quadrics. In these quadrics, the cost is defined as the distance to the line passing
through the input vertices and aligned with their normals. These line quadrics are combined with the traditional
plane quadrics, but with a small weight (0.01 by default), producing more uniform triangulations while preserving
the tightness of the approximation.
\cgalFigureAnchor{SurfaceMeshSimplification_GH}
<center>
<img src="sappho.jpg" style="max-width:70%;"/>
@ -400,8 +406,8 @@ steps of the simplification algorithm.
Each Garland-Heckbert simplification strategy is implemented with a single class that regroups
both the cost and the placement policies, which must be used together as they share vertex quadric data.
The classic strategy of using plane-based quadric error metrics is implemented with the class
`Surface_mesh_simplification::GarlandHeckbert_plane_policies`.
The state of the art strategy of using plane-based quadric error metrics plus line-base quadric error metrix is implemented with the class
`Surface_mesh_simplification::GarlandHeckbert_policies`.
Although both policies must be used together, it is still possible to wrap either policy
using behavior modifiers such as `Surface_mesh_simplification::Bounded_normal_change_placement`.
@ -420,5 +426,7 @@ The implementation of the Garland-Heckbert simplification policies is the result
of Baskın Şenbaşlar (Google Summer of Code 2019), and Julian Komaromy (Google Summer of Code 2021)
They both were mentored by Mael Rouxel-Labbé, who also contributed to the code and to the documentation.
Valque Léo added the `GarlandHeckbert_plane_plus_line_policies` functionality in \cgal 6.2.
*/
} /* namespace CGAL */