CGAL 6.3 - Feature Graph
Loading...
Searching...
No Matches
CGAL::Feature_graph::Surface_sharpness_estimator Struct Reference

#include <CGAL/Feature_graph/Surface_sharpness_estimator.h>

Definition

Estimator that assign a sharpness value on elements of a surface.

Is model of
SharpnessEstimator

Types

typedef double Sharpness_number_type
 The type of the sharpness value.

Constructor

template<typename PolygonMesh>
 Surface_sharpness_estimator (const PolygonMesh &pmesh, const Sharpness_number_type &selection_threshold)
 Constructor that pre-computes the normals on the surface.

Estimator

template<typename DimensionTag, typename Descriptor, typename Domain>
Sharpness_number_type operator() (const Descriptor &element_descriptor, const Domain &domain) const
 returns the sharpness value of the surface element described by a type and a descriptor.

Constructor & Destructor Documentation

◆ Surface_sharpness_estimator()

template<typename PolygonMesh>
CGAL::Feature_graph::Surface_sharpness_estimator::Surface_sharpness_estimator ( const PolygonMesh & pmesh,
const Sharpness_number_type & selection_threshold )

Constructor that pre-computes the normals on the surface.

Template Parameters
PolygonMesha model of FaceListGraph that represents a surface.
FTa model of RealEmbeddable
Parameters
pmeshthe surface where the normals are evaluated.
selection_thresholda threshold on the sharpness value. Elements with a sharpness value lower than this threshold are considered flat and will be given a negative value.

Member Function Documentation

◆ operator()()

template<typename DimensionTag, typename Descriptor, typename Domain>
Sharpness_number_type CGAL::Feature_graph::Surface_sharpness_estimator::operator() ( const Descriptor & element_descriptor,
const Domain & domain ) const

returns the sharpness value of the surface element described by a type and a descriptor.

Template Parameters
DimensionTaga tag that represent the element type. Can be CGAL::Dimension_tag<0>, CGAL::Dimension_tag<1> or CGAL::Dimension_tag<2>
Descriptorthe type of descriptor used to identify the element to evaluate, which can be a vertex, an edge, or a facet according to the DimensionTag. If the domain is of type CGAL::Image_3, it is a std::size_t for element with dimension 0, 1 and 2. If the domain is a model of FaceListGraph, it is a vertex_descriptor (resp. halfedge_descriptor; face_descriptor ) for element with dimension 0 (resp. 1 ; 2).
Domainthe type of the surface where the element is embedded. Can be a CGAL::Image_3, or a model of FaceListGraph that represents a surface mesh.
Parameters
element_descriptorthe descriptor of the element on the surface.
domainthe domain that contains the elements.