summaryrefslogtreecommitdiff
path: root/engine
diff options
context:
space:
mode:
Diffstat (limited to 'engine')
-rw-r--r--engine/src/object.rs7
-rw-r--r--engine/src/transform.rs24
2 files changed, 16 insertions, 15 deletions
diff --git a/engine/src/object.rs b/engine/src/object.rs
index 4112bcb..3827763 100644
--- a/engine/src/object.rs
+++ b/engine/src/object.rs
@@ -42,17 +42,18 @@ impl Object
#[must_use]
pub fn position(&self) -> &Vec3<f32>
{
- self.transform.translation()
+ self.transform.position()
}
pub fn translate(&mut self, translation: Vec3<f32>)
{
- self.transform.set_translation(translation);
+ self.transform
+ .set_position(self.transform.position().clone() + translation);
}
pub fn scale(&mut self, scaling: Vec3<f32>)
{
- self.transform.set_scaling(scaling);
+ self.transform.set_scale(scaling);
}
#[must_use]
diff --git a/engine/src/transform.rs b/engine/src/transform.rs
index b01e3c1..a9d9980 100644
--- a/engine/src/transform.rs
+++ b/engine/src/transform.rs
@@ -4,8 +4,8 @@ use crate::vector::Vec3;
#[derive(Debug, Clone)]
pub struct Transform
{
- translation: Vec3<f32>,
- scaling: Vec3<f32>,
+ position: Vec3<f32>,
+ scale: Vec3<f32>,
}
impl Transform
@@ -13,33 +13,33 @@ impl Transform
pub fn new() -> Self
{
Self {
- translation: Vec3::default(),
- scaling: Vec3 { x: 1.0, y: 1.0, z: 1.0 },
+ position: Vec3::default(),
+ scale: Vec3 { x: 1.0, y: 1.0, z: 1.0 },
}
}
- pub fn translation(&self) -> &Vec3<f32>
+ pub fn position(&self) -> &Vec3<f32>
{
- &self.translation
+ &self.position
}
- pub fn set_translation(&mut self, translation: Vec3<f32>)
+ pub fn set_position(&mut self, position: Vec3<f32>)
{
- self.translation = translation;
+ self.position = position;
}
- pub fn set_scaling(&mut self, scaling: Vec3<f32>)
+ pub fn set_scale(&mut self, scale: Vec3<f32>)
{
- self.scaling = scaling;
+ self.scale = scale;
}
pub fn as_matrix(&self) -> Matrix<f32, 4, 4>
{
let mut matrix = Matrix::new_identity();
- matrix.translate(&self.translation);
+ matrix.translate(&self.position);
- matrix.scale(&self.scaling);
+ matrix.scale(&self.scale);
matrix
}