nalgebra_glm/ext/
quaternion_geometric.rs

1use crate::RealNumber;
2
3use crate::aliases::Qua;
4
5/// Multiplies two quaternions.
6pub fn quat_cross<T: RealNumber>(q1: &Qua<T>, q2: &Qua<T>) -> Qua<T> {
7    q1 * q2
8}
9
10/// The scalar product of two quaternions.
11pub fn quat_dot<T: RealNumber>(x: &Qua<T>, y: &Qua<T>) -> T {
12    x.dot(y)
13}
14
15/// The magnitude of the quaternion `q`.
16pub fn quat_length<T: RealNumber>(q: &Qua<T>) -> T {
17    q.norm()
18}
19
20/// The magnitude of the quaternion `q`.
21pub fn quat_magnitude<T: RealNumber>(q: &Qua<T>) -> T {
22    q.norm()
23}
24
25/// Normalizes the quaternion `q`.
26pub fn quat_normalize<T: RealNumber>(q: &Qua<T>) -> Qua<T> {
27    q.normalize()
28}