From e37f5688abcc2970bafbf8b8b43059cc507d711f Mon Sep 17 00:00:00 2001 From: hoskillua <47090776+hoskillua@users.noreply.github.com> Date: Tue, 7 Nov 2023 11:06:50 +0300 Subject: [PATCH] reference documentation --- .../include/CGAL/license/gpl_package_list.txt | 1 + .../PackageDescription.txt | 10 +++- .../CGAL/Polygon_mesh_processing/acvd/acvd.h | 46 ++++++++++++++++--- 3 files changed, 50 insertions(+), 7 deletions(-) diff --git a/Installation/include/CGAL/license/gpl_package_list.txt b/Installation/include/CGAL/license/gpl_package_list.txt index cd274cf329b..492ce5de149 100644 --- a/Installation/include/CGAL/license/gpl_package_list.txt +++ b/Installation/include/CGAL/license/gpl_package_list.txt @@ -60,6 +60,7 @@ Polygon_mesh_processing/geometric_repair Polygon Mesh Processing - Geometric Rep Polygon_mesh_processing/miscellaneous Polygon Mesh Processing - Miscellaneous Polygon_mesh_processing/detect_features Polygon Mesh Processing - Feature Detection Polygon_mesh_processing/collision_detection Polygon Mesh Processing - Collision Detection +Polygon_mesh_processing/remeshing Polygon Mesh Processing - ACVD Simplification and Remeshing Polyhedron 3D Polyhedral Surface Polyline_simplification_2 2D Polyline Simplification Polytope_distance_d Optimal Distances diff --git a/Polygon_mesh_processing/doc/Polygon_mesh_processing/PackageDescription.txt b/Polygon_mesh_processing/doc/Polygon_mesh_processing/PackageDescription.txt index b17c41399d0..caf2068db41 100644 --- a/Polygon_mesh_processing/doc/Polygon_mesh_processing/PackageDescription.txt +++ b/Polygon_mesh_processing/doc/Polygon_mesh_processing/PackageDescription.txt @@ -12,6 +12,10 @@ /// Functions to fill holes given as a range of halfedges or as range of points. /// \ingroup PkgPolygonMeshProcessingRef +/// \defgroup PMP_acvd_grp ACVD Simplification +/// Functions to simplify and remesh triangle meshes based on Approximated Centroidal Voronoi Diagrams (ACVD) with a variety of metrics. +/// \ingroup PkgPolygonMeshProcessingRef + /// \defgroup PMP_meshing_grp Meshing /// Functions to triangulate faces, and to refine and fair regions of a polygon mesh. /// \ingroup PkgPolygonMeshProcessingRef @@ -75,7 +79,7 @@ \cgalPkgPicture{hole_filling_ico.png} \cgalPkgSummaryBegin -\cgalPkgAuthors{Sébastien Loriot, Mael Rouxel-Labbé, Jane Tournois, and Ilker %O. Yaz} +\cgalPkgAuthors{Sébastien Loriot, Mael Rouxel-Labbé, Hossam Saeed, Jane Tournois, Sébastien Valette, and Ilker %O. Yaz} \cgalPkgDesc{This package provides a collection of methods and classes for polygon mesh processing, ranging from basic operations on simplices, to complex geometry processing algorithms such as Boolean operations, remeshing, repairing, collision and intersection detection, and more.} @@ -130,6 +134,10 @@ The page \ref bgl_namedparameters "Named Parameters" describes their usage. - `CGAL::Polygon_mesh_processing::smooth_shape()` - `CGAL::Polygon_mesh_processing::random_perturbation()` +\cgalCRPSection{ACVD Simplification Functions} +- \link PMP_acvd_grp `CGAL::Polygon_mesh_processing::acvd_isotropic_simplification()` \endlink +- \link PMP_acvd_grp `CGAL::Polygon_mesh_processing::acvd_isotropic_simplification_polygon_soup()` \endlink + \cgalCRPSection{Orientation Functions} - `CGAL::Polygon_mesh_processing::orient_polygon_soup()` - `CGAL::Polygon_mesh_processing::orient()` diff --git a/Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/acvd/acvd.h b/Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/acvd/acvd.h index ff7e94f12c7..fbd72c3ede2 100644 --- a/Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/acvd/acvd.h +++ b/Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/acvd/acvd.h @@ -158,10 +158,6 @@ void upsample_subdivision_property(PolygonMesh& pmesh, const NamedParameters& np // unordered_set of old vertices std::unordered_set old_vertices; -// // make a copy of the property map -// typename VPCDM vpcd_map_new = get(CGAL::dynamic_vertex_property_t>(), pmesh); - - bool curvatures_available = !is_default_parameter::value; unsigned int step = choose_parameter(get_parameter(np, internal_np::number_of_iterations), 1); @@ -703,7 +699,7 @@ std::pair< } // namespace internal /** -* \ingroup ACVD_grp +* \ingroup PMP_acvd_grp * * Performs uniform (isotropic) centroidal voronoi diagram simplification on a polygon mesh. * This can also be used for remeshing by setting the number of clusters to the desired number of vertices. @@ -718,6 +714,23 @@ std::pair< * `GT` stands for the type of the object provided to the named parameter `geom_traits()`. * * \cgalNamedParamsBegin +* +* \cgalParamNBegin{vertex_principal_curvatures_and_directions_map} +* \cgalParamDescription{a property map associating principal curvatures and directions to the vertices of `pmesh`, used for adaptive clustering.} +* \cgalParamType{a class model of `ReadWritePropertyMap` with +* `boost::graph_traits::%vertex_descriptor` +* as key type and `Principal_curvatures_and_directions` as value type.} +* \cgalParamExtra{If this parameter is omitted, but `gradation_factor` is not (and is > 0), an internal property map +* will be created and curvature values will be computed.} +* \cgalParamNEnd +* +* \cgalParamNBegin{gradation_factor} +* \cgalParamDescription{a factor used to gradate the weights of the vertices based on their curvature values.} +* \cgalParamType{`GT::FT`} +* \cgalParamDefault{0} +* \cgalParamExtra{If this parameter is omitted, no adaptive clustering will be performed.} +* \cgalParamNEnd +* * \cgalParamNBegin{vertex_point_map} * \cgalParamDescription{a property map associating points to the vertices of `pmesh`.} * \cgalParamType{a class model of `ReadablePropertyMap` with @@ -737,6 +750,8 @@ std::pair< * * \cgalNamedParamsEnd * +* @pre only triangle meshes are supported for now +* @return a pair of vectors of points and polygons representing the simplified mesh as a polygon soup */ template ::%vertex_descriptor` +* as key type and `Principal_curvatures_and_directions` as value type.} +* \cgalParamExtra{If this parameter is omitted, but `gradation_factor` is not (and is > 0), an internal property map +* will be created and curvature values will be computed.} +* \cgalParamNEnd +* +* \cgalParamNBegin{gradation_factor} +* \cgalParamDescription{a factor used to gradate the weights of the vertices based on their curvature values.} +* \cgalParamType{`GT::FT`} +* \cgalParamDefault{0} +* \cgalParamExtra{If this parameter is omitted, no adaptive clustering will be performed.} +* \cgalParamNEnd +* * \cgalParamNBegin{vertex_point_map} * \cgalParamDescription{a property map associating points to the vertices of `pmesh`.} * \cgalParamType{a class model of `ReadablePropertyMap` with @@ -792,6 +824,8 @@ std::pair< * * \cgalNamedParamsEnd * +* @pre only triangle meshes are supported for now +* @return the simplified mesh as a PolygonMesh */ template