MeshLib
 
Loading...
Searching...
No Matches
Surface Distance

Functions

MRMESH_API VertScalars MR::computeSurfaceDistances (const Mesh &mesh, const VertBitSet &startVertices, float maxDist=FLT_MAX, const VertBitSet *region=nullptr, int maxVertUpdates=3)
 
MRMESH_API VertScalars MR::computeSurfaceDistances (const Mesh &mesh, const VertBitSet &startVertices, const VertBitSet &targetVertices, float maxDist=FLT_MAX, const VertBitSet *region=nullptr, int maxVertUpdates=3)
 
MRMESH_API VertScalars MR::computeSurfaceDistances (const Mesh &mesh, const HashMap< VertId, float > &startVertices, float maxDist=FLT_MAX, const VertBitSet *region=nullptr, int maxVertUpdates=3)
 
MRMESH_API VertScalars MR::computeSurfaceDistances (const Mesh &mesh, const MeshTriPoint &start, const MeshTriPoint &end, const VertBitSet *region=nullptr, bool *endReached=nullptr, int maxVertUpdates=3)
 
MRMESH_API VertScalars MR::computeSurfaceDistances (const Mesh &mesh, const MeshTriPoint &start, float maxDist=FLT_MAX, const VertBitSet *region=nullptr, int maxVertUpdates=3)
 
MRMESH_API VertScalars MR::computeSurfaceDistances (const Mesh &mesh, const std::vector< MeshTriPoint > &starts, float maxDist=FLT_MAX, const VertBitSet *region=nullptr, int maxVertUpdates=3)
 

Detailed Description

The functions in this group implement Fast marching method for approximately solving Eikonal equation on mesh.

Function Documentation

◆ computeSurfaceDistances() [1/6]

MRMESH_API VertScalars MR::computeSurfaceDistances ( const Mesh & mesh,
const HashMap< VertId, float > & startVertices,
float maxDist = FLT_MAX,
const VertBitSet * region = nullptr,
int maxVertUpdates = 3 )

computes path distances in mesh vertices from given start vertices with values in them, stopping when maxDist is reached; considered paths can go either along edges or straightly within triangles

◆ computeSurfaceDistances() [2/6]

MRMESH_API VertScalars MR::computeSurfaceDistances ( const Mesh & mesh,
const MeshTriPoint & start,
const MeshTriPoint & end,
const VertBitSet * region = nullptr,
bool * endReached = nullptr,
int maxVertUpdates = 3 )

computes path distance in mesh vertices from given start point, stopping when all vertices in the face where end is located are reached;

considered paths can go either along edges or straightly within triangles

Parameters
endReachedif pointer provided it will receive where a path from start to end exists

◆ computeSurfaceDistances() [3/6]

MRMESH_API VertScalars MR::computeSurfaceDistances ( const Mesh & mesh,
const MeshTriPoint & start,
float maxDist = FLT_MAX,
const VertBitSet * region = nullptr,
int maxVertUpdates = 3 )

computes path distances in mesh vertices from given start point, stopping when maxDist is reached; considered paths can go either along edges or straightly within triangles

◆ computeSurfaceDistances() [4/6]

MRMESH_API VertScalars MR::computeSurfaceDistances ( const Mesh & mesh,
const std::vector< MeshTriPoint > & starts,
float maxDist = FLT_MAX,
const VertBitSet * region = nullptr,
int maxVertUpdates = 3 )

computes path distances in mesh vertices from given start points, stopping when maxDist is reached; considered paths can go either along edges or straightly within triangles

◆ computeSurfaceDistances() [5/6]

MRMESH_API VertScalars MR::computeSurfaceDistances ( const Mesh & mesh,
const VertBitSet & startVertices,
const VertBitSet & targetVertices,
float maxDist = FLT_MAX,
const VertBitSet * region = nullptr,
int maxVertUpdates = 3 )

computes path distances in mesh vertices from given start vertices, stopping when all targetVertices or maxDist is reached; considered paths can go either along edges or straightly within triangles

◆ computeSurfaceDistances() [6/6]

MRMESH_API VertScalars MR::computeSurfaceDistances ( const Mesh & mesh,
const VertBitSet & startVertices,
float maxDist = FLT_MAX,
const VertBitSet * region = nullptr,
int maxVertUpdates = 3 )

computes path distances in mesh vertices from given start vertices, stopping when maxDist is reached; considered paths can go either along edges or straightly within triangles