transform

Function transform 

Source
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]);