octoon-math is designed for rust developers working on games and compute graphics
Add this to your Cargo.toml:
toml
[dependencies]
octoon-math = { version = "0.1", features = ["serialize"] }
```rust extern crate octoon_math;
use octoonmath::*; use octoonmath::consts::*;
fn main() { // new float2 let a = float2::new(1.0,0.0); let b = float!(0.0,1.0); // same as float2::new
// new float3 let c = float3::new(1.0,0.0,0.0); let d = float!(0.0,1.0,0.0); // same as float3::new
// new float4 let 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 array let 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),
];
// operators let ab = a.dot(b); let cd = c.cross(d); let ef = e.lerp(f, 0.5); let len = a.length();
// consts let pi = f32::pi(); let pi2 = f32::pi2(); let pi4 = f32::pi4(); let one = float2::one(); let zero = float2::zero(); let unitx = float3::unitx(); // say: float3::new(1.0, 0.0, 0.0) let unity = float3::unity(); // say: float3::new(0.0, 1.0, 0.0) let unitz = float3::unit_z(); // say: float3::new(0.0, 0.0, 1.0) } ```