\( \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 4.8 - Approximation of Ridges and Umbilics on Triangulated Surface Meshes

All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Groups Pages
List of all members
CGAL::Ridge_approximation< TriangleMesh, VertexFTMap, VertexVectorMap > Class Template Reference
Approximation of Ridges and Umbilics on Triangulated Surface Meshes Reference

`#include <CGAL/Ridges.h>`

## Definition

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

Template Parameters

  TriangleMesh | is the surface type. In the following let `K` be `Kernel_traits<boost::property_traits<TriangleMesh,CGAL::vertex_point_t>::value_type>::Kernel`
  VertexFTMap | A property map with `boost::graph_traits<TriangleMesh>::vertex_descriptor` as key type and `K::FT` as value type.
  VertexVectorMap | A 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`, and`boost::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, Rdge_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, Rdge_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, Rdge_order ord=Ridge_order_3)
| Outputs ridges of types `MAX_CREST_RIDGE` and `MIN_CREST_RIDGE`. More...

## Constructor & Destructor Documentation

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

  tm | the triangle mesh
  vertex_k1_pm | maximal principal curvatures
  vertex_k2_pm | minimal principal curvatures
  vertex_b0_pm | third order extremalities
  vertex_b3_pm | third order extremalities
  vertex_d1_pm | maximal principal directions of curvature
  vertex_d2_pm | minimal principal directions of curvature
  vertex_P1_pm | fourth order quantities
  vertex_P2_pm | fourth order quantities

## Member Function Documentation

template<typename TriangleMesh , typename VertexFTMap , typename VertexVectorMap >
template<class OutputIterator >

OutputIterator CGAL::Ridge_approximation< TriangleMesh, VertexFTMap, VertexVectorMap >::compute_crest_ridges | ( | OutputIterator | it,
|  | Rdge_order | ord = `Ridge_order_3`
| ) |  |

Outputs ridges of types `MAX_CREST_RIDGE` and `MIN_CREST_RIDGE`.

Template Parameters

  OutputIterator | is an output iterator with value type `Ridge_line*`.

template<typename TriangleMesh , typename VertexFTMap , typename VertexVectorMap >
template<class OutputIterator >

OutputIterator CGAL::Ridge_approximation< TriangleMesh, VertexFTMap, VertexVectorMap >::compute_max_ridges | ( | OutputIterator | it,
|  | Rdge_order | ord = `Ridge_order_3`
| ) |  |

Outputs ridges of types `MAX_ELLIPTIC_RIDGE` and `MAX_HYPERBOLIC_RIDGE`.

Template Parameters

  OutputIterator | an output iterator wìth value type `Ridge_line*`.

template<typename TriangleMesh , typename VertexFTMap , typename VertexVectorMap >
template<class OutputIterator >

OutputIterator CGAL::Ridge_approximation< TriangleMesh, VertexFTMap, VertexVectorMap >::compute_min_ridges | ( | OutputIterator | it,
|  | Rdge_order | ord = `Ridge_order_3`
| ) |  |

Outputs ridges of types `MIN_ELLIPTIC_RIDGE` and `MIN_HYPERBOLIC_RIDGE`.

Template Parameters

  OutputIterator | an output iterator with value type `Ridge_line*`.