use crate::PositioningAlgorithm;
use crate::common::Position;
pub struct RelativePositioning {
parent_position: Position
}
impl RelativePositioning {
pub fn new() -> Box<Self> {
return Box::new(Self {parent_position: Position::new(0, 0)});
}
}
impl PositioningAlgorithm for RelativePositioning {
fn calculate_position(&self, child_position: Position) -> Position {
let x = self.parent_position.get_x() + child_position.get_x();
let y = self.parent_position.get_y() + child_position.get_y();
return Position::new(x, y);
}
fn set_parent_position(&mut self, position: Position) {
self.parent_position = position
}
}