1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
use crate::quadtree::AABB;
pub trait ElementIdType: Default + std::cmp::Eq + std::hash::Hash + Copy {}
impl<T> ElementIdType for T where T: Default + std::cmp::Eq + std::hash::Hash + Copy {}
#[derive(Debug, PartialEq, Eq, Default, Copy, Clone)]
pub struct QuadTreeElement<ElementId = u32>
where
ElementId: ElementIdType,
{
pub rect: AABB,
pub id: ElementId,
}
impl<ElementId> QuadTreeElement<ElementId>
where
ElementId: ElementIdType,
{
pub fn new(id: ElementId, rect: AABB) -> Self {
Self { id, rect }
}
}