use crate::*; pub struct VectorPoints { points: [ScreenPosition; 3], pointer: usize, } impl VectorPoints { pub fn new() -> Self { Self { points: [ScreenPosition::ZERO; 3], pointer: 0 } } pub fn push(&mut self, point: ScreenPosition) { self.points[self.pointer] = point; self.pointer = (self.pointer + 1) % 3; } pub fn get_pair(&self) -> [ScreenPosition; 2] { [ self.points[(self.pointer + 1) % 3], self.points[(self.pointer + 2) % 3], ] } pub fn get_triple(&self) -> [ScreenPosition; 3] { self.points } }