CGAL 6.1 - The Heat Method

Loading...
Searching...
No Matches
Modules | Classes | Functions
Reference Manual

##

Keenan Crane, Christina Vaz, and Andreas Fabri
The package provides an algorithm that solves the single- or multiple-source shortest path problem by returning an approximation of the geodesic distance for all vertices of a triangle mesh to the closest vertex in a given set of source vertices.
Introduced in: CGAL 4.14
Depends on: CGAL and Solvers
BibTeX: cgal:cvf-hm3-25b
License: GPL
Windows Demo: CGAL Lab

## Classified Reference Pages

## Concepts

- `HeatMethodTraits_3`

## Classes

- `CGAL::Heat_method_3::Surface_mesh_geodesic_distances_3`
- `CGAL::Heat_method_3::Direct`
- `CGAL::Heat_method_3::Intrinsic_Delaunay`

## Functions

- `CGAL::Heat_method_3::estimate_geodesic_distances()`

## Modules
| Concepts

## Classes
class | CGAL::Heat_method_3::Surface_mesh_geodesic_distances_3< TriangleMesh, Mode, VertexPointMap, LA, Traits >
| Class `Surface_mesh_geodesic_distances_3` computes estimated geodesic distances for a set of source vertices where sources can be added and removed. More...

## Functions
template<typename TriangleMesh , typename VertexDistanceMap , typename Mode >
void | CGAL::Heat_method_3::estimate_geodesic_distances (const TriangleMesh &tm, VertexDistanceMap vdm, typename boost::graph_traits< TriangleMesh >::vertex_descriptor source, Mode)
| computes for each vertex of the triangle mesh `tm` the estimated geodesic distance to a given source vertex.
template<typename TriangleMesh , typename VertexDistanceMap , typename VertexConstRange , typename Mode >
void | CGAL::Heat_method_3::estimate_geodesic_distances (const TriangleMesh &tm, VertexDistanceMap vdm, const VertexConstRange &sources, Mode)
| computes for each vertex of the triangle mesh `tm` the estimated geodesic distance to a given set of source vertices.

## Function Documentation

## ◆ estimate_geodesic_distances() [1/2]

template<typename TriangleMesh , typename VertexDistanceMap , typename VertexConstRange , typename Mode >

void CGAL::Heat_method_3::estimate_geodesic_distances | ( | const TriangleMesh & | tm,
|  | VertexDistanceMap | vdm,
|  | const VertexConstRange & | sources,
|  | Mode |
| ) |  |

`#include <CGAL/Heat_method_3/Surface_mesh_geodesic_distances_3.h>`

computes for each vertex of the triangle mesh `tm` the estimated geodesic distance to a given set of source vertices.

This function is provided only if Eigen 3.3 (or greater) is available and `CGAL_EIGEN3_ENABLED` is defined.

Template Parameters

  TriangleMesh | a triangulated surface mesh, model of `FaceListGraph` and `HalfedgeListGraph` It must have an internal vertex point property map with the value type being a 3D point from a cgal Kernel model
  VertexDistanceMap | a property map model of `WritablePropertyMap` with `boost::graph_traits<TriangleMesh>::vertex_descriptor` as key type and `double` as value type.
  VertexConstRange | a model of the concept `ConstRange` with value type `boost::graph_traits<TriangleMesh>::vertex_descriptor`
  Mode | either the tag `Direct` or `Intrinsic_Delaunay`, which determines if the geodesic distance is computed directly on the mesh or if the intrinsic Delaunay triangulation is applied first. The default is `Intrinsic_Delaunay`.

Precondition
  If `Mode` is `Direct`, `tm` mesh does not have any degenerate faces

Warning
  The return type is `double` even when used with an exact kernel.

See also
  `CGAL::Heat_method_3::Surface_mesh_geodesic_distances_3`

## ◆ estimate_geodesic_distances() [2/2]

template<typename TriangleMesh , typename VertexDistanceMap , typename Mode >

void CGAL::Heat_method_3::estimate_geodesic_distances | ( | const TriangleMesh & | tm,
|  | VertexDistanceMap | vdm,
|  | typename boost::graph_traits< TriangleMesh >::vertex_descriptor | source,
|  | Mode |
| ) |  |

`#include <CGAL/Heat_method_3/Surface_mesh_geodesic_distances_3.h>`

computes for each vertex of the triangle mesh `tm` the estimated geodesic distance to a given source vertex.

This function is provided only if Eigen 3.3 (or greater) is available and `CGAL_EIGEN3_ENABLED` is defined.

Template Parameters

  TriangleMesh | a triangulated surface mesh, model of `FaceListGraph` and `HalfedgeListGraph`. It must have an internal vertex point property map with the value type being a 3D point from a cgal Kernel model
  VertexDistanceMap | a property map model of `WritablePropertyMap` with `boost::graph_traits<TriangleMesh>::vertex_descriptor` as key type and `double` as value type.
  Mode | either the tag `Direct` or `Intrinsic_Delaunay`, which determines if the geodesic distance is computed directly on the mesh or if the intrinsic Delaunay triangulation is applied first. The default is `Intrinsic_Delaunay`.

Precondition
  If `Mode` is `Direct`, `tm` does not have any degenerate faces

Warning
  The return type is `double` even when used with an exact kernel.

See also
  `CGAL::Heat_method_3::Surface_mesh_geodesic_distances_3`

Examples
  Heat_method_3/heat_method.cpp, and Heat_method_3/heat_method_polyhedron.cpp.