MeshLib C++ Docs
Loading...
Searching...
No Matches
MRSurfacePath.h File Reference
#include "MRExpected.h"
#include "MRMeshTriPoint.h"
#include "MREnums.h"
#include <vector>
#include <string>

Go to the source code of this file.

Classes

struct  MR::GeodesicPath
struct  MR::ComputeSteepestDescentPathSettings

Namespaces

namespace  MR
 only for bindings generation

Enumerations

enum class  MR::PathError { MR::PathError::StartEndNotConnected , MR::PathError::InternalError }
enum class  MR::ExtremeEdgeType { MR::ExtremeEdgeType::Ridge , MR::ExtremeEdgeType::Gorge }

Functions

std::string MR::toString (PathError error)
Expected< SurfacePath, PathErrorMR::computeSurfacePath (const MeshPart &mp, const MeshTriPoint &start, const MeshTriPoint &end, int maxGeodesicIters=5, const VertBitSet *vertRegion=nullptr, VertScalars *outSurfaceDistances=nullptr)
Expected< SurfacePath, PathErrorMR::computeGeodesicPath (const Mesh &mesh, const MeshTriPoint &start, const MeshTriPoint &end, GeodesicPathApprox atype=GeodesicPathApprox::FastMarching, int maxGeodesicIters=100)
 the maximum number of iterations to reduce approximate path length and convert it in geodesic path
Expected< SurfacePath, PathErrorMR::computeGeodesicPathApprox (const Mesh &mesh, const MeshTriPoint &start, const MeshTriPoint &end, GeodesicPathApprox atype)
Expected< SurfacePath, PathErrorMR::computeFastMarchingPath (const MeshPart &mp, const MeshTriPoint &start, const MeshTriPoint &end, const VertBitSet *vertRegion=nullptr, VertScalars *outSurfaceDistances=nullptr)
SurfacePath MR::computeSteepestDescentPath (const MeshPart &mp, const VertScalars &field, const MeshTriPoint &start, const ComputeSteepestDescentPathSettings &settings={})
void MR::computeSteepestDescentPath (const MeshPart &mp, const VertScalars &field, const MeshTriPoint &start, SurfacePath *outPath, const ComputeSteepestDescentPathSettings &settings={})
MeshEdgePoint MR::findSteepestDescentPoint (const MeshPart &mp, const VertScalars &field, VertId v)
 finds the point along minus maximal gradient on the boundary of first ring boundary around given vertex
MeshEdgePoint MR::findSteepestDescentPoint (const MeshPart &mp, const VertScalars &field, const MeshEdgePoint &ep)
 finds the point along minus maximal gradient on the boundary of triangles around given point (the boundary of left and right edge triangles' union in case (ep) is inner edge point)
MeshEdgePoint MR::findSteepestDescentPoint (const MeshPart &mp, const VertScalars &field, const MeshTriPoint &tp)
 finds the point along minus maximal gradient on the boundary of triangles around given point (the boundary of the triangle itself in case (tp) is inner triangle point)
UndirectedEdgeBitSet MR::findExtremeEdges (const Mesh &mesh, const VertScalars &field, ExtremeEdgeType type)
 computes all edges in the mesh, where the field not-increases both in left and right triangles
HashMap< VertId, VertId > MR::computeClosestSurfacePathTargets (const Mesh &mesh, const VertBitSet &starts, const VertBitSet &ends, const VertBitSet *vertRegion=nullptr, VertScalars *outSurfaceDistances=nullptr)
SurfacePaths MR::getSurfacePathsViaVertices (const Mesh &mesh, const VertBitSet &vs)
float MR::surfacePathLength (const Mesh &mesh, const SurfacePath &surfacePath)
 computes the length of the given surface path
float MR::geodesicPathLength (const Mesh &mesh, const GeodesicPath &path)
 computes the length of the given geodesic path
Contour3f MR::surfacePathToContour3f (const Mesh &mesh, const SurfacePath &line)
 converts lines on mesh in 3D contours by computing coordinate of each point
Contours3f MR::surfacePathsToContours3f (const Mesh &mesh, const SurfacePaths &lines)
Contour3f MR::geodesicPathToContour3f (const Mesh &mesh, const GeodesicPath &path)
 returns coordinates of all vertices of the given path