\( \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.3 - 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< TriangulatedSurfaceMesh, Vertex2FTPropertyMap, Vertex2VectorPropertyMap > 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

  TriangulatedSurfaceMesh | is the surface type.
  Vertex2FTPropertyMap,Vertex2VectorPropertyMap | provide the differential properties of the surface associated to its vertices.

Requirements (checked at compile time):

- the types `TriangulatedSurfaceMesh::Traits::FT` and `Vertex2FTPropertyMap::value_type` must coincide;
- the types `TriangulatedSurfaceMesh::Traits::Vector_3` and `Vertex2VectorPropertyMap::value_type` must coincide;
- the types `TriangulatedSurfaceMesh::Vertex_handle`, `Vertex2FTPropertyMap::key_type` and `Vertex2VectorPropertyMap::key_type` must coincide;

See Also
  `Ridge_line`

## Types
enum | Tag_order { Tag_3, Tag_4 }
| Order of differential quantities used to distinguish elliptic and hyperbolic ridges. More...

## Creation
| Ridge_approximation (const TriangulatedSurfaceMesh &P, const Vertex2FTPropertyMap &vertex2k1_pm, const Vertex2FTPropertyMap &vertex2k2_pm, const Vertex2FTPropertyMap &vertex2b0_pm, const Vertex2FTPropertyMap &vertex2b3_pm, const Vertex2VectorPropertyMap &vertex2d1_pm, const Vertex2VectorPropertyMap &vertex2d2_pm, const Vertex2FTPropertyMap &vertex2P1_pm, const Vertex2FTPropertyMap &vertex2P2_pm)
| The two last property maps may not be used if computations are performed with the parameter `Tag_3`, in which case these property maps shall be initialized with their default constructors.
template<class OutputIterator >
OutputIterator | compute_max_ridges (OutputIterator it, Tag_order ord=Tag_3)
| Outputs ridges of types `MAX_ELLIPTIC_RIDGE` and `MAX_HYPERBOLIC_RIDGE`. More...
template<class OutputIterator >
OutputIterator | compute_min_ridges (OutputIterator it, Tag_order ord=Tag_3)
| Outputs ridges of types `MIN_ELLIPTIC_RIDGE` and `MIN_HYPERBOLIC_RIDGE`. More...
template<class OutputIterator >
OutputIterator | compute_crest_ridges (OutputIterator it, Tag_order ord=Tag_3)
| Outputs ridges of types `MAX_CREST_RIDGE` and `MIN_CREST_RIDGE`. More...

## Member Enumeration Documentation

template<typename TriangulatedSurfaceMesh , typename Vertex2FTPropertyMap , typename Vertex2VectorPropertyMap >

enum CGAL::Ridge_approximation::Tag_order

Order of differential quantities used to distinguish elliptic and hyperbolic ridges.

Third (`Tag_3`) or fourth (`Tag_4`) order quantities may be used as explained in section ridgemesh of the user manual.

Enumerator
Tag_3 |
Tag_4 |

## Member Function Documentation

template<typename TriangulatedSurfaceMesh , typename Vertex2FTPropertyMap , typename Vertex2VectorPropertyMap >
template<class OutputIterator >

OutputIterator CGAL::Ridge_approximation< TriangulatedSurfaceMesh, Vertex2FTPropertyMap, Vertex2VectorPropertyMap >::compute_crest_ridges | ( | OutputIterator | it,
|  | Tag_order | ord = `Tag_3`
| ) |  |

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

Parameter `it` is an output iterator whose value type is `Ridge_line*`.

template<typename TriangulatedSurfaceMesh , typename Vertex2FTPropertyMap , typename Vertex2VectorPropertyMap >
template<class OutputIterator >

OutputIterator CGAL::Ridge_approximation< TriangulatedSurfaceMesh, Vertex2FTPropertyMap, Vertex2VectorPropertyMap >::compute_max_ridges | ( | OutputIterator | it,
|  | Tag_order | ord = `Tag_3`
| ) |  |

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

Parameter `it` is an output iterator whose value type is `Ridge_line*`.

template<typename TriangulatedSurfaceMesh , typename Vertex2FTPropertyMap , typename Vertex2VectorPropertyMap >
template<class OutputIterator >

OutputIterator CGAL::Ridge_approximation< TriangulatedSurfaceMesh, Vertex2FTPropertyMap, Vertex2VectorPropertyMap >::compute_min_ridges | ( | OutputIterator | it,
|  | Tag_order | ord = `Tag_3`
| ) |  |

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

Parameter `it` is an output iterator whose value type is `Ridge_line*`.