struct mrpt::opengl::COctreePointRenderer::TNodeο
The structure for each octree spatial node.
Each node can either be a leaf of has 8 children nodes. Instead of pointers, children are referenced by their indices in m_octree_nodes
struct TNode { // fields bool is_leaf {true}; mrpt::math::TPoint3Df bb_min; mrpt::math::TPoint3Df bb_max; std::vector<size_t> pts; bool all {false}; mrpt::math::TPoint3Df center; size_t child_id[8] = {0, 0, 0, 0, 0, 0, 0, 0}; // construction TNode(); // methods void update_bb(const mrpt::math::TPoint3Df& p); float getCornerX(int i) const; float getCornerY(int i) const; float getCornerZ(int i) const; void setBBFromOrderInParent( const TNode& parent, int my_child_index ); };
Fieldsο
bool is_leaf {true}
true: itβs a leaf and pts has valid indices; false: children is valid.
std::vector<size_t> pts
Point indices in the derived class that fall into this node.
bool all {false}
true: All elements in the reference object; false: only those in pts
mrpt::math::TPoint3Df center
[is_leaf=false] The center of the node, whose coordinates are used to decide between the 8 children nodes.
size_t child_id[8] = {0, 0, 0, 0, 0, 0, 0, 0}
[is_leaf=false] The indices in m_octree_nodes of the 8 children.
Methodsο
void update_bb(const mrpt::math::TPoint3Df& p)
update bounding box with a new point: