MeshLib
 
Loading...
Searching...
No Matches
MR::MeshOrPoints Class Reference

#include <MRMeshOrPoints.h>

Classes

struct  ProjectionResult
 

Public Types

using LimitedProjectorFunc = std::function<void( const Vector3f& p, ProjectionResult& res )>
 

Public Member Functions

 MeshOrPoints (const Mesh &mesh)
 
 MeshOrPoints (const MeshPart &mp)
 
 MeshOrPoints (const PointCloud &pc)
 
MRMESH_API Box3f computeBoundingBox (const AffineXf3f *toWorld=nullptr) const
 
MRMESH_API void accumulate (PointAccumulator &accum, const AffineXf3f *xf=nullptr) const
 Adds in existing PointAccumulator the elements of the contained object.
 
MRMESH_API std::optional< VertBitSetpointsGridSampling (float voxelSize, size_t maxVoxels=500000, const ProgressCallback &cb={}) const
 
MRMESH_API const VertCoordspoints () const
 gives access to points-vector (which can include invalid points as well)
 
MRMESH_API const VertBitSetvalidPoints () const
 gives access to bit set of valid points
 
MRMESH_API std::function< Vector3f(VertId)> normals () const
 returns normals generating function: VertId->normal (or empty for point cloud without normals)
 
MRMESH_API std::function< float(VertId)> weights () const
 
MRMESH_API LimitedProjectorFunc limitedProjector () const
 

Public Attributes

MRMESH_API std::function< ProjectionResult(const Vector3f &) projector )() const
 returns a function that finds projection (closest) points on this: Vector3f->ProjectionResult
 

Detailed Description

This class can hold either mesh part or point cloud. It is used for generic algorithms operating with either of them

Member Typedef Documentation

◆ LimitedProjectorFunc

using MR::MeshOrPoints::LimitedProjectorFunc = std::function<void( const Vector3f& p, ProjectionResult& res )>

Constructor & Destructor Documentation

◆ MeshOrPoints() [1/3]

MR::MeshOrPoints::MeshOrPoints ( const Mesh & mesh)
inline

◆ MeshOrPoints() [2/3]

MR::MeshOrPoints::MeshOrPoints ( const MeshPart & mp)
inline

◆ MeshOrPoints() [3/3]

MR::MeshOrPoints::MeshOrPoints ( const PointCloud & pc)
inline

Member Function Documentation

◆ accumulate()

MRMESH_API void MR::MeshOrPoints::accumulate ( PointAccumulator & accum,
const AffineXf3f * xf = nullptr ) const

Adds in existing PointAccumulator the elements of the contained object.

◆ computeBoundingBox()

MRMESH_API Box3f MR::MeshOrPoints::computeBoundingBox ( const AffineXf3f * toWorld = nullptr) const

passes through all valid vertices and finds the minimal bounding box containing all of them; if toWorld transformation is given then returns minimal bounding box in world space

◆ limitedProjector()

MRMESH_API LimitedProjectorFunc MR::MeshOrPoints::limitedProjector ( ) const

returns a function that updates projection (closest) points on this, the update takes place only if res.distSq on input is more than squared distance to the closest point

◆ normals()

MRMESH_API std::function< Vector3f(VertId)> MR::MeshOrPoints::normals ( ) const

returns normals generating function: VertId->normal (or empty for point cloud without normals)

◆ points()

MRMESH_API const VertCoords & MR::MeshOrPoints::points ( ) const

gives access to points-vector (which can include invalid points as well)

◆ pointsGridSampling()

MRMESH_API std::optional< VertBitSet > MR::MeshOrPoints::pointsGridSampling ( float voxelSize,
size_t maxVoxels = 500000,
const ProgressCallback & cb = {} ) const

performs sampling of vertices or points; subdivides bounding box of the object on voxels of approximately given size and returns at most one vertex per voxel; voxelSize is automatically increased to avoid more voxels than

Parameters
maxVoxels;returns std::nullopt if it was terminated by the callback

◆ validPoints()

MRMESH_API const VertBitSet & MR::MeshOrPoints::validPoints ( ) const

gives access to bit set of valid points

◆ weights()

MRMESH_API std::function< float(VertId)> MR::MeshOrPoints::weights ( ) const

returns weights generating function: VertId->float: for mesh it is double area of surrounding triangles, and for point cloud - nothing

Member Data Documentation

◆ projector

MRMESH_API std::function< ProjectionResult(const Vector3f &) MR::MeshOrPoints::projector) () const

returns a function that finds projection (closest) points on this: Vector3f->ProjectionResult


The documentation for this class was generated from the following file: