MeshLib C++ Docs
Loading...
Searching...
No Matches
MRCloseVertices.h
Go to the documentation of this file.
1#pragma once
2
3#include "MRMeshFwd.h"
5#include <optional>
6
7namespace MR
8{
11
12
15[[nodiscard]] MRMESH_API std::optional<VertMap> findSmallestCloseVertices( const Mesh & mesh, float closeDist, const ProgressCallback & cb = {} );
16
19[[nodiscard]] MRMESH_API std::optional<VertMap> findSmallestCloseVertices( const PointCloud & cloud, float closeDist, const ProgressCallback & cb = {} );
20
23[[nodiscard]] MRMESH_API std::optional<VertMap> findSmallestCloseVertices( const VertCoords & points, float closeDist, const VertBitSet * valid = nullptr, const ProgressCallback & cb = {} );
24
27[[nodiscard]] MRMESH_API std::optional<VertMap> findSmallestCloseVerticesUsingTree( const VertCoords & points, float closeDist, const AABBTreePoints & tree, const VertBitSet * valid, const ProgressCallback & cb = {} );
28
30[[nodiscard]] MRMESH_API std::optional<VertBitSet> findCloseVertices( const Mesh & mesh, float closeDist, const ProgressCallback & cb = {} );
31
33[[nodiscard]] MRMESH_API std::optional<VertBitSet> findCloseVertices( const PointCloud & cloud, float closeDist, const ProgressCallback & cb = {} );
34
36[[nodiscard]] MRMESH_API std::optional<VertBitSet> findCloseVertices( const VertCoords & points, float closeDist, const VertBitSet * valid = nullptr, const ProgressCallback & cb = {} );
37
39[[nodiscard]] MRMESH_API VertBitSet findCloseVertices( const VertMap & smallestMap );
40
42
44[[nodiscard]] MRMESH_API std::vector<EdgePair> findTwinEdgePairs( const Mesh & mesh, float closeDist );
45
47[[nodiscard]] MRMESH_API EdgeBitSet findTwinEdges( const Mesh & mesh, float closeDist );
48[[nodiscard]] MRMESH_API EdgeBitSet findTwinEdges( const std::vector<EdgePair> & pairs );
49
51[[nodiscard]] MRMESH_API UndirectedEdgeBitSet findTwinUndirectedEdges( const Mesh & mesh, float closeDist );
52[[nodiscard]] MRMESH_API UndirectedEdgeBitSet findTwinUndirectedEdges( const std::vector<EdgePair> & pairs );
53
55[[nodiscard]] MRMESH_API UndirectedEdgeHashMap findTwinUndirectedEdgeHashMap( const Mesh & mesh, float closeDist );
56[[nodiscard]] MRMESH_API UndirectedEdgeHashMap findTwinUndirectedEdgeHashMap( const std::vector<EdgePair> & pairs );
57
58}
#define MRMESH_API
Definition MRMeshFwd.h:80
bounding volume hierarchy for point cloud structure
Definition MRAABBTreePoints.h:16
std::function< bool(float)> ProgressCallback
Definition MRMeshFwd.h:753
std::optional< VertMap > findSmallestCloseVerticesUsingTree(const VertCoords &points, float closeDist, const AABBTreePoints &tree, const VertBitSet *valid, const ProgressCallback &cb={})
std::optional< VertBitSet > findCloseVertices(const Mesh &mesh, float closeDist, const ProgressCallback &cb={})
finds all close vertices, where for each vertex there is another one located within given distance
UndirectedEdgeHashMap findTwinUndirectedEdgeHashMap(const Mesh &mesh, float closeDist)
provided that each edge has at most one twin, composes bidirectional mapping between twins
UndirectedEdgeBitSet findTwinUndirectedEdges(const Mesh &mesh, float closeDist)
finds all undirected twin edges
EdgeBitSet findTwinEdges(const Mesh &mesh, float closeDist)
finds all directed twin edges
std::optional< VertMap > findSmallestCloseVertices(const Mesh &mesh, float closeDist, const ProgressCallback &cb={})
std::vector< EdgePair > findTwinEdgePairs(const Mesh &mesh, float closeDist)
definition: if A,B and C,D are close vertices, then let us name AC and BD twin edges
HashMap< UndirectedEdgeId, UndirectedEdgeId > UndirectedEdgeHashMap
Definition MRMeshFwd.h:613
only for bindings generation
Definition MRCameraOrientationPlugin.h:8
Definition MRMesh.h:23
Definition MRPointCloud.h:17