summaryrefslogtreecommitdiff
path: root/engine/src/transform.rs
diff options
context:
space:
mode:
authorHampusM <hampus@hampusmat.com>2025-11-07 13:57:49 +0100
committerHampusM <hampus@hampusmat.com>2025-11-07 13:57:49 +0100
commitdfb6b4e45065c618fdd2df7424fd66c439cd1841 (patch)
tree04fe2cc64d0370921790b852ef7553157a06b41a /engine/src/transform.rs
parentc85039da1d8c65cad4cd661b08e4acba706e32ee (diff)
feat(engine): make renderer command-basedHEADmaster
Diffstat (limited to 'engine/src/transform.rs')
-rw-r--r--engine/src/transform.rs39
1 files changed, 39 insertions, 0 deletions
diff --git a/engine/src/transform.rs b/engine/src/transform.rs
index 7c0c941..05819bc 100644
--- a/engine/src/transform.rs
+++ b/engine/src/transform.rs
@@ -1,7 +1,46 @@
use ecs::Component;
+use crate::builder;
use crate::vector::Vec3;
+builder!(
+ #[builder(name = Builder, derives=(Debug))]
+ #[derive(Debug)]
+ #[non_exhaustive]
+ pub struct Transform
+ {
+ pub position: Vec3<f32>,
+ pub scale: Vec3<f32>,
+ }
+);
+
+impl Transform
+{
+ pub fn builder() -> Builder
+ {
+ Builder::default()
+ }
+}
+
+impl Default for Transform
+{
+ fn default() -> Self
+ {
+ Self::builder().build()
+ }
+}
+
+impl Default for Builder
+{
+ fn default() -> Self
+ {
+ Self {
+ position: Vec3::from(0.0),
+ scale: Vec3::from(1.0),
+ }
+ }
+}
+
/// A position in world space.
#[derive(Debug, Default, Clone, Copy, Component)]
pub struct WorldPosition