Merge pull request #7489 from afabri/PMP-document_overload-GF

PMP: Document overload of angle_and_area_smoothing()
This commit is contained in:
Laurent Rineau 2023-06-05 15:09:56 +02:00
commit e697bb386d
1 changed files with 23 additions and 3 deletions

View File

@ -31,9 +31,9 @@ namespace Polygon_mesh_processing {
/*! /*!
* \ingroup PMP_meshing_grp * \ingroup PMP_meshing_grp
* *
* \short smooths a triangulated region of a polygon mesh. * \brief smooths a triangulated region of a polygon mesh.
* *
* This function attempts to make the triangle angle and area distributions as uniform as possible * This function aims to make the triangle angle and area distributions as uniform as possible
* by moving (non-constrained) vertices. * by moving (non-constrained) vertices.
* *
* Angle-based smoothing does not change the combinatorial information of the mesh. Area-based smoothing * Angle-based smoothing does not change the combinatorial information of the mesh. Area-based smoothing
@ -329,13 +329,33 @@ void angle_and_area_smoothing(const FaceRange& faces,
} }
} }
///\cond SKIP_IN_MANUAL /*!
* \ingroup PMP_meshing_grp
*
* \brief smooths a polygon mesh.
*
* This function aims to make the triangle angle and area distributions as uniform as possible
* by moving (non-constrained) vertices.
*
* Angle-based smoothing does not change the combinatorial information of the mesh. Area-based smoothing
* might change the combinatorial information, unless specified otherwise. It is also possible
* to make the smoothing algorithm "safer" by rejecting moves that, when applied, would worsen the
* quality of the mesh, e.g. that would decrease the value of the smallest angle around a vertex or
* create self-intersections.
*
* Optionally, the points are reprojected after each iteration.
*
* See the overload which takes a face range as additonal parameter for a comprehensive description
* of the parameters.
*/
template <typename TriangleMesh, typename CGAL_NP_TEMPLATE_PARAMETERS> template <typename TriangleMesh, typename CGAL_NP_TEMPLATE_PARAMETERS>
void angle_and_area_smoothing(TriangleMesh& tmesh, const CGAL_NP_CLASS& np = parameters::default_values()) void angle_and_area_smoothing(TriangleMesh& tmesh, const CGAL_NP_CLASS& np = parameters::default_values())
{ {
angle_and_area_smoothing(faces(tmesh), tmesh, np); angle_and_area_smoothing(faces(tmesh), tmesh, np);
} }
///\cond SKIP_IN_MANUAL
template<typename TriangleMesh, typename GeomTraits, typename Stream> template<typename TriangleMesh, typename GeomTraits, typename Stream>
void angles_evaluation(TriangleMesh& tmesh, GeomTraits traits, Stream& output) void angles_evaluation(TriangleMesh& tmesh, GeomTraits traits, Stream& output)
{ {