pmp-library  1.2.1
SurfaceGeodesic Class Reference

Compute geodesic distance from a set of seed vertices. More...

#include <pmp/algorithms/SurfaceGeodesic.h>

## Public Member Functions

SurfaceGeodesic (SurfaceMesh &mesh, bool use_virtual_edges=true)
Construct from mesh. More...

unsigned int compute (const std::vector< Vertex > &seed, Scalar maxdist=std::numeric_limits< Scalar >::max(), unsigned int maxnum=INT_MAX, std::vector< Vertex > *neighbors=nullptr)
Compute geodesic distances from specified seed points. More...

Scalar operator() (Vertex v) const
Access the computed geodesic distance. More...

void distance_to_texture_coordinates ()
Use the normalized distances as texture coordinates. More...

## Detailed Description

Compute geodesic distance from a set of seed vertices.

The method works by a Dykstra-like breadth first traversal from the seed vertices, implemented by a heap structure. See [11] for details.

## ◆ SurfaceGeodesic()

 SurfaceGeodesic ( SurfaceMesh & mesh, bool use_virtual_edges = true )

Construct from mesh.

Parameters
 mesh The mesh on which to compute the geodesic distances. use_virtual_edges A flag to control the use of virtual edges. Default: true.
compute() to actually compute the geodesic distances.

## ◆ compute()

 unsigned int compute ( const std::vector< Vertex > & seed, Scalar maxdist = std::numeric_limits::max(), unsigned int maxnum = INT_MAX, std::vector< Vertex > * neighbors = nullptr )

Compute geodesic distances from specified seed points.

Parameters
 [in] seed The vector of seed vertices. [in] maxdist The maximum distance up to which to compute the geodesic distances. [in] maxnum The maximum number of neighbors up to which to compute the geodesic distances. [out] neighbors The vector of neighbor vertices.
Returns
The number of neighbors that have been found.

## ◆ distance_to_texture_coordinates()

 void distance_to_texture_coordinates ( )

Use the normalized distances as texture coordinates.

Stores the normalized distances in a vertex property of type TexCoord named "v:tex". Re-uses any existing vertex property of the same type and name.

## ◆ operator()()

 Scalar operator() ( Vertex v ) const
inline

Access the computed geodesic distance.

Parameters
 [in] v The vertex for which to return the geodesic distance.
Returns
The geodesic distance of vertex v.
Precondition
The function compute() has been called before.
The vertex v needs to be a valid vertex handle of the mesh used during construction.