Collection of functions and structures needed for PointCloud triangulation .
More...
|
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 &normals, 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 .
◆ filterNeighbors()
MRMESH_API void MR::TriangulationHelpers::filterNeighbors |
( |
const VertNormals & | normals, |
|
|
VertId | v, |
|
|
std::vector< VertId > & | neighbors ) |
Filter neighbors with crossing normals.
◆ findNeighborsInBall()
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)
◆ findNumNeighbors()
Finds at most given number of neighbors of v (v excluded)
- Parameters
-
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 |
- Returns
- maxDistSq to the furthest returned neighbor (or 0 if no neighbours are returned)
◆ isBoundaryPoint()
Checks if given vertex is on boundary of the point cloud, by constructing local triangulation around it.
- Parameters
-
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 |
- Returns
- true if vertex is boundary, false otherwise
◆ updateNeighborsRadius()
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.
- Parameters
-
borderV | first boundary vertex in |
fan | (next VertId in fan is also boundary but first is enough) |