Skip to main content

dualsense_tools/state/
spatial_sensor.rs

1use glam::Vec3;
2
3/// Models the readings from a 3d spatial sensor (accelerometer, gyro).
4#[derive(Clone, Copy, Debug, Default, Eq, PartialEq, Hash)]
5pub struct SpatialSensor<V> {
6    pub x: V,
7    pub y: V,
8    pub z: V,
9}
10
11impl<V> SpatialSensor<V> {
12    pub fn new(x: V, y: V, z: V) -> SpatialSensor<V> {
13        SpatialSensor { x, y, z }
14    }
15}
16
17impl<V> SpatialSensor<V>
18where
19    V: Into<f32> + Copy,
20{
21    /// Reads the values as a glam Vec3
22    pub fn as_vec3(&self) -> Vec3 {
23        Vec3::new(self.x.into(), self.y.into(), self.z.into())
24    }
25}