- fn update(&mut self, device: &Joystick, _dt: Duration) {
- self.x = match device.axis(self.idx as u32) {
- Ok(val) => val as f32 / 32768.0,
- Err(_) => panic!("invalid x axis {}", self.idx),
- };
- self.y = match device.axis(self.idy as u32) {
- Ok(val) => val as f32 / 32768.0,
- Err(_) => panic!("invalid y axis {}", self.idy),
- };
- self.a = Radians(self.y.atan2(self.x) as f64);
- self.len = {
- let x = (self.x / self.y).abs().min(1.0);
- let y = (self.y / self.x).abs().min(1.0);
- (self.x.powi(2) + self.y.powi(2)).sqrt() / (x.powi(2) + y.powi(2)).sqrt()