\( \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::Umbilic_approximation< TriangleMesh, VertexFTMap, VertexVectorMap > Class Template Reference
Approximation of Ridges and Umbilics on Triangulated Surface Meshes Reference

`#include <CGAL/Umbilics.h>`

## Definition

The class `Umbilic_approximation` computes the approximation of umbilics on 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
  `Umbilic`

## Types
typedef TriangleMesh::Traits::FT | FT

## Creation
| Umbilic_approximation (const TriangleMesh &tm, VertexFTMap vertex_k1_pm, VertexFTMap vertex_k2_pm, VertexVectorMap vertex_d1_pm, VertexVectorMap vertex_d2_pm)
| Constructor. More...

## Operations
template<class OutputIterator >
OutputIterator | compute (OutputIterator it, FT size)
| Performs the approximation. More...

## Constructor & Destructor Documentation

template<typename TriangleMesh , typename VertexFTMap , typename VertexVectorMap >

CGAL::Umbilic_approximation< TriangleMesh, VertexFTMap, VertexVectorMap >::Umbilic_approximation | ( | const TriangleMesh & | tm,
|  | VertexFTMap | vertex_k1_pm,
|  | VertexFTMap | vertex_k2_pm,
|  | VertexVectorMap | vertex_d1_pm,
|  | VertexVectorMap | vertex_d2_pm
| ) |  |

Constructor.

Parameters

  tm | the triangle mesh
  vertex_k1_pm | maximal principal curvatures
  vertex_k2_pm | minimal principal curvatures
  vertex_d1_pm | maximal principal directions of curvature
  vertex_d2_pm | minimal principal directions of curvature

## Member Function Documentation

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

OutputIterator CGAL::Umbilic_approximation< TriangleMesh, VertexFTMap, VertexVectorMap >::compute | ( | OutputIterator | it,
|  | FT | size
| ) |  |

Performs the approximation.

The value of `size` determines the size of the patches around vertices, taken as `size` times the size of the 1-ring. Umbilics are inserted into `it`.

Template Parameters

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