33 [[nodiscard]]
const VertBitSet &
getVertIds(
const VertBitSet * region )
const
35 assert( !region || ( *region -
validPoints ).none() );
65 const VertNormals * extNormals = nullptr );
#define MRMESH_API
Definition MRMesh/MRMeshFwd.h:46
bounding volume hierarchy for point cloud structure
Definition MRAABBTreePoints.h:16
Definition MRUniqueThreadSafeOwner.h:20
Definition MRCameraOrientationPlugin.h:8
Reorder
determines how points to be ordered
Definition MRMesh/MRMeshFwd.h:593
Definition MRCloudPartMapping.h:10
Definition MRMesh/MRPointCloud.h:16
VertCoords points
coordinates of points
Definition MRMesh/MRPointCloud.h:18
MRMESH_API size_t heapBytes() const
returns the amount of memory this object occupies on heap
VertNormals normals
unit normal directions of points (can be empty if no normals are known)
Definition MRMesh/MRPointCloud.h:21
MRMESH_API Box3f getBoundingBox() const
returns the minimal bounding box containing all valid vertices (implemented via getAABBTree())
MRMESH_API void flipOrientation(const VertBitSet *region=nullptr)
flip orientation (normals) of given points (or all valid points is nullptr)
MRMESH_API void addPartByMask(const PointCloud &from, const VertBitSet &fromVerts, const CloudPartMapping &outMap={}, const VertNormals *extNormals=nullptr)
bool hasNormals() const
returns true if there is a normal for each point
Definition MRMesh/MRPointCloud.h:30
size_t calcNumValidPoints() const
computes the total number of valid points in the cloud
Definition MRMesh/MRPointCloud.h:27
const VertBitSet & getVertIds(const VertBitSet *region) const
if region pointer is not null then converts it in reference, otherwise returns all valid points in th...
Definition MRMesh/MRPointCloud.h:33
MRMESH_API const AABBTreePoints & getAABBTree() const
returns cached aabb-tree for this point cloud, creating it if it did not exist in a thread-safe manne...
MRMESH_API void mirror(const Plane3f &plane)
reflects the points from a given plane
MRMESH_API VertId addPoint(const Vector3f &point)
appends a point and returns its VertId
MRMESH_API std::vector< VertId > getLexicographicalOrder() const
returns all valid point ids sorted lexicographically by their coordinates (optimal for uniform sampli...
VertBitSet validPoints
only points and normals corresponding to set bits here are valid
Definition MRMesh/MRPointCloud.h:24
MRMESH_API VertBMap pack(Reorder reoder)
void invalidateCaches()
Invalidates caches (e.g. aabb-tree) after a change in point cloud.
Definition MRMesh/MRPointCloud.h:89
MRMESH_API bool pack(VertMap *outNew2Old=nullptr)
MRMESH_API Box3f computeBoundingBox(const AffineXf3f *toWorld=nullptr) const
const AABBTreePoints * getAABBTreeNotCreate() const
returns cached aabb-tree for this point cloud, but does not create it if it did not exist
Definition MRMesh/MRPointCloud.h:43
MRMESH_API VertId addPoint(const Vector3f &point, const Vector3f &normal)
appends a point with normal and returns its VertId
MRMESH_API Vector3f findCenterFromPoints() const
computes average position of all valid points
MRMESH_API Vector3f findCenterFromBBox() const
computes bounding box and returns its center