anput_physics/utils.rs
1use crate::Scalar;
2use vek::{Quaternion, Vec3};
3
4pub fn quat_from_axis_angle(axis: Vec3<Scalar>, angle: Scalar) -> Quaternion<Scalar> {
5 let half_angle = angle * 0.5;
6 let (sin_half, cos_half) = half_angle.sin_cos();
7 let axis = axis.normalized();
8
9 Quaternion {
10 x: axis.x * sin_half,
11 y: axis.y * sin_half,
12 z: axis.z * sin_half,
13 w: cos_half,
14 }
15}