\( \newcommand{\E}{\mathrm{E}} \) \( \newcommand{\A}{\mathrm{A}} \) \( \newcommand{\R}{\mathrm{R}} \) \( \newcommand{\N}{\mathrm{N}} \) \( \newcommand{\Q}{\mathrm{Q}} \) \( \newcommand{\Z}{\mathrm{Z}} \) \( \def\ccSum #1#2#3{ \sum_{#1}^{#2}{#3} } \def\ccProd #1#2#3{ \sum_{#1}^{#2}{#3} }\)
CGAL 5.0.1 - Approximation of Ridges and Umbilics on Triangulated Surface Meshes
CGAL::Ridge_approximation< TriangleMesh, VertexFTMap, VertexVectorMap > Class Template Reference

#include <CGAL/Ridges.h>

Definition

The class Ridge_approximation computes the approximation of ridges of a triangular polyhedral surface.

Template Parameters
TriangleMeshis the surface type. In the following let K be Kernel_traits<boost::property_traits<TriangleMesh,CGAL::vertex_point_t>::value_type>::Kernel
VertexFTMapA property map with boost::graph_traits<TriangleMesh>::vertex_descriptor as key type and K::FT as value type.
VertexVectorMapA property map with boost::graph_traits<TriangleMesh>::vertex_descriptor as key type and K::Vector_3 as value type.
Precondition
(checked at compile time)
The types K::FT and boost::property_traits<VertexFTMap>::value_type must coincide.
The types K::Vector_3 and boost::property_traits<VertexVectorMap>::value_type must coincide.
The types boost::graph_traits<TriangleMesh>::vertex_descriptor, andboost::property_traits<VertexFTMap>::key_type, and boost::property_traits<VertexVectorMap>::key_type must coincide.
See also
Ridge_line

Creation

 Ridge_approximation (const TriangleMesh &tm, VertexFTMap vertex_k1_pm, VertexFTMap vertex_k2_pm, VertexFTMap vertex_b0_pm, VertexFTMap vertex_b3_pm, VertexVectorMap vertex_d1_pm, VertexVectorMap vertex_d2_pm, VertexFTMap vertex_P1_pm, VertexFTMap vertex_P2_pm)
 The two last property maps may not be used if computations are performed with the parameter Ridges_order_3, in which case these property maps shall be initialized with their default constructors. More...
 
template<class OutputIterator >
OutputIterator compute_max_ridges (OutputIterator it, Ridge_order ord=Ridge_order_3)
 Outputs ridges of types MAX_ELLIPTIC_RIDGE and MAX_HYPERBOLIC_RIDGE. More...
 
template<class OutputIterator >
OutputIterator compute_min_ridges (OutputIterator it, Ridge_order ord=Ridge_order_3)
 Outputs ridges of types MIN_ELLIPTIC_RIDGE and MIN_HYPERBOLIC_RIDGE. More...
 
template<class OutputIterator >
OutputIterator compute_crest_ridges (OutputIterator it, Ridge_order ord=Ridge_order_3)
 Outputs ridges of types MAX_CREST_RIDGE and MIN_CREST_RIDGE. More...
 

Constructor & Destructor Documentation

◆ Ridge_approximation()

template<typename TriangleMesh , typename VertexFTMap , typename VertexVectorMap >
CGAL::Ridge_approximation< TriangleMesh, VertexFTMap, VertexVectorMap >::Ridge_approximation ( const TriangleMesh &  tm,
VertexFTMap  vertex_k1_pm,
VertexFTMap  vertex_k2_pm,
VertexFTMap  vertex_b0_pm,
VertexFTMap  vertex_b3_pm,
VertexVectorMap  vertex_d1_pm,
VertexVectorMap  vertex_d2_pm,
VertexFTMap  vertex_P1_pm,
VertexFTMap  vertex_P2_pm 
)

The two last property maps may not be used if computations are performed with the parameter Ridges_order_3, in which case these property maps shall be initialized with their default constructors.

Parameters
tmthe triangle mesh
vertex_k1_pmmaximal principal curvatures
vertex_k2_pmminimal principal curvatures
vertex_b0_pmthird order extremalities
vertex_b3_pmthird order extremalities
vertex_d1_pmmaximal principal directions of curvature
vertex_d2_pmminimal principal directions of curvature
vertex_P1_pmfourth order quantities
vertex_P2_pmfourth order quantities

Member Function Documentation

◆ compute_crest_ridges()

template<typename TriangleMesh , typename VertexFTMap , typename VertexVectorMap >
template<class OutputIterator >
OutputIterator CGAL::Ridge_approximation< TriangleMesh, VertexFTMap, VertexVectorMap >::compute_crest_ridges ( OutputIterator  it,
Ridge_order  ord = Ridge_order_3 
)

Outputs ridges of types MAX_CREST_RIDGE and MIN_CREST_RIDGE.

Template Parameters
OutputIteratoris an output iterator with value type Ridge_line*.

◆ compute_max_ridges()

template<typename TriangleMesh , typename VertexFTMap , typename VertexVectorMap >
template<class OutputIterator >
OutputIterator CGAL::Ridge_approximation< TriangleMesh, VertexFTMap, VertexVectorMap >::compute_max_ridges ( OutputIterator  it,
Ridge_order  ord = Ridge_order_3 
)

Outputs ridges of types MAX_ELLIPTIC_RIDGE and MAX_HYPERBOLIC_RIDGE.

Template Parameters
OutputIteratoran output iterator wìth value type Ridge_line*.

◆ compute_min_ridges()

template<typename TriangleMesh , typename VertexFTMap , typename VertexVectorMap >
template<class OutputIterator >
OutputIterator CGAL::Ridge_approximation< TriangleMesh, VertexFTMap, VertexVectorMap >::compute_min_ridges ( OutputIterator  it,
Ridge_order  ord = Ridge_order_3 
)

Outputs ridges of types MIN_ELLIPTIC_RIDGE and MIN_HYPERBOLIC_RIDGE.

Template Parameters
OutputIteratoran output iterator with value type Ridge_line*.