pub fn transform(a: [f32; 3], from: &System, to: &System) -> [f32; 3]
Expand description
Perform co-ordinate system transform.
ยงExamples
KittyCAD (+Z up, -Y forward) to OpenGL (+Y up, +Z forward):
let a = [1.0, 2.0, 3.0];
let b = transform(a, KITTYCAD, OPENGL);
assert_eq!(b, [1.0, 3.0, -2.0]);
OpenGL (+Y up, +Z forward) to KittyCAD (+Z up, -Y forward):
let a = [1.0, 2.0, 3.0];
let b = transform(a, OPENGL, KITTYCAD);
assert_eq!(b, [1.0, -3.0, 2.0]);
KittyCAD (+Z up, -Y forward) to Vulkan (-Y up, +Z forward):
let a = [1.0, 2.0, 3.0];
let b = transform(a, KITTYCAD, VULKAN);
assert_eq!(b, [1.0, -3.0, -2.0]);
OpenGL (+Y up, +Z forward) to Vulkan (-Y up, +Z forward):
let a = [1.0, 2.0, 3.0];
let b = transform(a, OPENGL, VULKAN);
assert_eq!(b, [1.0, -2.0, 3.0]);