diff --git a/Polygon_mesh_processing/doc/Polygon_mesh_processing/NamedParameters.txt b/Polygon_mesh_processing/doc/Polygon_mesh_processing/NamedParameters.txt index 0357b5608e8..e2f59900673 100644 --- a/Polygon_mesh_processing/doc/Polygon_mesh_processing/NamedParameters.txt +++ b/Polygon_mesh_processing/doc/Polygon_mesh_processing/NamedParameters.txt @@ -161,7 +161,8 @@ a default property map where no vertex is constrained is provided. \cgalNPEnd \cgalNPBegin{protect_constraints} \anchor PMP_protect_constraints -enables the protection of constraints listed by \ref PMP_edge_is_constrained_map "edge_is_constrained_map" +enables the protection of constraints listed by \ref PMP_edge_is_constrained_map +"edge_is_constrained_map" and boundary edges during isotropic remeshing. If `true`, constraint edges cannot be modified at all during the remeshing process.\n \b Type : `bool` \n @@ -183,6 +184,32 @@ a default property map where each face is associated with the ID of the connected component it belongs to. Connected components are computed with respect to the constrained edges listed in the property map `edge_is_constrained_map` +\cgalNPEnd + +\cgalNPBegin{number_of_relaxation_steps} \anchor PMP_number_of_relaxation_steps +the number of iterations of tangential relaxation that are performed at each iteration +of the isotropic remeshing process. A larger number of relaxation steps lead to +a more isotropic mesh. +\n +\b Type : \c unsigned \c int \n +\b Default value is `1` +\cgalNPEnd + +\cgalNPBegin{relax_constraints} \anchor PMP_relax_constraints enables the tangential relaxation step +of the isotropic remeshing algorithm to be performed on vertices that are endpoints +of constraints listed by \ref PMP_edge_is_constrained_map "edge_is_constrained_map", +and boundary edges. +The vertices move along the constrained polylines they belong to. +Corners (i.e. vertices incident to more than 2 constraints, and vertices listed in +\ref PMP_vertex_is_constrained_map "vertex_is_constrained_map") are not allowed +to move at all. +If \ref PMP_protect_constraints "protect_constraints" is +set to `true`, this parameter is ignored. +\n +\b Type : `bool` \n +\b Default value is `true` + + \cgalNPTableEnd */ diff --git a/Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/remesh.h b/Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/remesh.h index d2a3c38bbc9..b578f648d8c 100644 --- a/Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/remesh.h +++ b/Polygon_mesh_processing/include/CGAL/Polygon_mesh_processing/remesh.h @@ -38,7 +38,7 @@ namespace Polygon_mesh_processing { * \ingroup PMP_meshing_grp * @brief remeshes a triangulated region of a polygon mesh. * This operation sequentially performs edge splits, edge collapses, -* edge flips, Laplacian smoothing and projection to the initial surface +* edge flips, tangential relaxation and projection to the initial surface * to generate a smooth mesh with a prescribed edge length. * * @tparam PolygonMesh model of `MutableFaceGraph` that @@ -90,12 +90,18 @@ namespace Polygon_mesh_processing { * \cgalParamBegin{face_patch_map} a property map with the patch id's associated to the faces of `faces`. Instance of a class model of `ReadWritePropertyMap`. It gets updated during the remeshing process while new faces are created. +* \cgalParamEnd +* \cgalParamBegin{number_of_relaxation_steps} the number of iterations of tangential +* relaxation that are performed at each iteration of the remeshing process +* \cgalParamEnd +* \cgalParamBegin{relax_constraints} If `true`, the end vertices of the edges set as +* constrained in `edge_is_constrained_map` and boundary edges move along the +* constrained polylines they belong to. +* \cgalParamEnd * \cgalNamedParamsEnd * * @sa `split_long_edges()` * -*@todo document `1d_smoothing` -*@todo document `number_of_relaxation_steps` *@todo add possibility to provide a functor that projects to a prescribed surface */ template