1use glam::{Quat, Vec3};
2
3#[derive(Clone, Copy, Default, Debug, PartialEq)]
6pub struct Tilt {
7 pub quat: Quat,
8}
9
10impl Tilt {
11 pub const fn new(quat: Quat) -> Tilt {
13 Tilt { quat }
14 }
15
16 pub fn get_roll_radians(&self) -> Radians {
18 Radians(-self.quat.to_scaled_axis().dot(Vec3::Z))
19 }
20
21 pub fn get_pitch_radians(&self) -> Radians {
23 Radians(self.quat.to_scaled_axis().dot(Vec3::X))
24 }
25}
26
27#[derive(Clone, Copy, Default, Debug, PartialEq)]
29pub struct Radians(f32);
30
31impl Radians {
32 pub fn get_angle(&self) -> f32 {
34 self.0
35 }
36}
37
38impl From<f32> for Radians {
39 fn from(val: f32) -> Self {
40 Radians(val)
41 }
42}