use super::*;
mod axis_transform3d;
mod isotropic3d;
mod transform3d;
mod translate3d;
pub use axis_transform3d::*;
pub use isotropic3d::*;
pub use transform3d::*;
pub use translate3d::*;
#[cfg(feature = "bevy")]
mod bevy_transform;
#[cfg(feature = "bevy")]
pub use bevy_transform::*;
pub trait Transformation3d {
fn apply_origin(&self) -> Vec3 {
self.apply(Vec3::ZERO)
}
fn apply(&self, point: Vec3) -> Vec3;
fn unapply_origin(&self) -> Vec3 {
self.unapply(Vec3::ZERO)
}
fn unapply(&self, point: Vec3) -> Vec3;
}
impl Transformation3d for IdentityTransform {
fn apply_origin(&self) -> Vec3 {
Vec3::ZERO
}
fn apply(&self, point: Vec3) -> Vec3 {
point
}
fn unapply(&self, point: Vec3) -> Vec3 {
point
}
}