18using FillEdgeMetric = std::function<double( VertId a, VertId b, VertId l, VertId r )>;
#define MRMESH_API
Definition MRMesh/MRMeshFwd.h:46
MRMESH_API FillHoleMetric getUniversalMetric(const Mesh &mesh)
MRMESH_API FillHoleMetric getCircumscribedMetric(const Mesh &mesh)
MRMESH_API FillHoleMetric getEdgeLengthStitchMetric(const Mesh &mesh)
MRMESH_API FillHoleMetric getComplexStitchMetric(const Mesh &mesh)
MRMESH_API FillHoleMetric getEdgeLengthFillMetric(const Mesh &mesh)
Simple metric minimizing the sum of all edge lengths.
MRMESH_API FillHoleMetric getMinTriAngleMetric(const Mesh &mesh)
This metric maximizes the minimal angle among all faces in the triangulation.
MRMESH_API double calcCombinedFillMetric(const Mesh &mesh, const FaceBitSet &filledRegion, const FillHoleMetric &metric)
Computes combined metric after filling a hole.
MRMESH_API FillHoleMetric getPlaneNormalizedFillMetric(const Mesh &mesh, EdgeId e)
std::function< double(VertId a, VertId b, VertId l, VertId r)> FillEdgeMetric
Definition MRMesh/MRMeshMetrics.h:18
std::function< double(VertId a, VertId b, VertId c)> FillTriangleMetric
Definition MRMesh/MRMeshMetrics.h:13
MRMESH_API FillHoleMetric getParallelPlaneFillMetric(const Mesh &mesh, EdgeId e, const Plane3f *plane=nullptr)
This metric minimizes summary projection of new edges to plane normal, (try do produce edges parallel...
MRMESH_API FillHoleMetric getComplexFillMetric(const Mesh &mesh, EdgeId e)
MRMESH_API FillHoleMetric getPlaneFillMetric(const Mesh &mesh, EdgeId e)
MRMESH_API FillHoleMetric getMaxDihedralAngleMetric(const Mesh &mesh)
MRMESH_API const double BadTriangulationMetric
MRMESH_API FillHoleMetric getMinAreaMetric(const Mesh &mesh)
std::function< double(double, double)> FillCombineMetric
Definition MRMesh/MRMeshMetrics.h:20
MRMESH_API FillHoleMetric getVerticalStitchMetric(const Mesh &mesh, const Vector3f &upDir)
Definition MRCameraOrientationPlugin.h:8
Holds metrics for fillHole and buildCylinderBetweenTwoHoles triangulation .
FillEdgeMetric edgeMetric
is called for each edge, if it is set
Definition MRMesh/MRMeshMetrics.h:44
FillCombineMetric combineMetric
is called to combine metrics from different candidates, if it is not set it just summarizes input
Definition MRMesh/MRMeshMetrics.h:46
FillTriangleMetric triangleMetric
is called for each triangle, if it is set
Definition MRMesh/MRMeshMetrics.h:42
Definition MRMesh/MRMesh.h:23