MeshLib C++ Docs
Loading...
Searching...
No Matches
MREdgeMetric.h
Go to the documentation of this file.
1#pragma once
2
3#include "MRMeshFwd.h"
4#include "MRPch/MRBindingMacros.h"
5#include <functional>
6
7namespace MR
8{
11
12
15
18
21[[nodiscard]] MRMESH_API EdgeMetric edgeLengthMetric( const Mesh & mesh );
22[[nodiscard]] MRMESH_API EdgeMetric edgeLengthMetric( const MeshTopology& topology, const VertCoords& points );
23
28[[nodiscard]] MRMESH_API EdgeMetric discreteAbsMeanCurvatureMetric( const MeshTopology& topology, const VertCoords& points );
29
34[[nodiscard]] MRMESH_API EdgeMetric discreteMinusAbsMeanCurvatureMetric( const MeshTopology& topology, const VertCoords& points );
35
40[[nodiscard]] MRMESH_API EdgeMetric edgeCurvMetric( const Mesh & mesh, float angleSinFactor = 2, float angleSinForBoundary = 0 );
41[[nodiscard]] MRMESH_API EdgeMetric edgeCurvMetric( const MeshTopology& topology, const VertCoords& points, float angleSinFactor = 2, float angleSinForBoundary = 0 );
42
47[[nodiscard]] MRMESH_API EdgeMetric edgeAbsCurvMetric( const Mesh & mesh, float angleSinFactor = 2, float angleSinForBoundary = 0 );
48[[nodiscard]] MRMESH_API EdgeMetric edgeAbsCurvMetric( const MeshTopology& topology, const VertCoords& points, float angleSinFactor = 2, float angleSinForBoundary = 0 );
49
51{
52 float convexFactor = 1;
53 float concaveFactor = 1;
54 float boundaryValue = 0;
55};
56
60[[nodiscard]] MRMESH_API EdgeMetric edgeDihedralAngleMetric( const Mesh& mesh, const DihedralAngleProcessParams& params = {} );
61[[nodiscard]] MRMESH_API EdgeMetric edgeDihedralAngleMetric( const MeshTopology& topology, const VertCoords& points, const DihedralAngleProcessParams& params = {} );
62
65[[nodiscard]] MRMESH_API EdgeMetric edgeTableSymMetric( const MeshTopology & topology, const EdgeMetric & metric );
66
68
69}
#define MRMESH_API
Definition MRMeshFwd.h:80
Definition MRMeshTopology.h:23
float concaveFactor
negative concave dihedral angles are returned multiplied on this factor
Definition MREdgeMetric.h:53
std::function< float(EdgeId)> EdgeMetric
Definition MRMeshFwd.h:588
float convexFactor
positive convex dihedral angles are returned multiplied on this factor
Definition MREdgeMetric.h:52
float boundaryValue
this value will be returned as dihedral angle for boundary edges
Definition MREdgeMetric.h:54
EdgeMetric edgeCurvMetric(const Mesh &mesh, float angleSinFactor=2, float angleSinForBoundary=0)
EdgeMetric identityMetric()
metric returning 1 for every edge
EdgeMetric edgeTableSymMetric(const MeshTopology &topology, const EdgeMetric &metric)
EdgeMetric edgeAbsCurvMetric(const Mesh &mesh, float angleSinFactor=2, float angleSinForBoundary=0)
EdgeMetric discreteAbsMeanCurvatureMetric(const Mesh &mesh)
EdgeMetric edgeDihedralAngleMetric(const Mesh &mesh, const DihedralAngleProcessParams &params={})
EdgeMetric discreteMinusAbsMeanCurvatureMetric(const Mesh &mesh)
EdgeMetric edgeLengthMetric(const Mesh &mesh)
only for bindings generation
Definition MRCameraOrientationPlugin.h:8
Definition MREdgeMetric.h:51
Definition MRMesh.h:23