pub fn compose<'out, T>(
out: &'out mut [T; 16],
position: &[T; 3],
scale: &[T; 3],
rotation: &[T; 4]
) -> &'out mut [T; 16] where
T: Clone + Zero + One + Add<T, Output = T> + Sub<T, Output = T>,
&'a T: Mul<&'b T, Output = T> + Add<&'b T, Output = T> + Sub<&'b T, Output = T>,
let mut m = mat4::new_identity();
let position = [0f32, 0f32, 0f32];
let scale = [1f32, 1f32, 1f32];
let rotation = [0f32, 0f32, 0f32, 1f32];
mat4::compose(&mut m, &position, &scale, &rotation);
assert_eq!(m, mat4::new_identity());