CGAL 6.2 - Meshing and Remeshing of Polygonal Meshes

Loading...
Searching...
No Matches
List of all members | Public Types | Public Member Functions
CGAL::Polygon_mesh_processing::Adaptive_sizing_field< PolygonMesh, VPMap > Class Template Reference
Reference Manual » Local Remeshing Algorithms

`#include <CGAL/Polygon_mesh_processing/Adaptive_sizing_field.h>`

## Definition

template<class PolygonMesh, class VPMap = typename boost::property_map<PolygonMesh, CGAL::vertex_point_t>::const_type>
class CGAL::Polygon_mesh_processing::Adaptive_sizing_field< PolygonMesh, VPMap >

A sizing field describing variable target mesh edge lengths for `CGAL::Polygon_mesh_processing::isotropic_remeshing()`.

This adaptive sizing field is a function of local discrete curvatures, computed using the `CGAL::Polygon_mesh_processing::interpolated_corrected_curvatures()` function.

Edges too long with respect to the local target edge length are split in two, while edges that are too short are collapsed.

This class depends on the Eigen library.

Is model of
  `PMPSizingField`

See also
  `isotropic_remeshing()`
  `Uniform_sizing_field`

Template Parameters

  PolygonMesh | model of `MutableFaceGraph` that has an internal property map for `CGAL::vertex_point_t`.

Examples
  PMP_Remeshing/isotropic_remeshing_with_sizing_example.cpp.

## Public Types
typedef Base::FT | FT
typedef Base::Point_3 | Point_3
typedef Base::face_descriptor | face_descriptor
typedef Base::halfedge_descriptor | halfedge_descriptor
typedef Base::vertex_descriptor | vertex_descriptor

## Public Member Functions
FT | at (const vertex_descriptor v, const PolygonMesh &) const
std::optional< FT > | is_too_long (const vertex_descriptor va, const vertex_descriptor vb, const PolygonMesh &) const
std::optional< FT > | is_too_short (const halfedge_descriptor h, const PolygonMesh &pmesh) const
Point_3 | split_placement (const halfedge_descriptor h, const PolygonMesh &pmesh) const
void | register_split_vertex (const vertex_descriptor v, const PolygonMesh &pmesh)

## Creation
template<typename FaceRange , typename NamedParameters = parameters::Default_named_parameters>
| Adaptive_sizing_field (const FT tol, const std::pair< FT, FT > &edge_len_min_max, const FaceRange &face_range, PolygonMesh &pmesh, const NamedParameters &np=parameters::default_values())
| Constructor.

## Constructor & Destructor Documentation

## ◆ Adaptive_sizing_field()

template<class PolygonMesh , class VPMap = typename boost::property_map<PolygonMesh, CGAL::vertex_point_t>::const_type>
template<typename FaceRange , typename NamedParameters = parameters::Default_named_parameters>

CGAL::Polygon_mesh_processing::Adaptive_sizing_field< PolygonMesh, VPMap >::Adaptive_sizing_field | ( | const FT | tol,
|  | const std::pair< FT, FT > & | edge_len_min_max,
|  | const FaceRange & | face_range,
|  | PolygonMesh & | pmesh,
|  | const NamedParameters & | np = `parameters::default_values()`
| ) |  |

Constructor.

Template Parameters

  FaceRange | range of `boost::graph_traits<PolygonMesh>::face_descriptor`, model of `Range`. Its iterator type is `ForwardIterator`.
  NamedParameters | a sequence of Named Parameters

Parameters

  tol | the error tolerance, used together with curvature to derive target edge length. Lower tolerance values will result in shorter mesh edges.
  edge_len_min_max | contains the bounds for minimum and maximum edge lengths
  face_range | the range of triangular faces defining one or several surface patches to be remeshed. It should be the same as the range of faces passed to `isotropic_remeshing()`.
  pmesh | a polygon mesh with triangulated surface patches to be remeshed. It should be the same mesh as the one passed to `isotropic_remeshing()`.
  np | an optional sequence of Named Parameters among the ones listed below

Optional Named Parameters

  a property map associating points to the vertices of `pmesh` Type: a class model of `ReadWritePropertyMap` with `boost::graph_traits<PolygonMesh>::vertex_descriptor` as key type and `Point_3` as value type Default: `boost::get(CGAL::vertex_point, pmesh)` Extra: If this parameter is omitted, an internal property map for `CGAL::vertex_point_t` must be available in `PolygonMesh`. |
  `ball_radius` parameter passed to `interpolated_corrected_curvatures()` |