aboutsummaryrefslogtreecommitdiff
path: root/src/core/transform.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/core/transform.rs')
-rw-r--r--src/core/transform.rs17
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