summaryrefslogtreecommitdiff
path: root/engine/src/transform.rs
diff options
context:
space:
mode:
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