From f02aabd4db7232f927622b87ea885491e6651b44 Mon Sep 17 00:00:00 2001 From: Julian T Date: Wed, 3 Feb 2021 14:23:14 +0100 Subject: Work on camera implementation using Transformations Not sure if this is really neccesary, will take that later, now it is saved on this commit. The reason it ditched it is that it requires the ability to inverse matrixes, which is really complicated --- src/core/transform.rs | 17 +++++++++++++++++ 1 file changed, 17 insertions(+) (limited to 'src/core/transform.rs') 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 -- cgit v1.2.3