Classes | |
| struct | MR::PointCloud |
| struct | MR::PointCloudRelaxParams |
| struct | MR::PointCloudApproxRelaxParams |
| class | MR::RegularMapMesher |
| Class for making mesh from regular distance map. More... | |
Functions | |
| MRMESH_API bool | MR::improveSampling (const PointCloud &cloud, VertBitSet &samples, const ImproveSamplingSettings &settings) |
| MRMESH_API std::optional< VertNormals > | MR::makeUnorientedNormals (const PointCloud &pointCloud, float radius, const ProgressCallback &progress={}, OrientNormals orient=OrientNormals::Smart) |
| Makes normals for valid points of given point cloud by directing them along the normal of best plane through the neighbours. | |
| MRMESH_API std::optional< VertNormals > | MR::makeUnorientedNormals (const PointCloud &pointCloud, const AllLocalTriangulations &triangs, const ProgressCallback &progress={}, OrientNormals orient=OrientNormals::Smart) |
| Makes normals for valid points of given point cloud by averaging neighbor triangle normals weighted by triangle's angle \triangs triangulation neighbours of each point. | |
| MRMESH_API std::optional< VertNormals > | MR::makeUnorientedNormals (const PointCloud &pointCloud, const Buffer< VertId > &closeVerts, int numNei, const ProgressCallback &progress={}, OrientNormals orient=OrientNormals::Smart) |
| Makes normals for valid points of given point cloud by directing them along the normal of best plane through the neighbours. | |
| MRMESH_API bool | MR::orientNormals (const PointCloud &pointCloud, VertNormals &normals, float radius, const ProgressCallback &progress={}) |
| Select orientation of given normals to make directions of close points consistent;. | |
| MRMESH_API bool | MR::orientNormals (const PointCloud &pointCloud, VertNormals &normals, const AllLocalTriangulations &triangs, const ProgressCallback &progress={}) |
| Select orientation of given normals to make directions of close points consistent;. | |
| MRMESH_API bool | MR::orientNormals (const PointCloud &pointCloud, VertNormals &normals, const Buffer< VertId > &closeVerts, int numNei, const ProgressCallback &progress={}) |
| Select orientation of given normals to make directions of close points consistent;. | |
| MRMESH_API std::optional< VertNormals > | MR::makeOrientedNormals (const PointCloud &pointCloud, float radius, const ProgressCallback &progress={}) |
| Makes normals for valid points of given point cloud; directions of close points are selected to be consistent;. | |
| MRMESH_API std::optional< VertNormals > | MR::makeOrientedNormals (const PointCloud &pointCloud, AllLocalTriangulations &triangs, const ProgressCallback &progress={}) |
| Makes normals for valid points of given point cloud; directions of close points are selected to be consistent; \triangs triangulation neighbours of each point, which are oriented during the call as well. | |
| MRMESH_API VertNormals | MR::makeNormals (const PointCloud &pointCloud, int avgNeighborhoodSize=48) |
| Makes consistent normals for valid points of given point cloud. | |
| MRMESH_API float | MR::findAvgPointsRadius (const PointCloud &pointCloud, int avgPoints, int samples=1024) |
| Finds the radius of ball, so on average that ball contained avgPoints excluding the central point. | |
| MRMESH_API bool | MR::relax (PointCloud &pointCloud, const PointCloudRelaxParams ¶ms={}, ProgressCallback cb={}) |
| MRMESH_API bool | MR::relaxKeepVolume (PointCloud &pointCloud, const PointCloudRelaxParams ¶ms={}, ProgressCallback cb={}) |
| MRMESH_API bool | MR::relaxApprox (PointCloud &pointCloud, const PointCloudApproxRelaxParams ¶ms={}, ProgressCallback cb={}) |
| MRMESH_API std::optional< VertBitSet > | MR::pointUniformSampling (const PointCloud &pointCloud, const UniformSamplingSettings &settings) |
| MRMESH_API std::optional< PointCloud > | MR::makeUniformSampledCloud (const PointCloud &pointCloud, const UniformSamplingSettings &settings) |
| MRMESH_API float MR::findAvgPointsRadius | ( | const PointCloud & | pointCloud, |
| int | avgPoints, | ||
| int | samples = 1024 ) |
Finds the radius of ball, so on average that ball contained avgPoints excluding the central point.
| samples | the number of test points to find given number of samples in each |
| MRMESH_API bool MR::improveSampling | ( | const PointCloud & | cloud, |
| VertBitSet & | samples, | ||
| const ImproveSamplingSettings & | settings ) |
Finds more representative sampling starting from a given one following k-means method;
| samples | input and output selected sample points from |
| cloud; |
| MRMESH_API VertNormals MR::makeNormals | ( | const PointCloud & | pointCloud, |
| int | avgNeighborhoodSize = 48 ) |
Makes consistent normals for valid points of given point cloud.
| avgNeighborhoodSize | avg num of neighbors of each individual point |
|
nodiscard |
Makes normals for valid points of given point cloud; directions of close points are selected to be consistent; \triangs triangulation neighbours of each point, which are oriented during the call as well.
|
nodiscard |
Makes normals for valid points of given point cloud; directions of close points are selected to be consistent;.
| radius | of neighborhood to consider |
|
nodiscard |
Composes new point cloud consisting of uniform samples of original point cloud; returns std::nullopt if it was terminated by the callback
|
nodiscard |
Makes normals for valid points of given point cloud by averaging neighbor triangle normals weighted by triangle's angle \triangs triangulation neighbours of each point.
| orient | OrientNormals::Smart here means orientation from normals of neigbour triangles |
|
nodiscard |
Makes normals for valid points of given point cloud by directing them along the normal of best plane through the neighbours.
| closeVerts | a buffer where for every valid point #i its neighbours are stored at indices [i*numNei; (i+1)*numNei) |
| orient | OrientNormals::Smart here means orientation from best fit plane |
|
nodiscard |
Makes normals for valid points of given point cloud by directing them along the normal of best plane through the neighbours.
| radius | of neighborhood to consider |
| orient | OrientNormals::Smart here means orientation from best fit plane |
| MRMESH_API bool MR::orientNormals | ( | const PointCloud & | pointCloud, |
| VertNormals & | normals, | ||
| const AllLocalTriangulations & | triangs, | ||
| const ProgressCallback & | progress = {} ) |
Select orientation of given normals to make directions of close points consistent;.
| radius | of neighborhood to consider |
| MRMESH_API bool MR::orientNormals | ( | const PointCloud & | pointCloud, |
| VertNormals & | normals, | ||
| const Buffer< VertId > & | closeVerts, | ||
| int | numNei, | ||
| const ProgressCallback & | progress = {} ) |
Select orientation of given normals to make directions of close points consistent;.
| closeVerts | a buffer where for every valid point #i its neighbours are stored at indices [i*numNei; (i+1)*numNei) |
| MRMESH_API bool MR::orientNormals | ( | const PointCloud & | pointCloud, |
| VertNormals & | normals, | ||
| float | radius, | ||
| const ProgressCallback & | progress = {} ) |
Select orientation of given normals to make directions of close points consistent;.
| radius | of neighborhood to consider |
|
nodiscard |
Sample vertices, removing ones that are too close; returns std::nullopt if it was terminated by the callback
| MRMESH_API bool MR::relax | ( | PointCloud & | pointCloud, |
| const PointCloudRelaxParams & | params = {}, | ||
| ProgressCallback | cb = {} ) |
applies given number of relaxation iterations to the whole pointCloud ( or some region if it is specified )
| MRMESH_API bool MR::relaxApprox | ( | PointCloud & | pointCloud, |
| const PointCloudApproxRelaxParams & | params = {}, | ||
| ProgressCallback | cb = {} ) |
applies given number of relaxation iterations to the whole pointCloud ( or some region if it is specified ) approx neighborhoods
| MRMESH_API bool MR::relaxKeepVolume | ( | PointCloud & | pointCloud, |
| const PointCloudRelaxParams & | params = {}, | ||
| ProgressCallback | cb = {} ) |
applies given number of relaxation iterations to the whole pointCloud ( or some region if it is specified ) do not really keeps volume but tries hard