conspire/geometry/ntree/balance/
mod.rs1pub mod octree;
2pub mod quadtree;
3
4use crate::geometry::ntree::pair::Pairing;
5
6#[derive(Clone, Copy)]
7pub enum Balancing {
8 Strong,
9 Weak,
10 None,
11}
12
13pub trait Balance {
14 fn equilibrate(&mut self, balancing: Balancing, pairing: Pairing) -> Result<(), &'static str> {
15 let mut balanced = false;
16 let mut paired = false;
17 while !balanced || !paired {
18 balanced = self.balance(balancing);
19 paired = self.pair_up(pairing)?;
20 }
21 Ok(())
22 }
23 fn balance(&mut self, balancing: Balancing) -> bool;
24 fn pair_up(&mut self, pairing: Pairing) -> Result<bool, &'static str>;
25}