CGAL 6.0 - Polygon Mesh Processing
Loading...
Searching...
No Matches
CGAL::Polygon_mesh_processing::Adaptive_sizing_field< PolygonMesh, VPMap > Class Template Reference

#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
PolygonMeshmodel of MutableFaceGraph that has an internal property map for CGAL::vertex_point_t.

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
FaceRangerange of boost::graph_traits<PolygonMesh>::face_descriptor, model of Range. Its iterator type is ForwardIterator.
NamedParametersa sequence of Named Parameters
Parameters
tolthe error tolerance, used together with curvature to derive target edge length. Lower tolerance values will result in shorter mesh edges.
edge_len_min_maxcontains the bounds for minimum and maximum edge lengths
face_rangethe 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().
pmesha polygon mesh with triangulated surface patches to be remeshed. It should be the same mesh as the one passed to isotropic_remeshing().
npan 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.