CGAL 6.2 - Meshing and Remeshing of Polygonal Meshes
Loading...
Searching...
No Matches
Global Remeshing Algorithms

Functions to generate meshes using global approaches that completely overhaul the mesh.

Functions

template<typename TriangleMesh , typename TriangleMeshOut = TriangleMesh, typename NamedParameters = parameters::Default_named_parameters>
TriangleMeshOut CGAL::Polygon_mesh_processing::surface_Delaunay_remeshing (const TriangleMesh &tmesh, const NamedParameters &np=parameters::default_values())
 remeshes a surface triangle mesh following the Delaunay refinement algorithm described in the 3D Mesh Generation package.
 

Function Documentation

◆ surface_Delaunay_remeshing()

template<typename TriangleMesh , typename TriangleMeshOut = TriangleMesh, typename NamedParameters = parameters::Default_named_parameters>
TriangleMeshOut CGAL::Polygon_mesh_processing::surface_Delaunay_remeshing ( const TriangleMesh &  tmesh,
const NamedParameters &  np = parameters::default_values() 
)

#include <CGAL/Polygon_mesh_processing/surface_Delaunay_remeshing.h>

remeshes a surface triangle mesh following the Delaunay refinement algorithm described in the 3D Mesh Generation package.

Template Parameters
TriangleMeshmodel of FaceListGraph
TriangleMeshOutmodel of FaceListGraph, model of DefaultConstructible, with an internal property map for CGAL::vertex_point_t with geom_traits::Point_3 as value type.
NamedParametersa sequence of Named Parameters
Parameters
tmesha triangle surface mesh
npan optional sequence of Named Parameters among the ones listed below
Returns
the triangulated surface mesh following the requirements of the input meshing criteria
Optional Named Parameters
  • an instance of a geometric traits class
  • Type: a class model of Kernel
  • Default: a CGAL Kernel deduced from the point type, using CGAL::Kernel_traits
  • Extra: The geometric traits class must be compatible with the vertex point type.
  • Extra: Exact construction kernels are not supported by this function.

  • a property map associating points to the vertices of tmesh
  • Type: a class model of ReadablePropertyMap with boost::graph_traits<TriangleMesh>::vertex_descriptor as key type and Point_3 as value type
  • Default: boost::get(CGAL::vertex_point, tmesh)
  • Extra: If this parameter is omitted, an internal property map for CGAL::vertex_point_t must be available in TriangleMesh.

  • the dihedral angle bound (in degrees) for detection of feature edges
  • Type: A number type FT, either deduced from the geom_traits Named Parameters if provided, or from the geometric traits class deduced from the point property map of TriangleMesh.
  • Default: 60
  • Extra: Border edges are protected, along with detected sharp edges.
  • Extra: If the given value is 180, only the border edges are protected.

  • a property map containing the constrained-or-not status of each edge of tmesh
  • Type: a class model of ReadWritePropertyMap with boost::graph_traits<TriangleMesh>::edge_descriptor as key type and bool as value type. It must be default constructible.
  • Default: a default property map where no edge is constrained

  • a set of polylines that will be resampled and appear as protected polyline constraints in the output mesh
  • Type: a class model of Range, of which value type is model of MeshPolyline_3
  • Default: an empty range of segments

  • If true, the feature edges of the input are re-sampled and present in the output mesh. If edge_is_constrained_map is provided, the corresponding "constrained" edges are protected. Else, if polyline_constraints is provided, the corresponding polylines are protected. Otherwise, features_angle_bound is used, and the edges that form a sharp dihedral angle with respect to that bound are protected.
  • Type: Boolean
  • Default: false
  • Extra: Note that only one of these three input parameters is taken into account, in the priority order listed above.

  • a property map with the patch id's associated to the faces of faces
  • Type: a class model of ReadWritePropertyMap with boost::graph_traits<TriangleMesh>::face_descriptor as key type and the desired property, model of CopyConstructible and LessThanComparable, as value type.
  • Default: 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.
  • Extra: The map is updated during the remeshing process while new faces are created.

  • A scalar field (resp. a constant) providing a space-varying (resp. a uniform) upper bound for the lengths of curve edges. This parameter has to be set to a positive value when 1-dimensional features protection is used (when protect_constraints is true).
  • Type: A number type FT model of the concept Field, or a model of the concept MeshDomainField_3
  • Default: (std::numeric_limits<FT>::max)(), with FT a number type, either deduced from the geom_traits Named Parameters if provided, or from the geometric traits class deduced from the point property map of TriangleMesh.

  • A scalar field (resp. a constant) describing a space-varying (resp. a uniform) upper bound for the radii of the surface Delaunay balls.
  • Type: A number type FT model of the concept Field, or a model of the concept MeshDomainField_3
  • Default: 0.

  • A lower bound for the angles (in degrees) of the surface mesh facets.
  • Type: A number type FT model of the concept Field
  • Default: 0.

  • A scalar field (resp. a constant) describing a space-varying (resp. a uniform) upper bound for the distance between the facet circumcenter and the center of its surface Delaunay ball.
  • Type: A number type FT model of the concept Field, or a model of the concept MeshDomainField_3
  • Default: 0.

Precondition
tmesh must be free of self-intersections.
Note
Only one of the named parameters defining constrained edges is taken into account for meshing, in the following priority order : edge_is_constrained_map, polyline_constraints, and features_angle_bound. The selected edges are protected only if protect_constraints is set to true.
Examples
Polygon_mesh_processing/delaunay_remeshing_example.cpp.