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... | |
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 | ( | SurfaceMesh & | mesh, |
bool | use_virtual_edges = true |
||
) |
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.
[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. |
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.
Access the computed geodesic distance.
[in] | v | The vertex for which to return the geodesic distance. |
v
. v
needs to be a valid vertex handle of the mesh used during construction.