1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38
pub type Real = f32; pub struct Vector3 { x: Real, y: Real, z: Real, } impl Copy for Vector3 {} impl Clone for Vector3 { fn clone(&self) -> Self { *self } } impl Vector3 { pub fn new() -> Vector3 { Vector3 { x: 0.0, y: 0.0, z: 0.0, } } pub fn scale(&mut self, scale: Real) { self.x = self.x * scale; self.y = self.y * scale; self.z = self.z * scale; } pub fn get_scaled(&self, scale: Real) -> Vector3 { Vector3 { x: self.x * scale, y: self.y * scale, z: self.z * scale, } } }