octoon-math is designed for rust developers working on games and compute graphics
Add this to your Cargo.toml:
[dependencies]
octoon-math = { version = "0.1", features = ["serialize"] }externcrate octoon_math;use octoon_math::*;use octoon_math::consts::*;fnmain(){// new float2let a = float2::new(1.0,0.0);let b = float!(0.0,1.0);// same as float2::new// new float3let c = float3::new(1.0,0.0,0.0);let d = float!(0.0,1.0,0.0);// same as float3::new// new float4let e = float4::new(1.0,0.0,0.0,0.0);let f = float!(0.0,1.0,0.0,0.0);// same as float4::new// new arraylet x = 0.5;let y = 0.5;let z = 0.5;let vertices:Vec<float3> = vec![
float!(-x,-y,-z), float!( x,-y,-z), float!( x, y,-z), float!(-x, y,-z), float!(-x,-y, z), float!( x,-y, z), float!( x, y, z), float!(-x, y, z),
float!(-x,-y,-z), float!(-x, y,-z), float!(-x, y, z), float!(-x,-y, z),
float!( x,-y,-z), float!( x, y,-z), float!( x, y, z), float!( x,-y, z), float!(-x,-y,-z), float!(-x,-y, z), float!( x,-y, z), float!( x,-y,-z),
float!(-x, y,-z), float!(-x, y, z), float!( x, y, z), float!( x, y,-z),];// operatorslet ab = a.dot(b);let cd = c.cross(d);let ef = e.lerp(f,0.5);let len = a.length();// constslet pi = f32::pi();let pi2 = f32::pi2();let pi4 = f32::pi4();let one = float2::one();let zero = float2::zero();let unitx = float3::unit_x();// say: float3::new(1.0, 0.0, 0.0)let unity = float3::unit_y();// say: float3::new(0.0, 1.0, 0.0)let unitz = float3::unit_z();// say: float3::new(0.0, 0.0, 1.0)}