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}
bounding volume hierarchy for point cloud structure
Definition MRAABBTreePoints.h:16
MRMESH_API std::optional< VertMap > findSmallestCloseVertices(const Mesh &mesh, float closeDist, const ProgressCallback &cb={})
MRMESH_API EdgeBitSet findTwinEdges(const Mesh &mesh, float closeDist)
finds all directed twin edges
MRMESH_API UndirectedEdgeHashMap findTwinUndirectedEdgeHashMap(const Mesh &mesh, float closeDist)
provided that each edge has at most one twin, composes bidirectional mapping between twins
MRMESH_API 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
MRMESH_API UndirectedEdgeBitSet findTwinUndirectedEdges(const Mesh &mesh, float closeDist)
finds all undirected twin edges
MRMESH_API 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
MRMESH_API std::optional< VertMap > findSmallestCloseVerticesUsingTree(const VertCoords &points, float closeDist, const AABBTreePoints &tree, const VertBitSet *valid, const ProgressCallback &cb={})
only for bindings generation
Definition MRCameraOrientationPlugin.h:8
Definition MRMesh.h:23
Definition MRPointCloud.h:17