CGAL 6.2 - Approximation of Ridges and Umbilics on Triangulated Surface Meshes: CGAL::Ridge_approximation< TriangleMesh, VertexFTMap, VertexVectorMap > Class Template Reference

CGAL 6.2 - Approximation of Ridges and Umbilics on Triangulated Surface Meshes

Loading...
Searching...
No Matches
List of all members
CGAL::Ridge_approximation< TriangleMesh, VertexFTMap, VertexVectorMap > Class Template Reference
Reference Manual

`#include <CGAL/Ridges.h>`

## Definition

template<typename TriangleMesh, typename VertexFTMap, typename VertexVectorMap>
class CGAL::Ridge_approximation< TriangleMesh, VertexFTMap, VertexVectorMap >

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.
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`.
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`.
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`.

## 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

  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

## ◆ 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

  OutputIterator | is 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

  OutputIterator | an 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

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