From 08748ad78bde8ff638d6aed1e93ef81142b9a29f Mon Sep 17 00:00:00 2001 From: Brendan Zabarauskas Date: Mon, 1 Oct 2012 16:23:49 +1000 Subject: [PATCH] De-moded functions and methods --- src/mat.rs | 202 +++++++++++++++++++++++------------------------ src/quat.rs | 32 ++++---- src/vec.rs | 116 +++++++++++++-------------- test/test_mat.rs | 78 +++++++++--------- test/test_vec.rs | 38 ++++----- 5 files changed, 231 insertions(+), 235 deletions(-) diff --git a/src/mat.rs b/src/mat.rs index 8d3da96..c7e33b4 100644 --- a/src/mat.rs +++ b/src/mat.rs @@ -14,19 +14,19 @@ pub trait Matrix { pure fn cols() -> uint; pure fn is_col_major() -> bool; - pure fn row(&&i:uint) -> V; - pure fn col(&&i:uint) -> V; + pure fn row(i: uint) -> V; + pure fn col(i: uint) -> V; - pure fn mul_f(&&value:T) -> self; - pure fn mul_v(&&other:V) -> V; - pure fn add_m(&&other:self) -> self; - pure fn sub_m(&&other:self) -> self; - pure fn mul_m(&&other:self) -> self; + pure fn mul_f(value: T) -> self; + pure fn mul_v(other: &V) -> V; + pure fn add_m(other: &self) -> self; + pure fn sub_m(other: &self) -> self; + pure fn mul_m(other: &self) -> self; - // pure fn invert(&&other:self) -> self; + // pure fn invert(other: &self) -> self; pure fn transpose() -> self; - pure fn exact_eq(&&other:self) -> bool; + pure fn exact_eq(other: &self) -> bool; pure fn is_identity() -> bool; pure fn is_symmetric() -> bool; @@ -38,7 +38,7 @@ pub trait Matrix { // 3x3 Matrix // pub trait Matrix3 { - pure fn scale(&&vec:V3) -> self; + pure fn scale(vec: &V3) -> self; pure fn to_Mat4() -> Mat4; pure fn to_Quat() -> Quat; } @@ -47,8 +47,8 @@ pub trait Matrix3 { // 4x4 Matrix // pub trait Matrix4 { - pure fn scale(&&vec:V3) -> self; // I don't like the use of `Vec3` here - pure fn translate(&&vec:V3) -> self; + pure fn scale(vec: &V3) -> self; // I don't like the use of `Vec3` here + pure fn translate(vec: &V3) -> self; } @@ -80,8 +80,8 @@ pub pure fn Mat2(m00:float, m01:float, // Conpub struct Mat2 from column vectors // #[inline] -pub pure fn Mat2_v(col0:Vec2, col1:Vec2) -> Mat2 { - Mat2 { data: [ col0, col1 ] } +pub pure fn Mat2_v(col0: &Vec2, col1: &Vec2) -> Mat2 { + Mat2 { data: [ *col0, *col1 ] } } // @@ -98,42 +98,42 @@ pub impl Mat2: Matrix { pure fn is_col_major() -> bool { true } #[inline] - pure fn row(&&i:uint) -> Vec2 { + pure fn row(i: uint) -> Vec2 { Vec2(self[0][i], self[1][i]) } #[inline] - pure fn col(&&i:uint) -> Vec2 { + pure fn col(i: uint) -> Vec2 { self.data[i] } #[inline] - pure fn mul_f(&&value:float) -> Mat2 { - Mat2_v(self[0].mul_f(value), - self[1].mul_f(value)) + pure fn mul_f(value: float) -> Mat2 { + Mat2_v(&self[0].mul_f(value), + &self[1].mul_f(value)) } #[inline] - pure fn mul_v(&&other:Vec2) -> Vec2 { + pure fn mul_v(other: &Vec2) -> Vec2 { Vec2(self[0][0]*other[0] + self[1][0]*other[1], self[0][1]*other[0] + self[1][1]*other[1]) } #[inline] - pure fn add_m(&&other:Mat2) -> Mat2 { - Mat2_v(self[0].add_v(other[0]), - self[1].add_v(other[1])) + pure fn add_m(other: &Mat2) -> Mat2 { + Mat2_v(&self[0].add_v(&other[0]), + &self[1].add_v(&other[1])) } #[inline] - pure fn sub_m(&&other:Mat2) -> Mat2 { - Mat2_v(self[0].sub_v(other[0]), - self[1].sub_v(other[1])) + pure fn sub_m(other: &Mat2) -> Mat2 { + Mat2_v(&self[0].sub_v(&other[0]), + &self[1].sub_v(&other[1])) } #[inline] - pure fn mul_m(&&other:Mat2) -> Mat2 { + pure fn mul_m(other: &Mat2) -> Mat2 { Mat2(self[0][0]*other[0][0] + self[1][0]*other[0][1], self[0][1]*other[0][0] + self[1][1]*other[0][1], @@ -143,7 +143,7 @@ pub impl Mat2: Matrix { // TODO - inversion is harrrd D: // #[inline] - // pure fn invert(&&other:Mat2) -> Mat2 {} + // pure fn invert(other: &Mat2) -> Mat2 {} #[inline] pure fn transpose() -> Mat2 { @@ -152,9 +152,9 @@ pub impl Mat2: Matrix { } #[inline] - pure fn exact_eq(&&other:Mat2) -> bool { - self[0].exact_eq(other[0]) && - self[1].exact_eq(other[1]) + pure fn exact_eq(other: &Mat2) -> bool { + self[0].exact_eq(&other[0]) && + self[1].exact_eq(&other[1]) } #[inline] @@ -190,7 +190,7 @@ pub impl Mat2: Index { pub impl Mat2: Neg { #[inline] pure fn neg() -> Mat2 { - Mat2_v(-self[0], -self[1]) + Mat2_v(&-self[0], &-self[1]) } } @@ -247,8 +247,8 @@ pub pure fn Mat3(m00:float, m01:float, m02:float, // Conpub struct Mat3 from column vectors // #[inline] -pub pure fn Mat3_v(col0:Vec3, col1:Vec3, col2:Vec3) -> Mat3 { - Mat3 { data: [ col0, col1, col2 ] } +pub pure fn Mat3_v(col0: &Vec3, col1: &Vec3, col2: &Vec3) -> Mat3 { + Mat3 { data: [ *col0, *col1, *col2 ] } } // @@ -265,47 +265,47 @@ pub impl Mat3: Matrix { pure fn is_col_major() -> bool { true } #[inline] - pure fn row(&&i:uint) -> Vec3 { + pure fn row(i: uint) -> Vec3 { Vec3(self[0][i], self[1][i], self[2][i]) } #[inline] - pure fn col(&&i:uint) -> Vec3 { + pure fn col(i: uint) -> Vec3 { self.data[i] } #[inline] - pure fn mul_f(&&value:float) -> Mat3 { - Mat3_v(self[0].mul_f(value), - self[1].mul_f(value), - self[2].mul_f(value)) + pure fn mul_f(value: float) -> Mat3 { + Mat3_v(&self[0].mul_f(value), + &self[1].mul_f(value), + &self[2].mul_f(value)) } #[inline] - pure fn mul_v(&&other:Vec3) -> Vec3 { + pure fn mul_v(other: &Vec3) -> Vec3 { Vec3(self[0][0]*other[0] + self[1][0]*other[1] + self[2][0]*other[2], self[0][1]*other[0] + self[1][1]*other[1] + self[2][1]*other[2], self[0][2]*other[0] + self[1][2]*other[1] + self[2][2]*other[2]) } #[inline] - pure fn add_m(&&other:Mat3) -> Mat3 { - Mat3_v(self[0].add_v(other[0]), - self[1].add_v(other[1]), - self[2].add_v(other[2])) + pure fn add_m(other: &Mat3) -> Mat3 { + Mat3_v(&self[0].add_v(&other[0]), + &self[1].add_v(&other[1]), + &self[2].add_v(&other[2])) } #[inline] - pure fn sub_m(&&other:Mat3) -> Mat3 { - Mat3_v(self[0].sub_v(other[0]), - self[1].sub_v(other[1]), - self[2].sub_v(other[2])) + pure fn sub_m(other: &Mat3) -> Mat3 { + Mat3_v(&self[0].sub_v(&other[0]), + &self[1].sub_v(&other[1]), + &self[2].sub_v(&other[2])) } #[inline] - pure fn mul_m(&&other:Mat3) -> Mat3 { + pure fn mul_m(other: &Mat3) -> Mat3 { Mat3(self[0][0]*other[0][0] + self[1][0]*other[0][1] + self[2][0]*other[0][2], self[0][1]*other[0][0] + self[1][1]*other[0][1] + self[2][1]*other[0][2], self[0][2]*other[0][0] + self[1][2]*other[0][1] + self[2][2]*other[0][2], @@ -321,7 +321,7 @@ pub impl Mat3: Matrix { // TODO - inversion is harrrd D: // #[inline] - // pure fn invert(&&other:Mat3) -> Mat3 {} + // pure fn invert(other: &Mat3) -> Mat3 {} #[inline] pure fn transpose() -> Mat3 { @@ -331,10 +331,10 @@ pub impl Mat3: Matrix { } #[inline] - pure fn exact_eq(&&other:Mat3) -> bool { - self[0].exact_eq(other[0]) && - self[1].exact_eq(other[1]) && - self[2].exact_eq(other[2]) + pure fn exact_eq(other: &Mat3) -> bool { + self[0].exact_eq(&other[0]) && + self[1].exact_eq(&other[1]) && + self[2].exact_eq(&other[2]) } #[inline] @@ -374,10 +374,10 @@ pub impl Mat3: Matrix { pub impl Mat3: Matrix3 { #[inline] - pure fn scale(&&vec:Vec3) -> Mat3 { - self.mul_m(Mat3(vec.x(), 0f, 0f, - 0f, vec.y(), 0f, - 0f, 0f, vec.z())) + pure fn scale(vec: &Vec3) -> Mat3 { + self.mul_m(&Mat3(vec.x(), 0f, 0f, + 0f, vec.y(), 0f, + 0f, 0f, vec.z())) } #[inline] @@ -439,7 +439,7 @@ pub impl Mat3: Index { pub impl Mat3: Neg { #[inline] pure fn neg() -> Mat3 { - Mat3_v(-self[0], -self[1], -self[2]) + Mat3_v(&-self[0], &-self[1], &-self[2]) } } @@ -501,8 +501,8 @@ pub pure fn Mat4(m00:float, m01:float, m02:float, m03:float, // Conpub struct Mat4 from column vectors // #[inline] -pub pure fn Mat4_v(col0:Vec4, col1:Vec4, col2:Vec4, col3:Vec4) -> Mat4 { - Mat4 { data: [ col0, col1, col2, col3 ] } +pub pure fn Mat4_v(col0: &Vec4, col1: &Vec4, col2: &Vec4, col3: &Vec4) -> Mat4 { + Mat4 { data: [ *col0, *col1, *col2, *col3 ] } } // @@ -519,7 +519,7 @@ pub impl Mat4: Matrix { pure fn is_col_major() -> bool { true } #[inline] - pure fn row(&&i:uint) -> Vec4 { + pure fn row(i: uint) -> Vec4 { Vec4(self[0][i], self[1][i], self[2][i], @@ -527,20 +527,20 @@ pub impl Mat4: Matrix { } #[inline] - pure fn col(&&i:uint) -> Vec4 { + pure fn col(i: uint) -> Vec4 { self.data[i] } #[inline] - pure fn mul_f(&&value:float) -> Mat4 { - Mat4_v(self[0].mul_f(value), - self[1].mul_f(value), - self[2].mul_f(value), - self[3].mul_f(value)) + pure fn mul_f(value: float) -> Mat4 { + Mat4_v(&self[0].mul_f(value), + &self[1].mul_f(value), + &self[2].mul_f(value), + &self[3].mul_f(value)) } #[inline] - pure fn mul_v(&&other:Vec4) -> Vec4 { + pure fn mul_v(other: &Vec4) -> Vec4 { Vec4(self[0][0]*other[0] + self[1][0]*other[1] + self[2][0]*other[2] + self[3][0]*other[3], self[0][1]*other[0] + self[1][1]*other[1] + self[2][1]*other[2] + self[3][1]*other[3], self[0][2]*other[0] + self[1][2]*other[1] + self[2][2]*other[2] + self[3][2]*other[3], @@ -548,23 +548,23 @@ pub impl Mat4: Matrix { } #[inline] - pure fn add_m(&&other:Mat4) -> Mat4 { - Mat4_v(self[0].add_v(other[0]), - self[1].add_v(other[1]), - self[2].add_v(other[2]), - self[3].add_v(other[3])) + pure fn add_m(other: &Mat4) -> Mat4 { + Mat4_v(&self[0].add_v(&other[0]), + &self[1].add_v(&other[1]), + &self[2].add_v(&other[2]), + &self[3].add_v(&other[3])) } #[inline] - pure fn sub_m(&&other:Mat4) -> Mat4 { - Mat4_v(self[0].sub_v(other[0]), - self[1].sub_v(other[1]), - self[2].sub_v(other[2]), - self[3].sub_v(other[3])) + pure fn sub_m(other: &Mat4) -> Mat4 { + Mat4_v(&self[0].sub_v(&other[0]), + &self[1].sub_v(&other[1]), + &self[2].sub_v(&other[2]), + &self[3].sub_v(&other[3])) } #[inline] - pure fn mul_m(&&other:Mat4) -> Mat4 { + pure fn mul_m(other: &Mat4) -> Mat4 { Mat4(self[0][0]*other[0][0] + self[1][0]*other[0][1] + self[2][0]*other[0][2] + self[3][0]*other[0][3], self[0][1]*other[0][0] + self[1][1]*other[0][1] + self[2][1]*other[0][2] + self[3][1]*other[0][3], self[0][2]*other[0][0] + self[1][2]*other[0][1] + self[2][2]*other[0][2] + self[3][2]*other[0][3], @@ -588,7 +588,7 @@ pub impl Mat4: Matrix { // TODO - inversion is harrrd D: // #[inline] - // pure fn invert(&&other:Mat4) -> Mat4 {} + // pure fn invert(other: &Mat4) -> Mat4 {} #[inline] pure fn transpose() -> Mat4 { @@ -599,11 +599,11 @@ pub impl Mat4: Matrix { } #[inline] - pure fn exact_eq(&&other:Mat4) -> bool { - self[0].exact_eq(other[0]) && - self[1].exact_eq(other[1]) && - self[2].exact_eq(other[2]) && - self[3].exact_eq(other[3]) + pure fn exact_eq(other: &Mat4) -> bool { + self[0].exact_eq(&other[0]) && + self[1].exact_eq(&other[1]) && + self[2].exact_eq(&other[2]) && + self[3].exact_eq(&other[3]) } #[inline] @@ -657,22 +657,22 @@ pub impl Mat4: Matrix { pub impl Mat4: Matrix4 { #[inline] - pure fn scale(&&vec:Vec3) -> Mat4 { - self.mul_m(Mat4(vec.x(), 0f, 0f, 0f, - 0f, vec.y(), 0f, 0f, - 0f, 0f, vec.z(), 0f, - 0f, 0f, 0f, 1f)) + pure fn scale(vec: &Vec3) -> Mat4 { + self.mul_m(&Mat4(vec.x(), 0f, 0f, 0f, + 0f, vec.y(), 0f, 0f, + 0f, 0f, vec.z(), 0f, + 0f, 0f, 0f, 1f)) } #[inline] - pure fn translate(&&vec:Vec3) -> Mat4 { - Mat4_v(self[0], - self[1], - self[2], - Vec4(self[3][0] + vec.x(), - self[3][1] + vec.y(), - self[3][2] + vec.z(), - self[3][3])) + pure fn translate(vec: &Vec3) -> Mat4 { + Mat4_v(&self[0], + &self[1], + &self[2], + &Vec4(self[3][0] + vec.x(), + self[3][1] + vec.y(), + self[3][2] + vec.z(), + self[3][3])) } } @@ -686,7 +686,7 @@ pub impl Mat4: Index { pub impl Mat4: Neg { #[inline] pure fn neg() -> Mat4 { - Mat4_v(-self[0], -self[1], -self[2], -self[3]) + Mat4_v(&-self[0], &-self[1], &-self[2], &-self[3]) } } diff --git a/src/quat.rs b/src/quat.rs index 5cdc90b..9300cbb 100644 --- a/src/quat.rs +++ b/src/quat.rs @@ -19,20 +19,16 @@ pub trait Quaternion { pure fn y() -> T; pure fn z() -> T; - // pure fn neg() -> self; + pure fn mul_f(value: T) -> self; + pure fn div_f(value: T) -> self; - pure fn mul_f(&&value:T) -> self; - pure fn div_f(&&value:T) -> self; + // pure fn mul_v(other: &Vec3) -> Vec3; - // pure fn mul_v(&&Vec3) -> Vec3; + pure fn add_q(other: &self) -> self; + pure fn sub_q(other: &self) -> self; + pure fn mul_q(other: &self) -> self; - pure fn add_q(&&other:self) -> self; - pure fn sub_q(&&other:self) -> self; - pure fn mul_q(&&other:self) -> self; - - pure fn exact_eq(&&other:self) -> bool; - // pure fn fuzzy_eq(&&other:self) -> bool; - // pure fn eq(&&other:self) -> bool; + pure fn exact_eq(other: &self) -> bool; pure fn conjugate() -> self; pure fn inverse() -> self; @@ -60,7 +56,7 @@ pub const quat_identity :Quat = Quat { data: [ 1f, 0f, 0f, 0f ] }; // Quat Constructor // #[inline] -pub pure fn Quat(w:float, x:float, y:float, z:float) -> Quat { +pub pure fn Quat(w: float, x: float, y: float, z: float) -> Quat { Quat { data: [ w, x, y, z ] } } @@ -77,7 +73,7 @@ pub impl Quat: Quaternion { #[inline] pure fn z() -> float { self.data[3] } #[inline] - pure fn mul_f(&&value:float) -> Quat { + pure fn mul_f(value: float) -> Quat { Quat(self[0] * value, self[1] * value, self[2] * value, @@ -85,7 +81,7 @@ pub impl Quat: Quaternion { } #[inline] - pure fn div_f(&&value:float) -> Quat { + pure fn div_f(value: float) -> Quat { Quat(self[0] / value, self[1] / value, self[2] / value, @@ -93,7 +89,7 @@ pub impl Quat: Quaternion { } #[inline] - pure fn add_q(&&other:Quat) -> Quat{ + pure fn add_q(other: &Quat) -> Quat{ Quat(self[0] + other[0], self[1] + other[1], self[2] + other[2], @@ -101,7 +97,7 @@ pub impl Quat: Quaternion { } #[inline] - pure fn sub_q(&&other:Quat) -> Quat{ + pure fn sub_q(other: &Quat) -> Quat{ Quat(self[0] - other[0], self[1] - other[1], self[2] - other[2], @@ -109,7 +105,7 @@ pub impl Quat: Quaternion { } #[inline] - pure fn mul_q(&&other:Quat) -> Quat { + pure fn mul_q(other: &Quat) -> Quat { Quat(self.w()*other.w() - self.x()*other.x() - self.y()*other.y() - self.z()*other.z(), self.w()*other.x() + self.x()*other.w() + self.y()*other.z() - self.z()*other.y(), self.w()*other.y() + self.y()*other.w() + self.z()*other.x() - self.x()*other.z(), @@ -117,7 +113,7 @@ pub impl Quat: Quaternion { } #[inline] - pure fn exact_eq(&&other:Quat) -> bool { + pure fn exact_eq(other: &Quat) -> bool { self[0] == other[0] && self[1] == other[1] && self[2] == other[2] && diff --git a/src/vec.rs b/src/vec.rs index 2da7a98..c88bbec 100644 --- a/src/vec.rs +++ b/src/vec.rs @@ -10,26 +10,26 @@ use to_str::ToStr; pub trait Vector { static pure fn dim() -> uint; - pure fn add_f(&&value:T) -> self; - pure fn sub_f(&&value:T) -> self; - pure fn mul_f(&&value:T) -> self; - pure fn div_f(&&value:T) -> self; + pure fn add_f(value: T) -> self; + pure fn sub_f(value: T) -> self; + pure fn mul_f(value: T) -> self; + pure fn div_f(value: T) -> self; - pure fn add_v(&&other: self) -> self; - pure fn sub_v(&&other: self) -> self; + pure fn add_v(other: &self) -> self; + pure fn sub_v(other: &self) -> self; - pure fn dot(&&other: self) -> T; + pure fn dot(other: &self) -> T; - pure fn exact_eq(&&other:self) -> bool; + pure fn exact_eq(other:&self) -> bool; pure fn magnitude2() -> T; pure fn magnitude() -> T; pure fn normalize() -> self; - pure fn lerp(&&other:self, &&value:T) -> self; + pure fn lerp(other: &self, value: T) -> self; pure fn abs() -> self; - pure fn min(&&other:self) -> self; - pure fn max(&&other:self) -> self; + pure fn min(other: &self) -> self; + pure fn max(other: &self) -> self; static pure fn zero() -> self; static pure fn identity() -> self; @@ -42,7 +42,7 @@ pub trait Vector { pub trait Vector2 { - // static pure fn _new(x:float, y:float) -> self; + // static pure fn _new(x: float, y: float) -> self; // This is where I wish rust had properties ;) pure fn x() -> T; @@ -54,7 +54,7 @@ pub trait Vector2 { pub trait Vector3 { // error: duplicate function definition - // static pure fn _new(x:float, y:float, z:float) -> self; + // static pure fn _new(x: float, y: float, z: float) -> self; pure fn x() -> T; pure fn y() -> T; @@ -64,12 +64,12 @@ pub trait Vector3 { // static pure fn unit_y() -> self; // static pure fn unit_z() -> self; - fn cross(&&other:self) -> self; + fn cross(other: &self) -> self; } pub trait Vector4 { // error: duplicate function definition - // static pure fn _new(x:float, y:float, z:float, w:float) -> self; + // static pure fn _new(x: float, y: float, z: float, w: float) -> self; pure fn x() -> T; pure fn y() -> T; @@ -101,13 +101,13 @@ pub const vec2_identity :Vec2 = Vec2 { data: [ 1f, 1f ] }; // Constructor // #[inline] -pub pure fn Vec2(x:float, y:float) -> Vec2 { +pub pure fn Vec2(x: float, y: float) -> Vec2 { Vec2 { data: [ x, y ] } } pub impl Vec2: Vector2 { // #[inline] - // static pure fn _new(x:float, y:float) -> Vec2 { + // static pure fn _new(x: float, y: float) -> Vec2 { // Vec2 { data: [ x, y ] } // } @@ -124,49 +124,49 @@ pub impl Vec2: Vector { static pure fn dim() -> uint { 2 } #[inline] - pure fn add_f(&&value:float) -> Vec2 { + pure fn add_f(value: float) -> Vec2 { Vec2(self[0] + value, self[1] + value) } #[inline] - pure fn sub_f(&&value:float) -> Vec2 { + pure fn sub_f(value: float) -> Vec2 { Vec2(self[0] - value, self[1] - value) } #[inline] - pure fn mul_f(&&value:float) -> Vec2 { + pure fn mul_f(value: float) -> Vec2 { Vec2(self[0] * value, self[1] * value) } #[inline] - pure fn div_f(&&value:float) -> Vec2 { + pure fn div_f(value: float) -> Vec2 { Vec2(self[0] / value, self[1] / value) } #[inline] - pure fn add_v(&&other: Vec2) -> Vec2{ + pure fn add_v(other: &Vec2) -> Vec2{ Vec2(self[0] + other[0], self[1] + other[1]) } #[inline] - pure fn sub_v(&&other: Vec2) -> Vec2{ + pure fn sub_v(other: &Vec2) -> Vec2{ Vec2(self[0] - other[0], self[1] - other[1]) } #[inline] - pure fn dot(&&other: Vec2) -> float { + pure fn dot(other: &Vec2) -> float { self[0] * other[0] + self[1] * other[1] } #[inline] - pure fn exact_eq(&&other:Vec2) -> bool { + pure fn exact_eq(other: &Vec2) -> bool { self[0] == other[0] && self[1] == other[1] } @@ -189,8 +189,8 @@ pub impl Vec2: Vector { } #[inline] - pure fn lerp(&&other:Vec2, &&value:float) -> Vec2 { - self.add_v((other.sub_v(self)).mul_f(value)) + pure fn lerp(other: &Vec2, value: float) -> Vec2 { + self.add_v(&other.sub_v(&self).mul_f(value)) } #[inline] @@ -200,13 +200,13 @@ pub impl Vec2: Vector { } #[inline] - pure fn min(&&other:Vec2) -> Vec2 { + pure fn min(other: &Vec2) -> Vec2 { Vec2(min(self[0], other[0]), min(self[1], other[1])) } #[inline] - pure fn max(&&other:Vec2) -> Vec2 { + pure fn max(other: &Vec2) -> Vec2 { Vec2(max(self[0], other[0]), max(self[1], other[1])) } @@ -275,13 +275,13 @@ pub const vec3_identity :Vec3 = Vec3 { data: [ 1f, 1f, 1f ] }; // Constructor // #[inline] -pub pure fn Vec3(x:float, y:float, z:float) -> Vec3 { +pub pure fn Vec3(x: float, y: float, z: float) -> Vec3 { Vec3 { data: [ x, y, z ] } } pub impl Vec3: Vector3 { // #[inline] - // static pure fn _new(x:float, y:float, z:float) -> Vec3 { + // static pure fn _new(x: float, y: float, z: float) -> Vec3 { // Vec2 { data: [ x, y, z ] } // } @@ -290,7 +290,7 @@ pub impl Vec3: Vector3 { #[inline] pure fn z() -> float { self.data[2] } #[inline] - fn cross(&&other:Vec3) -> Vec3 { + fn cross(other: &Vec3) -> Vec3 { Vec3((self[1] * other[2]) - (self[2] * other[1]), (self[2] * other[0]) - (self[0] * other[2]), (self[0] * other[1]) - (self[1] * other[0])) @@ -306,56 +306,56 @@ pub impl Vec3: Vector { static pure fn dim() -> uint { 3 } #[inline] - pure fn add_f(&&value:float) -> Vec3 { + pure fn add_f(value: float) -> Vec3 { Vec3(self[0] + value, self[1] + value, self[2] + value) } #[inline] - pure fn sub_f(&&value:float) -> Vec3 { + pure fn sub_f(value: float) -> Vec3 { Vec3(self[0] - value, self[1] - value, self[2] - value) } #[inline] - pure fn mul_f(&&value:float) -> Vec3 { + pure fn mul_f(value: float) -> Vec3 { Vec3(self[0] * value, self[1] * value, self[2] * value) } #[inline] - pure fn div_f(&&value:float) -> Vec3 { + pure fn div_f(value: float) -> Vec3 { Vec3(self[0] / value, self[1] / value, self[2] / value) } #[inline] - pure fn add_v(&&other: Vec3) -> Vec3{ + pure fn add_v(other: &Vec3) -> Vec3{ Vec3(self[0] + other[0], self[1] + other[1], self[2] + other[2]) } #[inline] - pure fn sub_v(&&other: Vec3) -> Vec3{ + pure fn sub_v(other: &Vec3) -> Vec3{ Vec3(self[0] - other[0], self[1] - other[1], self[2] - other[2]) } #[inline] - pure fn dot(&&other: Vec3) -> float { + pure fn dot(other: &Vec3) -> float { self[0] * other[0] + self[1] * other[1] + self[2] * other[2] } #[inline] - pure fn exact_eq(&&other:Vec3) -> bool { + pure fn exact_eq(other: &Vec3) -> bool { self[0] == other[0] && self[1] == other[1] && self[2] == other[2] @@ -380,8 +380,8 @@ pub impl Vec3: Vector { } #[inline] - pure fn lerp(&&other:Vec3, &&value:float) -> Vec3 { - self.add_v((other.sub_v(self)).mul_f(value)) + pure fn lerp(other: &Vec3, value: float) -> Vec3 { + self.add_v(&other.sub_v(&self).mul_f(value)) } #[inline] @@ -392,14 +392,14 @@ pub impl Vec3: Vector { } #[inline] - pure fn min(&&other:Vec3) -> Vec3 { + pure fn min(other: &Vec3) -> Vec3 { Vec3(min(self[0], other[0]), min(self[1], other[1]), min(self[2], other[2])) } #[inline] - pure fn max(&&other:Vec3) -> Vec3 { + pure fn max(other: &Vec3) -> Vec3 { Vec3(max(self[0], other[0]), max(self[1], other[1]), max(self[2], other[2])) @@ -471,13 +471,13 @@ pub const vec4_identity :Vec4 = Vec4 { data: [ 1f, 1f, 1f, 1f ] }; // Constructor // #[inline] -pub pure fn Vec4(x:float, y:float, z:float, w:float) -> Vec4 { +pub pure fn Vec4(x: float, y: float, z: float, w: float) -> Vec4 { Vec4 { data: [ x, y, z, w ] } } pub impl Vec4: Vector4 { // #[inline] - // static pure fn _new(x:float, y:float, z:float, w:float) -> Vec3 { + // static pure fn _new(x: float, y: float, z: float, w: float) -> Vec3 { // Vec2 { data: [ x, y, z, w ] } // } @@ -497,7 +497,7 @@ pub impl Vec4: Vector { static pure fn dim() -> uint { 4 } #[inline] - pure fn add_f(&&value:float) -> Vec4 { + pure fn add_f(value: float) -> Vec4 { Vec4(self[0] + value, self[1] + value, self[2] + value, @@ -505,7 +505,7 @@ pub impl Vec4: Vector { } #[inline] - pure fn sub_f(&&value:float) -> Vec4 { + pure fn sub_f(value: float) -> Vec4 { Vec4(self[0] - value, self[1] - value, self[2] - value, @@ -513,7 +513,7 @@ pub impl Vec4: Vector { } #[inline] - pure fn mul_f(&&value:float) -> Vec4 { + pure fn mul_f(value: float) -> Vec4 { Vec4(self[0] * value, self[1] * value, self[2] * value, @@ -521,7 +521,7 @@ pub impl Vec4: Vector { } #[inline] - pure fn div_f(&&value:float) -> Vec4 { + pure fn div_f(value: float) -> Vec4 { Vec4(self[0] / value, self[1] / value, self[2] / value, @@ -529,7 +529,7 @@ pub impl Vec4: Vector { } #[inline] - pure fn add_v(&&other: Vec4) -> Vec4{ + pure fn add_v(other: &Vec4) -> Vec4{ Vec4(self[0] + other[0], self[1] + other[1], self[2] + other[2], @@ -537,7 +537,7 @@ pub impl Vec4: Vector { } #[inline] - pure fn sub_v(&&other: Vec4) -> Vec4{ + pure fn sub_v(other: &Vec4) -> Vec4{ Vec4(self[0] - other[0], self[1] - other[1], self[2] - other[2], @@ -545,7 +545,7 @@ pub impl Vec4: Vector { } #[inline] - pure fn dot(&&other:Vec4) -> float { + pure fn dot(other: &Vec4) -> float { self[0] * other[0] + self[1] * other[1] + self[2] * other[2] + @@ -553,7 +553,7 @@ pub impl Vec4: Vector { } #[inline] - pure fn exact_eq(&&other:Vec4) -> bool { + pure fn exact_eq(other: &Vec4) -> bool { self[0] == other[0] && self[1] == other[1] && self[2] == other[2] && @@ -580,8 +580,8 @@ pub impl Vec4: Vector { } #[inline] - pure fn lerp(&&other:Vec4, &&value:float) -> Vec4 { - self.add_v((other.sub_v(self)).mul_f(value)) + pure fn lerp(other: &Vec4, value: float) -> Vec4 { + self.add_v(&other.sub_v(&self).mul_f(value)) } #[inline] @@ -593,7 +593,7 @@ pub impl Vec4: Vector { } #[inline] - pure fn min(&&other:Vec4) -> Vec4 { + pure fn min(other: &Vec4) -> Vec4 { Vec4(min(self[0], other[0]), min(self[1], other[1]), min(self[2], other[2]), @@ -601,7 +601,7 @@ pub impl Vec4: Vector { } #[inline] - pure fn max(&&other:Vec4) -> Vec4 { + pure fn max(other: &Vec4) -> Vec4 { Vec4(max(self[0], other[0]), max(self[1], other[1]), max(self[2], other[2]), diff --git a/test/test_mat.rs b/test/test_mat.rs index 597535c..c50d158 100644 --- a/test/test_mat.rs +++ b/test/test_mat.rs @@ -15,8 +15,8 @@ fn test_Mat2() { assert a == Mat2(1f, 3f, 2f, 4f); - assert a == Mat2_v(Vec2(1f, 3f), - Vec2(2f, 4f)); + assert a == Mat2_v(&Vec2(1f, 3f), + &Vec2(2f, 4f)); assert a[0] == Vec2(1f, 3f); assert a[1] == Vec2(2f, 4f); @@ -33,14 +33,14 @@ fn test_Mat2() { assert a.mul_f(f1) == Mat2(0.5f, 1.5f, 1.0f, 2.0f); - assert a.mul_v(v1) == Vec2(5f, 11f); + assert a.mul_v(&v1) == Vec2(5f, 11f); - assert a.add_m(b) == Mat2(3f, 7f, - 5f, 9f); - assert a.sub_m(b) == Mat2(-1f, -1f, - -1f, -1f); - assert a.mul_m(b) == Mat2(10.0, 22.0, - 13.0, 29.0); + assert a.add_m(&b) == Mat2(3f, 7f, + 5f, 9f); + assert a.sub_m(&b) == Mat2(-1f, -1f, + -1f, -1f); + assert a.mul_m(&b) == Mat2(10.0, 22.0, + 13.0, 29.0); assert a.transpose() == Mat2(1f, 2f, 3f, 4f); @@ -82,9 +82,9 @@ fn test_Mat3() { 2f, 5f, 8f, 3f, 6f, 9f); - assert a == Mat3_v(Vec3(1f, 4f, 7f), - Vec3(2f, 5f, 8f), - Vec3(3f, 6f, 9f)); + assert a == Mat3_v(&Vec3(1f, 4f, 7f), + &Vec3(2f, 5f, 8f), + &Vec3(3f, 6f, 9f)); assert a[0] == Vec3(1f, 4f, 7f); assert a[1] == Vec3(2f, 5f, 8f); @@ -106,17 +106,17 @@ fn test_Mat3() { assert a.mul_f(f1) == Mat3(0.5f, 2.0f, 3.5f, 1.0f, 2.5f, 4.0f, 1.5f, 3.0f, 4.5f); - assert a.mul_v(v1) == Vec3(14f, 32f, 50f); + assert a.mul_v(&v1) == Vec3(14f, 32f, 50f); - assert a.add_m(b) == Mat3(3f, 9f, 15f, - 5f, 11f, 17f, - 7f, 13f, 19f); - assert a.sub_m(b) == Mat3(-1f, -1f, -1f, - -1f, -1f, -1f, - -1f, -1f, -1f); - assert a.mul_m(b) == Mat3(36f, 81f, 126f, - 42f, 96f, 150f, - 48f, 111f, 174f); + assert a.add_m(&b) == Mat3(3f, 9f, 15f, + 5f, 11f, 17f, + 7f, 13f, 19f); + assert a.sub_m(&b) == Mat3(-1f, -1f, -1f, + -1f, -1f, -1f, + -1f, -1f, -1f); + assert a.mul_m(&b) == Mat3(36f, 81f, 126f, + 42f, 96f, 150f, + 48f, 111f, 174f); assert a.transpose() == Mat3(1f, 2f, 3f, 4f, 5f, 6f, @@ -170,10 +170,10 @@ fn test_Mat4() { 3f, 7f, 11f, 15f, 4f, 8f, 12f, 16f); - assert a == Mat4_v(Vec4(1f, 5f, 9f, 13f), - Vec4(2f, 6f, 10f, 14f), - Vec4(3f, 7f, 11f, 15f), - Vec4(4f, 8f, 12f, 16f)); + assert a == Mat4_v(&Vec4(1f, 5f, 9f, 13f), + &Vec4(2f, 6f, 10f, 14f), + &Vec4(3f, 7f, 11f, 15f), + &Vec4(4f, 8f, 12f, 16f)); assert a[0] == Vec4(1f, 5f, 9f, 13f); assert a[1] == Vec4(2f, 6f, 10f, 14f); @@ -200,20 +200,20 @@ fn test_Mat4() { 1.0f, 3.0f, 5.0f, 7.0f, 1.5f, 3.5f, 5.5f, 7.5f, 2.0f, 4.0f, 6.0f, 8.0f); - assert a.mul_v(v1) == Vec4(30.0, 70.0, 110.0, 150.0); + assert a.mul_v(&v1) == Vec4(30.0, 70.0, 110.0, 150.0); - assert a.add_m(b) == Mat4(3f, 11f, 19f, 27f, - 5f, 13f, 21f, 29f, - 7f, 15f, 23f, 31f, - 9f, 17f, 25f, 33f); - assert a.sub_m(b) == Mat4(-1f, -1f, -1f, -1f, - -1f, -1f, -1f, -1f, - -1f, -1f, -1f, -1f, - -1f, -1f, -1f, -1f); - assert a.mul_m(b) == Mat4(100f, 228f, 356f, 484f, - 110f, 254f, 398f, 542f, - 120f, 280f, 440f, 600f, - 130f, 306f, 482f, 658f); + assert a.add_m(&b) == Mat4(3f, 11f, 19f, 27f, + 5f, 13f, 21f, 29f, + 7f, 15f, 23f, 31f, + 9f, 17f, 25f, 33f); + assert a.sub_m(&b) == Mat4(-1f, -1f, -1f, -1f, + -1f, -1f, -1f, -1f, + -1f, -1f, -1f, -1f, + -1f, -1f, -1f, -1f); + assert a.mul_m(&b) == Mat4(100f, 228f, 356f, 484f, + 110f, 254f, 398f, 542f, + 120f, 280f, 440f, 600f, + 130f, 306f, 482f, 658f); assert a.transpose() == Mat4( 1f, 2f, 3f, 4f, 5f, 6f, 7f, 8f, diff --git a/test/test_vec.rs b/test/test_vec.rs index 1992f94..4724d72 100644 --- a/test/test_vec.rs +++ b/test/test_vec.rs @@ -32,8 +32,8 @@ fn test_Vec2() { assert a.mul_f(f1) == Vec2( 1.5f, 3.0f); assert a.div_f(f2) == Vec2( 2.0f, 4.0f); - assert a.add_v(b) == Vec2( 4f, 6f); - assert a.sub_v(b) == Vec2(-2f, -2f); + assert a.add_v(&b) == Vec2( 4f, 6f); + assert a.sub_v(&b) == Vec2(-2f, -2f); // exact_eq // fuzzy_eq @@ -46,10 +46,10 @@ fn test_Vec2() { let d = Vec2( 1.0f, 0.0f); let f3 = 0.75f; - assert c.lerp(d, f3) == Vec2(0.250f, -0.250f); + assert c.lerp(&d, f3) == Vec2(0.250f, -0.250f); assert c.abs() == Vec2( 2.0f, 1.0f); - assert c.min(d) == Vec2(-2.0f, -1.0f); - assert c.max(d) == Vec2( 1.0f, 0.0f); + assert c.min(&d) == Vec2(-2.0f, -1.0f); + assert c.max(&d) == Vec2( 1.0f, 0.0f); } #[test] @@ -76,7 +76,7 @@ fn test_Vec3() { assert a.y() == 2f; assert a.z() == 3f; - assert a.cross(b) == Vec3(-3f, 6f, -3f); + assert a.cross(&b) == Vec3(-3f, 6f, -3f); assert -a == Vec3(-1f, -2f, -3f); assert a.neg() == Vec3(-1f, -2f, -3f); @@ -86,8 +86,8 @@ fn test_Vec3() { assert a.mul_f(f1) == Vec3( 1.5f, 3.0f, 4.5f); assert a.div_f(f2) == Vec3( 2.0f, 4.0f, 6.0f); - assert a.add_v(b) == Vec3( 5f, 7f, 9f); - assert a.sub_v(b) == Vec3(-3f, -3f, -3f); + assert a.add_v(&b) == Vec3( 5f, 7f, 9f); + assert a.sub_v(&b) == Vec3(-3f, -3f, -3f); // exact_eq // fuzzy_eq @@ -100,10 +100,10 @@ fn test_Vec3() { let d = Vec3( 1.0f, 0.0f, 0.5f); let f3 = 0.75f; - assert c.lerp(d, f3) == Vec3(0.250f, -0.250f, 0.625f); - assert c.abs() == Vec3( 2.0f, 1.0f, 1.0f); - assert c.min(d) == Vec3(-2.0f, -1.0f, 0.5f); - assert c.max(d) == Vec3( 1.0f, 0.0f, 1.0f); + assert c.lerp(&d, f3) == Vec3(0.250f, -0.250f, 0.625f); + assert c.abs() == Vec3( 2.0f, 1.0f, 1.0f); + assert c.min(&d) == Vec3(-2.0f, -1.0f, 0.5f); + assert c.max(&d) == Vec3( 1.0f, 0.0f, 1.0f); } #[test] @@ -141,10 +141,10 @@ fn test_Vec4() { assert a.mul_f(f1) == Vec4( 1.5f, 3.0f, 4.5f, 6.0f); assert a.div_f(f2) == Vec4( 2.0f, 4.0f, 6.0f, 8.0f); - assert a.add_v(b) == Vec4( 6f, 8f, 10f, 12f); - assert a.sub_v(b) == Vec4(-4f, -4f, -4f, -4f); + assert a.add_v(&b) == Vec4( 6f, 8f, 10f, 12f); + assert a.sub_v(&b) == Vec4(-4f, -4f, -4f, -4f); - assert a.dot(b) == 70f; + assert a.dot(&b) == 70f; // exact_eq // fuzzy_eq @@ -157,8 +157,8 @@ fn test_Vec4() { let d = Vec4( 1.0f, 0.0f, 0.5f, 1.0f); let f3 = 0.75f; - assert c.lerp(d, f3) == Vec4(0.250f, -0.250f, 0.625f, 1.250f); - assert c.abs() == Vec4( 2.0f, 1.0f, 1.0f, 2.0f); - assert c.min(d) == Vec4(-2.0f, -1.0f, 0.5f, 1.0f); - assert c.max(d) == Vec4( 1.0f, 0.0f, 1.0f, 2.0f); + assert c.lerp(&d, f3) == Vec4(0.250f, -0.250f, 0.625f, 1.250f); + assert c.abs() == Vec4( 2.0f, 1.0f, 1.0f, 2.0f); + assert c.min(&d) == Vec4(-2.0f, -1.0f, 0.5f, 1.0f); + assert c.max(&d) == Vec4( 1.0f, 0.0f, 1.0f, 2.0f); } \ No newline at end of file