#[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))
}
}