lj_rust/src/transformer/flip_horizontal.rs

25 lines
547 B
Rust

use crate::transformer::Transformers;
use crate::point::Point;
use crate::worldstate::WorldState;
use serde::{Serialize,Deserialize};
/// Flip Horizontal
#[derive(Serialize,Deserialize,Debug,Clone,Copy)]
pub struct FlipHorizontal {
x: f32,
}
impl Transformers for FlipHorizontal {
fn apply(&self, point_list: &[Point], _ws: &WorldState) -> Vec<Point> {
point_list.iter()
.map(| pt | {
let dx = pt.x - self.x;
Point { x: dx - 2. * dx,
..*pt
}
}).collect()
}
}