diff --git a/src/transformer.rs b/src/transformer.rs index c31b947..564b981 100644 --- a/src/transformer.rs +++ b/src/transformer.rs @@ -1,18 +1,12 @@ //pub mod common; mod translate; mod replicate; -mod rotate; -mod flip_horizontal; -mod flip_vertical; use crate::point::Point; // re-export transformers to be abe to use it directly from transformer:: pub use translate::Translate; pub use replicate::Replicate; -pub use rotate::Rotate; -pub use flip_horizontal::FlipHorizontal; -pub use flip_vertical::FlipVertical; pub trait Transformers { fn apply(&self, point_list: &[Point]) -> Vec; diff --git a/src/transformer/flip_horizontal.rs b/src/transformer/flip_horizontal.rs deleted file mode 100644 index 2157ddd..0000000 --- a/src/transformer/flip_horizontal.rs +++ /dev/null @@ -1,28 +0,0 @@ -use crate::transformer::Transformers; -use crate::point::Point; -use serde::{Serialize,Deserialize}; - -/// Flip Horizontal - -#[derive(Serialize,Deserialize,Debug,Clone,Copy)] -pub struct FlipHorizontal { - x: f32, -} - -impl FlipHorizontal { - pub fn new(x: f32) -> Self { - Self {x} - } -} - -impl Transformers for FlipHorizontal { - fn apply(&self, point_list: &[Point]) -> Vec { - point_list.iter() - .map(| pt | { - let dx = pt.x - self.x; - Point { x: dx - 2. * dx, - ..*pt - } - }).collect() - } -} diff --git a/src/transformer/flip_vertical.rs b/src/transformer/flip_vertical.rs deleted file mode 100644 index b4f6d59..0000000 --- a/src/transformer/flip_vertical.rs +++ /dev/null @@ -1,28 +0,0 @@ -use crate::transformer::Transformers; -use crate::point::Point; -use serde::{Serialize,Deserialize}; - -/// Flip Vertical - -#[derive(Serialize,Deserialize,Debug,Clone,Copy)] -pub struct FlipVertical { - y: f32, -} - -impl FlipVertical { - pub fn new(y: f32) -> Self { - Self {y} - } -} - -impl Transformers for FlipVertical { - fn apply(&self, point_list: &[Point]) -> Vec { - point_list.iter() - .map(| pt | { - let dy = pt.y - self.y; - Point { y: dy - 2. * dy, - ..*pt - } - }).collect() - } -} diff --git a/src/transformer/rotate.rs b/src/transformer/rotate.rs deleted file mode 100644 index ca574ba..0000000 --- a/src/transformer/rotate.rs +++ /dev/null @@ -1,39 +0,0 @@ -use crate::transformer::Transformers; -use crate::point::Point; -use serde::{Serialize,Deserialize}; -use std::f32::consts::PI; - -/// Rotate - -#[derive(Serialize,Deserialize,Debug,Clone,Copy)] -pub struct Rotate { - cx: f32, - cy: f32, - angle: f32, - -} - -impl Rotate { - pub fn new(cx: f32, cy: f32, angle: f32) -> Self { - Self { cx, cy, angle: angle / 180. * PI} - } -} - -impl Transformers for Rotate { - fn apply(&self, point_list: &[Point]) -> Vec { - point_list.iter() - .map(| pt | { - let dx = (pt.x - self.cx); - let dy = (pt.y - self.cy); - let cos = self.angle.cos(); - let sin = self.angle.sin(); - let x = (dx * cos - dy * sin) + self.cx; - let y = (dx * sin + dy * cos) + self.cy; - Point { x, - y, - ..*pt - } - }).collect() - } -} -