bounding volume hierarchy for point cloud structure
More...
#include <MRAABBTreePoints.h>
|
| static constexpr int | MaxNumPointsInLeaf = 16 |
| | maximum number of points in leaf node of tree (all of leafs should have this number of points except last one)
|
| |
bounding volume hierarchy for point cloud structure
◆ NodeBitSet
◆ NodeVec
◆ AABBTreePoints() [1/5]
| MRMESH_API MR::AABBTreePoints::AABBTreePoints |
( |
const PointCloud & | pointCloud | ) |
|
creates tree for given point cloud
◆ AABBTreePoints() [2/5]
| MRMESH_API MR::AABBTreePoints::AABBTreePoints |
( |
const Mesh & | mesh | ) |
|
creates tree for vertices of given mesh
◆ AABBTreePoints() [3/5]
| MRMESH_API MR::AABBTreePoints::AABBTreePoints |
( |
const VertCoords & | points, |
|
|
const VertBitSet * | validPoints = nullptr ) |
creates tree from given valid points
◆ AABBTreePoints() [4/5]
| MR_BIND_IGNORE MR::AABBTreePoints::AABBTreePoints |
( |
const VertCoords & | points, |
|
|
const VertBitSet & | validPoints ) |
|
inline |
creates tree from given valid points This is skipped in the bindings because it conflicts with the overload taking a pointer in C#. Since that overload is strictly more useful, we're keeping that one.
◆ AABBTreePoints() [5/5]
◆ getBoundingBox()
| Box3f MR::AABBTreePoints::getBoundingBox |
( |
| ) |
const |
|
inlinenodiscard |
returns the root node bounding box
◆ getLeafOrder()
| MRMESH_API void MR::AABBTreePoints::getLeafOrder |
( |
VertBMap & | vertMap | ) |
const |
returns the mapping original VertId to new id following the points order in the tree; buffer in vertMap must be resized before the call, and caller is responsible for filling missing vertex elements
◆ getLeafOrderAndReset()
| MRMESH_API void MR::AABBTreePoints::getLeafOrderAndReset |
( |
VertBMap & | vertMap | ) |
|
returns the mapping original VertId to new id following the points order in the tree; then resets leaf order as if the points were renumberd following the mapping; buffer in vertMap must be resized before the call, and caller is responsible for filling missing vertex elements
◆ heapBytes()
| MRMESH_API size_t MR::AABBTreePoints::heapBytes |
( |
| ) |
const |
|
nodiscard |
returns the amount of memory this object occupies on heap
◆ nodes()
| const NodeVec & MR::AABBTreePoints::nodes |
( |
| ) |
const |
|
inlinenodiscard |
◆ operator=()
◆ operator[]()
| const Node & MR::AABBTreePoints::operator[] |
( |
NodeId | nid | ) |
const |
|
inlinenodiscard |
◆ orderedPoints()
| const std::vector< Point > & MR::AABBTreePoints::orderedPoints |
( |
| ) |
const |
|
inlinenodiscard |
◆ refit()
| MRMESH_API void MR::AABBTreePoints::refit |
( |
const VertCoords & | newCoords, |
|
|
const VertBitSet & | changedVerts ) |
updates bounding boxes of the nodes containing changed vertices; this is a faster alternative to full tree rebuild (but the tree after refit might be less efficient)
- Parameters
-
| newCoords | coordinates of all vertices including changed ones; |
| changedVerts | vertex ids with modified coordinates (since tree construction or last refit) |
◆ rootNodeId()
| static NodeId MR::AABBTreePoints::rootNodeId |
( |
| ) |
|
|
inlinestaticnodiscard |
◆ SharedThreadSafeOwner< AABBTreePoints >
◆ UniqueThreadSafeOwner< AABBTreePoints >
◆ MaxNumPointsInLeaf
| int MR::AABBTreePoints::MaxNumPointsInLeaf = 16 |
|
staticconstexpr |
maximum number of points in leaf node of tree (all of leafs should have this number of points except last one)
The documentation for this class was generated from the following file: