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}