use egui::Rect;
#[derive(Clone, Debug)]
#[cfg_attr(
feature = "serde",
derive(serde::Deserialize, serde::Serialize),
serde(default)
)]
pub struct SplitNode {
pub rect: Rect,
pub fraction: f32,
pub fully_collapsed: bool,
pub collapsed_leaf_count: i32,
}
impl SplitNode {
pub const fn new(
rect: Rect,
fraction: f32,
fully_collapsed: bool,
collapsed_leaf_count: i32,
) -> Self {
Self {
rect,
fraction,
fully_collapsed,
collapsed_leaf_count,
}
}
#[inline]
pub fn set_rect(&mut self, new_rect: Rect) {
self.rect = new_rect;
}
pub fn rect(&self) -> Rect {
self.rect
}
}
impl Default for SplitNode {
fn default() -> Self {
Self::new(Rect::NOTHING, 0.0, false, 0)
}
}