diff options
Diffstat (limited to 'src/core/transform.rs')
-rw-r--r-- | src/core/transform.rs | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/src/core/transform.rs b/src/core/transform.rs index f64710c..337d9b1 100644 --- a/src/core/transform.rs +++ b/src/core/transform.rs @@ -17,6 +17,7 @@ use super::matrix4x4::Matrix4x4f; use crate::Float; use crate::core::Vector3f; +use std::ops; pub struct Transform { m: Matrix4x4f, @@ -56,6 +57,22 @@ impl Transform { Vector3f::new_xyz(x, y, z) } + + pub fn inverse(&self) -> Self { + Transform { + m: self.m.inverse(), + } + } +} + +impl ops::Mul for Transform { + type Output = Transform; + + fn mul(self, op: Self) -> Self::Output { + Transform { + m: &self.m * &op.m + } + } } // Creation of different transformations |