#include <Boctree.h>
Public Member Functions | |
template<class T > | |
bitunion< T > * | getChild (unsigned char index) |
Static Public Member Functions | |
template<class T > | |
static void | getChildren (const bitoct &parent, bitunion< T > *&children) |
template<class T > | |
static void | link (bitoct &parent, bitunion< T > *child) |
Public Attributes | |
signed long | child_pointer: 48 |
unsigned | leaf: 8 |
unsigned | valid: 8 |
This struct represents the nodes of the octree
child_pointer is a relative pointer to the first child of this node, as it is only 48 bit this will cause issues on systems with more than 268 TB of memory. All children of this node must be stored sequentially. If one of the children is a leaf, that child will be a pointer to however a set of points is represented (pointrep *).
valid is a bitmask describing whether the corresponding buckets are filled.
leaf is a bitmask describing whether the correpsonding bucket is a leaf node.
The representation of the bitmask is somewhat inefficient. We use 16 bits for only 3^8 possible states, so in essence we could save 3 bits by compression.
|
inline |