Collection of functions and structures needed for PointCloud triangulation . More...
Classes | |
| struct | MR::TriangulationHelpers::TriangulatedFanData |
| Data with caches for optimizing fan triangulation. More... | |
Functions | |
| MRMESH_API float | MR::TriangulationHelpers::updateNeighborsRadius (const VertCoords &points, VertId v, VertId boundaryV, const std::vector< VertId > &fan, float baseRadius) |
| Finds max radius of neighbors search, for possible better local triangulation. | |
| MRMESH_API void | MR::TriangulationHelpers::findNeighborsInBall (const PointCloud &pointCloud, VertId v, float radius, std::vector< VertId > &neighbors) |
| Finds all neighbors of v in given radius (v excluded) | |
| MRMESH_API float | MR::TriangulationHelpers::findNumNeighbors (const PointCloud &pointCloud, VertId v, int numNeis, std::vector< VertId > &neighbors, FewSmallest< PointsProjectionResult > &tmp, float upDistLimitSq=FLT_MAX) |
| Finds at most given number of neighbors of v (v excluded) | |
| MRMESH_API void | MR::TriangulationHelpers::filterNeighbors (const VertNormals &orientedNormals, const VertBitSet *untrustedNormals, VertId v, std::vector< VertId > &neighbors) |
| Filter neighbors with crossing normals. | |
| MRMESH_API bool | MR::TriangulationHelpers::isBoundaryPoint (const PointCloud &cloud, VertId v, const Settings &settings, TriangulatedFanData &fanData) |
| Checks if given vertex is on boundary of the point cloud, by constructing local triangulation around it. | |
Collection of functions and structures needed for PointCloud triangulation .
| MRMESH_API void MR::TriangulationHelpers::filterNeighbors | ( | const VertNormals & | orientedNormals, |
| const VertBitSet * | untrustedNormals, | ||
| VertId | v, | ||
| std::vector< VertId > & | neighbors ) |
#include <MRPointCloudTriangulationHelpers.h>
Filter neighbors with crossing normals.
| MRMESH_API void MR::TriangulationHelpers::findNeighborsInBall | ( | const PointCloud & | pointCloud, |
| VertId | v, | ||
| float | radius, | ||
| std::vector< VertId > & | neighbors ) |
#include <MRPointCloudTriangulationHelpers.h>
Finds all neighbors of v in given radius (v excluded)
| MRMESH_API float MR::TriangulationHelpers::findNumNeighbors | ( | const PointCloud & | pointCloud, |
| VertId | v, | ||
| int | numNeis, | ||
| std::vector< VertId > & | neighbors, | ||
| FewSmallest< PointsProjectionResult > & | tmp, | ||
| float | upDistLimitSq = FLT_MAX ) |
#include <MRPointCloudTriangulationHelpers.h>
Finds at most given number of neighbors of v (v excluded)
| tmp | temporary storage to avoid its allocation |
| upDistLimitSq | upper limit on the distance in question, points with larger distance than it will not be returned |
|
nodiscard |
#include <MRPointCloudTriangulationHelpers.h>
Checks if given vertex is on boundary of the point cloud, by constructing local triangulation around it.
| cloud | input point cloud |
| v | vertex id to check |
| settings | all parameters of the computation |
| fanData | cache structure for neighbors, not to allocate for multiple calls |
| MRMESH_API float MR::TriangulationHelpers::updateNeighborsRadius | ( | const VertCoords & | points, |
| VertId | v, | ||
| VertId | boundaryV, | ||
| const std::vector< VertId > & | fan, | ||
| float | baseRadius ) |
#include <MRPointCloudTriangulationHelpers.h>
Finds max radius of neighbors search, for possible better local triangulation.
| borderV | first boundary vertex in |
| fan | (next VertId in fan is also boundary but first is enough) |