32 [[nodiscard]]
const NodeVec& nodes()
const {
return nodes_; }
33 [[nodiscard]]
const Node& operator[]( NodeId nid )
const {
return nodes_[nid]; }
34 [[nodiscard]]
static NodeId rootNodeId() {
return NodeId{0}; }
36 [[nodiscard]] Box3f getBoundingBox()
const {
return nodes_.
empty() ? Box3f{} : nodes_[rootNodeId()].box; }
43 [[nodiscard]]
const std::vector<Point>& orderedPoints()
const {
return orderedPoints_; }
57 constexpr static int MaxNumPointsInLeaf = 16;
64 MRMESH_API void getLeafOrder( VertBMap & vertMap ) const;
71 [[nodiscard]]
MRMESH_API size_t heapBytes() const;
77 MRMESH_API void refit( const VertCoords & newCoords, const VertBitSet & changedVerts );
80 std::vector<Point> orderedPoints_;
92 assert( numPoints > 0 );
93 return 2 * ( ( numPoints + AABBTreePoints::MaxNumPointsInLeaf - 1 ) / AABBTreePoints::MaxNumPointsInLeaf ) - 1;
#define MRMESH_API
Definition MRMeshFwd.h:80
Definition MRAABBTreePoints.h:16
unsafe void refit(MR.Const_VertCoords newCoords, MR.Const_VertBitSet changedVerts)
unsafe AABBTreePoints(MR._ByValue_AABBTreePoints _other)
unsafe void getLeafOrderAndReset(MR.VertBMap vertMap)
Definition MRMesh/MRMesh.h:23
Definition MRMesh/MRPointCloud.h:17
std::vector<T>-like container that requires specific indexing type,
Definition MRVector.h:19
bool empty() const
Definition MRVector.h:49
int getNumNodesPoints(int numPoints)
Definition MRAABBTreePoints.h:90
Definition MRCameraOrientationPlugin.h:8
Definition MRAABBTreePoints.h:19
void setLeafPointRange(int first, int last)
sets [first,last) to this node (leaf)
Definition MRAABBTreePoints.h:28
Box3f box
bounding box of whole subtree
Definition MRAABBTreePoints.h:20
std::pair< int, int > getLeafPointRange() const
returns [first,last) indices of leaf points
Definition MRAABBTreePoints.h:26
bool leaf() const
returns true if node represent real points, false if it has child nodes
Definition MRAABBTreePoints.h:24
NodeId r
Definition MRAABBTreePoints.h:22
NodeId l
left child node for an inner node, or -(l+1) is the index of the first point in a leaf node
Definition MRAABBTreePoints.h:21
Definition MRAABBTreePoints.h:39
Vector3f coord
Definition MRAABBTreePoints.h:40
VertId id
Definition MRAABBTreePoints.h:41
readonly unsafe bool valid()