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