rocketsim 0.2.0

Simulate Rocket League games at maximum efficiency
Documentation
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
use glam::{Quat, Vec3A};

pub trait QuatExt {
    fn from_axis_angle_simd(axis: Vec3A, angle: f32) -> Self;
}

impl QuatExt for Quat {
    /// An implementation of `Quat::from_axis_angle` that leverages SIMD.
    #[inline]
    fn from_axis_angle_simd(axis: Vec3A, angle: f32) -> Self {
        debug_assert!(axis.is_normalized());
        let (s, c) = f32::sin_cos(angle * 0.5);
        let v = axis * s;
        Self::from_xyzw(v.x, v.y, v.z, c)
    }
}