Macro adi_gpu::quat[]

macro_rules! quat {
    (  ) => { ... };
    ( $ expr : expr ) => { ... };
    ( $ axis : expr ; $ angle : expr ) => { ... };
    (
$ x : expr , $ y : expr , $ z : expr ; $ angle : expr ) => { ... };
}

Single-precision quaternion macro constructor.

Identity.

let q = quat!();
assert_eq!(q.as_ref(), &[0.0, 0.0, 0.0, 1.0]);

Rotation around explicit axis values.

use std::f32::consts::PI;
let q = quat!(1.0, 0.0, 0.0; PI / 2.0);
assert_relative_eq!(q, Quat::new(f32::cos(PI / 4.0), 0.0, 0.0, f32::sin(PI / 4.0)));

Rotation around a Vec3 axis.

use std::f32::consts::PI;
let axis = vec3!(1.0, 0.0, 0.0);
let q = quat!(axis; PI / 2.0);
assert_relative_eq!(q, Quat::new(f32::cos(PI / 4.0), 0.0, 0.0, f32::sin(PI / 4.0)));