Constructs a new octree.
Each octant can be uniquely identified by a 3D coordinate and a level. The tree depth is defined by the highest number of bits in the key design.
If the bounds of the octree are defined directly, the cell size will depend on the bounds and the key design. Alternatively, the bounds can be calculated from a desired cell size via KeyDesign.calculateBounds.
Readonly
rootThe root node of this octree.
Returns an iterator that returns all leaf nodes.
An iterator.
Checks if the given point lies inside this octree's boundaries.
A point.
Whether the given point lies inside this octree.
Recursively collects nodes that intersect with the specified region.
The nodes.
Removes a specific octant.
Children and empty intermediate parent octants will be removed as well.
The key coordinates of the octant that should be removed.
The level of the octant.
Finds nodes that intersect with the given ray. The intersecting nodes are sorted by distance, closest first.
A raycaster.
The intersecting nodes.
Returns a new octree iterator.
The octants returned by this iterator are augmented wrappers with explicit positional information.
The depth level.
An octree iterator.
An octree that subdivides space for fast spatial searches.
This linear implementation offers constant time access to octants at any depth level as well as octant neighbours and parent nodes.