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) |