#[cfg(feature = "web")] use wasm_bindgen::prelude::*; use slug::slugify; #[cfg_attr(feature = "web", wasm_bindgen)] #[derive(Debug, Clone, Copy, PartialEq)] pub enum TransformationType { Scale, Rotate, Skew, Matrix, } #[derive(Debug, Clone, Copy, PartialEq)] pub enum Transformation { Scale(f32, f32), Rotate(f32), Skew(f32, f32), Matrix(f32, f32, f32, f32, f32, f32), } impl Transformation { pub fn name(&self) -> String { match self { Transformation::Matrix(..) => "matrix", Transformation::Rotate(..) => "rotate", Transformation::Scale(..) => "scale", Transformation::Skew(..) => "skew", } .to_owned() } #[allow(non_snake_case)] pub fn ScaleUniform(scale: f32) -> Self { Transformation::Scale(scale, scale) } pub fn id(&self) -> String { slugify(format!("{:?}", self)) } }