aboutsummaryrefslogtreecommitdiff
path: root/stockton-types/src/components/mod.rs
diff options
context:
space:
mode:
authortcmal <me@aria.rip>2024-08-25 17:44:24 +0100
committertcmal <me@aria.rip>2024-08-25 17:44:24 +0100
commit6367a9ba5a549b62f01da61fb50323877b9f52ff (patch)
treeeb83ed6487f2ec35f9ea1e97124c9a173b8ceef0 /stockton-types/src/components/mod.rs
parentf84ec1a3e077fa0f2e9cd310b6e32e81f1bc1129 (diff)
refactor(all): move types to -skeleton
Diffstat (limited to 'stockton-types/src/components/mod.rs')
-rw-r--r--stockton-types/src/components/mod.rs61
1 files changed, 0 insertions, 61 deletions
diff --git a/stockton-types/src/components/mod.rs b/stockton-types/src/components/mod.rs
deleted file mode 100644
index a90f5e8..0000000
--- a/stockton-types/src/components/mod.rs
+++ /dev/null
@@ -1,61 +0,0 @@
-use na::{Mat4, Vec4};
-use std::f32::consts::PI;
-
-use crate::Vector3;
-
-/// 90 degrees in radians
-const R89: f32 = (PI / 180.0) * 89.0;
-
-/// 180 degrees in radians
-const R180: f32 = PI;
-
-#[derive(Clone, Copy, Debug, PartialEq)]
-pub struct Transform {
- /// Position of the object
- pub position: Vector3,
-
- /// Rotation of the object (euler angles in radians)
- pub rotation: Vector3,
-}
-
-impl Transform {
- pub fn rotate(&mut self, vec: Vector3) {
- self.rotation += vec;
-
- // Clamp -pi/2 < pitch < pi/2
- if self.rotation.x > R89 {
- self.rotation.x = R89;
- } else if self.rotation.x <= -R89 {
- self.rotation.x = -R89;
- }
-
- // -pi < yaw <= pi
- if self.rotation.y <= -R180 {
- self.rotation.y = R180 - self.rotation.y % -R180;
- } else if self.rotation.y > 180.0 {
- self.rotation.y = -R180 + self.rotation.y % R180;
- }
- }
-
- pub fn translate(&mut self, delta: Vector3) {
- let rot_matrix =
- Mat4::from_euler_angles(-self.rotation.x, self.rotation.y, self.rotation.z);
-
- let new = rot_matrix * Vec4::new(delta.x, delta.y, delta.z, 1.0);
- self.position.x += new.x;
- self.position.y += new.y;
- self.position.z += new.z;
- }
-}
-
-#[derive(Clone, Copy, Debug, PartialEq)]
-pub struct CameraSettings {
- /// FOV (radians)
- pub fov: f32,
-
- /// Near clipping plane (world units)
- pub near: f32,
-
- /// Far clipping plane (world units)
- pub far: f32,
-}