 CGAL 5.0 - The Heat Method
Heat Method Reference Keenan Crane, Christina Vaz, 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-19b
Windows Demo: Polyhedron demo
Common Demo Dlls: dlls

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

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

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

## ◆ estimate_geodesic_distances() [1/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::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.
Warning
The return type is double even when used with an exact kernel.
CGAL::Heat_method_3::Surface_mesh_geodesic_distances_3
Examples:
Heat_method_3/heat_method.cpp, and Heat_method_3/heat_method_polyhedron.cpp.

## ◆ estimate_geodesic_distances() [2/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::vertex_descriptor as key type and double as value type. VertexConstRange a model of the concept ConstRange with value type boost::graph_traits::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.
Warning
The return type is double even when used with an exact kernel.
CGAL::Heat_method_3::Surface_mesh_geodesic_distances_3