irox_geometry/
quadtree.rs1use crate::Point;
6use irox_tools::FloatIsh;
7
8#[derive(Debug, Default, Clone, PartialEq)]
9pub enum QuadtreeNode<T: FloatIsh, V: Clone> {
10 #[default]
11 Empty,
12 Split {
13 center: Point<T>,
14 element_count: usize,
15 nw: Box<QuadtreeNode<T, V>>,
16 ne: Box<QuadtreeNode<T, V>>,
17 sw: Box<QuadtreeNode<T, V>>,
18 se: Box<QuadtreeNode<T, V>>,
19 },
20 Values {
21 values: Vec<V>,
22 },
23}
24#[derive(Debug, Default, Clone, PartialEq)]
25pub struct Quadtree<T: FloatIsh, V: Clone> {
26 root: QuadtreeNode<T, V>,
27}