diff --git a/src/bench/matrix.rs b/src/bench/matrix.rs index 51389a8..dd5fe27 100644 --- a/src/bench/matrix.rs +++ b/src/bench/matrix.rs @@ -26,9 +26,9 @@ pub mod matrix2 { type float = f32; pub static A: Matrix2 = Matrix2 { x: Vector2 { x: 1.0, y: 3.0 }, - y: Vector2 { x: 2.0, y: 4.0 } }; + y: Vector2 { x: 2.0, y: 4.0 } }; pub static B: Matrix2 = Matrix2 { x: Vector2 { x: 2.0, y: 4.0 }, - y: Vector2 { x: 3.0, y: 5.0 } }; + y: Vector2 { x: 3.0, y: 5.0 } }; } pub mod matrix3 { @@ -37,11 +37,11 @@ pub mod matrix3 { type float = f32; pub static A: Matrix3 = Matrix3 { x: Vector3 { x: 1.0, y: 4.0, z: 7.0 }, - y: Vector3 { x: 2.0, y: 5.0, z: 8.0 }, - z: Vector3 { x: 3.0, y: 6.0, z: 9.0 } }; + y: Vector3 { x: 2.0, y: 5.0, z: 8.0 }, + z: Vector3 { x: 3.0, y: 6.0, z: 9.0 } }; pub static B: Matrix3 = Matrix3 { x: Vector3 { x: 2.0, y: 5.0, z: 8.0 }, - y: Vector3 { x: 3.0, y: 6.0, z: 9.0 }, - z: Vector3 { x: 4.0, y: 7.0, z: 10.0 } }; + y: Vector3 { x: 3.0, y: 6.0, z: 9.0 }, + z: Vector3 { x: 4.0, y: 7.0, z: 10.0 } }; } pub mod matrix4 { @@ -50,13 +50,13 @@ pub mod matrix4 { type float = f32; pub static A: Matrix4 = Matrix4 { x: Vector4 { x: 1.0, y: 5.0, z: 9.0, w: 13.0 }, - y: Vector4 { x: 2.0, y: 6.0, z: 10.0, w: 14.0 }, - z: Vector4 { x: 3.0, y: 7.0, z: 11.0, w: 15.0 }, - w: Vector4 { x: 4.0, y: 8.0, z: 12.0, w: 16.0 } }; + y: Vector4 { x: 2.0, y: 6.0, z: 10.0, w: 14.0 }, + z: Vector4 { x: 3.0, y: 7.0, z: 11.0, w: 15.0 }, + w: Vector4 { x: 4.0, y: 8.0, z: 12.0, w: 16.0 } }; pub static B: Matrix4 = Matrix4 { x: Vector4 { x: 2.0, y: 6.0, z: 10.0, w: 14.0 }, - y: Vector4 { x: 3.0, y: 7.0, z: 11.0, w: 15.0 }, - z: Vector4 { x: 4.0, y: 8.0, z: 12.0, w: 16.0 }, - w: Vector4 { x: 5.0, y: 9.0, z: 13.0, w: 17.0 } }; + y: Vector4 { x: 3.0, y: 7.0, z: 11.0, w: 15.0 }, + z: Vector4 { x: 4.0, y: 8.0, z: 12.0, w: 16.0 }, + w: Vector4 { x: 5.0, y: 9.0, z: 13.0, w: 17.0 } }; } #[bench] diff --git a/src/cgmath/matrix.rs b/src/cgmath/matrix.rs index 85ae43d..2c4eab9 100644 --- a/src/cgmath/matrix.rs +++ b/src/cgmath/matrix.rs @@ -45,7 +45,7 @@ impl Matrix2 { pub fn new(c0r0: S, c0r1: S, c1r0: S, c1r1: S) -> Matrix2 { Matrix2::from_cols(Vector2::new(c0r0, c0r1), - Vector2::new(c1r0, c1r1)) + Vector2::new(c1r0, c1r1)) } #[inline] @@ -56,7 +56,7 @@ impl Matrix2 { #[inline] pub fn from_value(value: S) -> Matrix2 { Matrix2::new(value.clone(), zero(), - zero(), value.clone()) + zero(), value.clone()) } #[inline] @@ -81,8 +81,8 @@ impl> Matrix2 { let cos_theta = cos(theta.clone()); let sin_theta = sin(theta.clone()); - Matrix2::new(cos_theta.clone(), -sin_theta.clone(), - sin_theta.clone(), cos_theta.clone()) + Matrix2::new(cos_theta.clone(), -sin_theta.clone(), + sin_theta.clone(), cos_theta.clone()) } } @@ -92,8 +92,8 @@ impl Matrix3 { c1r0:S, c1r1:S, c1r2:S, c2r0:S, c2r1:S, c2r2:S) -> Matrix3 { Matrix3::from_cols(Vector3::new(c0r0, c0r1, c0r2), - Vector3::new(c1r0, c1r1, c1r2), - Vector3::new(c2r0, c2r1, c2r2)) + Vector3::new(c1r0, c1r1, c1r2), + Vector3::new(c2r0, c2r1, c2r2)) } #[inline] @@ -104,8 +104,8 @@ impl Matrix3 { #[inline] pub fn from_value(value: S) -> Matrix3 { Matrix3::new(value.clone(), zero(), zero(), - zero(), value.clone(), zero(), - zero(), zero(), value.clone()) + zero(), value.clone(), zero(), + zero(), zero(), value.clone()) } #[inline] @@ -133,9 +133,9 @@ Matrix3 { pub fn from_angle_x(theta: Rad) -> Matrix3 { // http://en.wikipedia.org/wiki/Rotation_matrix#Basic_rotations let (s, c) = sin_cos(theta); - Matrix3::new(one(), zero(), zero(), - zero(), c.clone(), s.clone(), - zero(), -s.clone(), c.clone()) + Matrix3::new( one(), zero(), zero(), + zero(), c.clone(), s.clone(), + zero(), -s.clone(), c.clone()) } /// Create a matrix from a rotation around the `y` axis (yaw). @@ -143,17 +143,17 @@ Matrix3 { // http://en.wikipedia.org/wiki/Rotation_matrix#Basic_rotations let (s, c) = sin_cos(theta); Matrix3::new(c.clone(), zero(), -s.clone(), - zero(), one(), zero(), - s.clone(), zero(), c.clone()) + zero(), one(), zero(), + s.clone(), zero(), c.clone()) } /// Create a matrix from a rotation around the `z` axis (roll). pub fn from_angle_z(theta: Rad) -> Matrix3 { // http://en.wikipedia.org/wiki/Rotation_matrix#Basic_rotations let (s, c) = sin_cos(theta); - Matrix3::new(c.clone(), s.clone(), zero(), - -s.clone(), c.clone(), zero(), - zero(), zero(), one()) + Matrix3::new( c.clone(), s.clone(), zero(), + -s.clone(), c.clone(), zero(), + zero(), zero(), one()) } /// Create a matrix from a set of euler angles. @@ -169,9 +169,9 @@ Matrix3 { let (sy, cy) = sin_cos(y); let (sz, cz) = sin_cos(z); - Matrix3::new(cy * cz, cy * sz, -sy, - -cx * sz + sx * sy * cz, cx * cz + sx * sy * sz, sx * cy, - sx * sz + cx * sy * cz, -sx * cz + cx * sy * sz, cx * cy) + Matrix3::new( cy * cz, cy * sz, -sy, + -cx * sz + sx * sy * cz, cx * cz + sx * sy * sz, sx * cy, + sx * sz + cx * sy * cz, -sx * cz + cx * sy * sz, cx * cy) } /// Create a matrix from a rotation around an arbitrary axis @@ -180,16 +180,16 @@ Matrix3 { let _1subc = one::() - c; Matrix3::new(_1subc * axis.x * axis.x + c, - _1subc * axis.x * axis.y + s * axis.z, - _1subc * axis.x * axis.z - s * axis.y, + _1subc * axis.x * axis.y + s * axis.z, + _1subc * axis.x * axis.z - s * axis.y, - _1subc * axis.x * axis.y - s * axis.z, - _1subc * axis.y * axis.y + c, - _1subc * axis.y * axis.z + s * axis.x, + _1subc * axis.x * axis.y - s * axis.z, + _1subc * axis.y * axis.y + c, + _1subc * axis.y * axis.z + s * axis.x, - _1subc * axis.x * axis.z + s * axis.y, - _1subc * axis.y * axis.z - s * axis.x, - _1subc * axis.z * axis.z + c) + _1subc * axis.x * axis.z + s * axis.y, + _1subc * axis.y * axis.z - s * axis.x, + _1subc * axis.z * axis.z + c) } } @@ -200,9 +200,9 @@ impl Matrix4 { c2r0: S, c2r1: S, c2r2: S, c2r3: S, c3r0: S, c3r1: S, c3r2: S, c3r3: S) -> Matrix4 { Matrix4::from_cols(Vector4::new(c0r0, c0r1, c0r2, c0r3), - Vector4::new(c1r0, c1r1, c1r2, c1r3), - Vector4::new(c2r0, c2r1, c2r2, c2r3), - Vector4::new(c3r0, c3r1, c3r2, c3r3)) + Vector4::new(c1r0, c1r1, c1r2, c1r3), + Vector4::new(c2r0, c2r1, c2r2, c2r3), + Vector4::new(c3r0, c3r1, c3r2, c3r3)) } #[inline] @@ -212,10 +212,10 @@ impl Matrix4 { #[inline] pub fn from_value(value: S) -> Matrix4 { - Matrix4::new(value.clone(), zero(), zero(), zero(), - zero(), value.clone(), zero(), zero(), - zero(), zero(), value.clone(), zero(), - zero(), zero(), zero(), value.clone()) + Matrix4::new(value.clone(), zero(), zero(), zero(), + zero(), value.clone(), zero(), zero(), + zero(), zero(), value.clone(), zero(), + zero(), zero(), zero(), value.clone()) } #[inline] @@ -236,10 +236,10 @@ Matrix4 { let s = f.cross(up).normalize(); let u = s.cross(&f); - Matrix4::new(s.x.clone(), u.x.clone(), -f.x.clone(), zero(), - s.y.clone(), u.y.clone(), -f.y.clone(), zero(), - s.z.clone(), u.z.clone(), -f.z.clone(), zero(), - -eye.dot(&s), -eye.dot(&u), eye.dot(&f), one()) + Matrix4::new( s.x.clone(), u.x.clone(), -f.x.clone(), zero(), + s.y.clone(), u.y.clone(), -f.y.clone(), zero(), + s.z.clone(), u.z.clone(), -f.z.clone(), zero(), + -eye.dot(&s), -eye.dot(&u), eye.dot(&f), one()) } } @@ -391,12 +391,12 @@ for Matrix2 { fn mul_m(&self, other: &Matrix2) -> Matrix2 { Matrix2::new(self.r(0).dot(other.c(0)), self.r(1).dot(other.c(0)), - self.r(0).dot(other.c(1)), self.r(1).dot(other.c(1))) + self.r(0).dot(other.c(1)), self.r(1).dot(other.c(1))) } fn transpose(&self) -> Matrix2 { Matrix2::new(self.cr(0, 0).clone(), self.cr(1, 0).clone(), - self.cr(0, 1).clone(), self.cr(1, 1).clone()) + self.cr(0, 1).clone(), self.cr(1, 1).clone()) } #[inline] @@ -416,7 +416,7 @@ for Matrix2 None } else { Some(Matrix2::new( *self.cr(1, 1) / det, -*self.cr(0, 1) / det, - -*self.cr(1, 0) / det, *self.cr(0, 0) / det)) + -*self.cr(1, 0) / det, *self.cr(0, 0) / det)) } } @@ -440,14 +440,14 @@ for Matrix3 { fn mul_m(&self, other: &Matrix3) -> Matrix3 { Matrix3::new(self.r(0).dot(other.c(0)),self.r(1).dot(other.c(0)),self.r(2).dot(other.c(0)), - self.r(0).dot(other.c(1)),self.r(1).dot(other.c(1)),self.r(2).dot(other.c(1)), - self.r(0).dot(other.c(2)),self.r(1).dot(other.c(2)),self.r(2).dot(other.c(2))) + self.r(0).dot(other.c(1)),self.r(1).dot(other.c(1)),self.r(2).dot(other.c(1)), + self.r(0).dot(other.c(2)),self.r(1).dot(other.c(2)),self.r(2).dot(other.c(2))) } fn transpose(&self) -> Matrix3 { Matrix3::new(self.cr(0, 0).clone(), self.cr(1, 0).clone(), self.cr(2, 0).clone(), - self.cr(0, 1).clone(), self.cr(1, 1).clone(), self.cr(2, 1).clone(), - self.cr(0, 2).clone(), self.cr(1, 2).clone(), self.cr(2, 2).clone()) + self.cr(0, 1).clone(), self.cr(1, 1).clone(), self.cr(2, 1).clone(), + self.cr(0, 2).clone(), self.cr(1, 2).clone(), self.cr(2, 2).clone()) } #[inline] @@ -467,8 +467,8 @@ for Matrix3 let det = self.determinant(); if det.approx_eq(&zero()) { None } else { Some(Matrix3::from_cols(self.c(1).cross(self.c(2)).div_s(det.clone()), - self.c(2).cross(self.c(0)).div_s(det.clone()), - self.c(0).cross(self.c(1)).div_s(det.clone())).transpose()) + self.c(2).cross(self.c(0)).div_s(det.clone()), + self.c(0).cross(self.c(1)).div_s(det.clone())).transpose()) } } @@ -513,16 +513,16 @@ for Matrix4 { fn mul_m(&self, other: &Matrix4) -> Matrix4 { Matrix4::new(dot_matrix4!(self, other, 0, 0), dot_matrix4!(self, other, 1, 0), dot_matrix4!(self, other, 2, 0), dot_matrix4!(self, other, 3, 0), - dot_matrix4!(self, other, 0, 1), dot_matrix4!(self, other, 1, 1), dot_matrix4!(self, other, 2, 1), dot_matrix4!(self, other, 3, 1), - dot_matrix4!(self, other, 0, 2), dot_matrix4!(self, other, 1, 2), dot_matrix4!(self, other, 2, 2), dot_matrix4!(self, other, 3, 2), - dot_matrix4!(self, other, 0, 3), dot_matrix4!(self, other, 1, 3), dot_matrix4!(self, other, 2, 3), dot_matrix4!(self, other, 3, 3)) + dot_matrix4!(self, other, 0, 1), dot_matrix4!(self, other, 1, 1), dot_matrix4!(self, other, 2, 1), dot_matrix4!(self, other, 3, 1), + dot_matrix4!(self, other, 0, 2), dot_matrix4!(self, other, 1, 2), dot_matrix4!(self, other, 2, 2), dot_matrix4!(self, other, 3, 2), + dot_matrix4!(self, other, 0, 3), dot_matrix4!(self, other, 1, 3), dot_matrix4!(self, other, 2, 3), dot_matrix4!(self, other, 3, 3)) } fn transpose(&self) -> Matrix4 { Matrix4::new(self.cr(0, 0).clone(), self.cr(1, 0).clone(), self.cr(2, 0).clone(), self.cr(3, 0).clone(), - self.cr(0, 1).clone(), self.cr(1, 1).clone(), self.cr(2, 1).clone(), self.cr(3, 1).clone(), - self.cr(0, 2).clone(), self.cr(1, 2).clone(), self.cr(2, 2).clone(), self.cr(3, 2).clone(), - self.cr(0, 3).clone(), self.cr(1, 3).clone(), self.cr(2, 3).clone(), self.cr(3, 3).clone()) + self.cr(0, 1).clone(), self.cr(1, 1).clone(), self.cr(2, 1).clone(), self.cr(3, 1).clone(), + self.cr(0, 2).clone(), self.cr(1, 2).clone(), self.cr(2, 2).clone(), self.cr(3, 2).clone(), + self.cr(0, 3).clone(), self.cr(1, 3).clone(), self.cr(2, 3).clone(), self.cr(3, 3).clone()) } fn transpose_self(&mut self) { @@ -536,17 +536,17 @@ for Matrix4 fn determinant(&self) -> S { let m0 = Matrix3::new(self.cr(1, 1).clone(), self.cr(2, 1).clone(), self.cr(3, 1).clone(), - self.cr(1, 2).clone(), self.cr(2, 2).clone(), self.cr(3, 2).clone(), - self.cr(1, 3).clone(), self.cr(2, 3).clone(), self.cr(3, 3).clone()); + self.cr(1, 2).clone(), self.cr(2, 2).clone(), self.cr(3, 2).clone(), + self.cr(1, 3).clone(), self.cr(2, 3).clone(), self.cr(3, 3).clone()); let m1 = Matrix3::new(self.cr(0, 1).clone(), self.cr(2, 1).clone(), self.cr(3, 1).clone(), - self.cr(0, 2).clone(), self.cr(2, 2).clone(), self.cr(3, 2).clone(), - self.cr(0, 3).clone(), self.cr(2, 3).clone(), self.cr(3, 3).clone()); + self.cr(0, 2).clone(), self.cr(2, 2).clone(), self.cr(3, 2).clone(), + self.cr(0, 3).clone(), self.cr(2, 3).clone(), self.cr(3, 3).clone()); let m2 = Matrix3::new(self.cr(0, 1).clone(), self.cr(1, 1).clone(), self.cr(3, 1).clone(), - self.cr(0, 2).clone(), self.cr(1, 2).clone(), self.cr(3, 2).clone(), - self.cr(0, 3).clone(), self.cr(1, 3).clone(), self.cr(3, 3).clone()); + self.cr(0, 2).clone(), self.cr(1, 2).clone(), self.cr(3, 2).clone(), + self.cr(0, 3).clone(), self.cr(1, 3).clone(), self.cr(3, 3).clone()); let m3 = Matrix3::new(self.cr(0, 1).clone(), self.cr(1, 1).clone(), self.cr(2, 1).clone(), - self.cr(0, 2).clone(), self.cr(1, 2).clone(), self.cr(2, 2).clone(), - self.cr(0, 3).clone(), self.cr(1, 3).clone(), self.cr(2, 3).clone()); + self.cr(0, 2).clone(), self.cr(1, 2).clone(), self.cr(2, 2).clone(), + self.cr(0, 3).clone(), self.cr(1, 3).clone(), self.cr(2, 3).clone()); *self.cr(0, 0) * m0.determinant() - *self.cr(1, 0) * m1.determinant() + @@ -646,8 +646,8 @@ ToMatrix3 for Matrix2 { /// 3-dimensional identity matrix. fn to_matrix3(&self) -> Matrix3 { Matrix3::new(self.cr(0, 0).clone(), self.cr(0, 1).clone(), zero(), - self.cr(1, 0).clone(), self.cr(1, 1).clone(), zero(), - zero(), zero(), one()) + self.cr(1, 0).clone(), self.cr(1, 1).clone(), zero(), + zero(), zero(), one()) } } @@ -657,9 +657,9 @@ ToMatrix4 for Matrix2 { /// 4-dimensional identity matrix. fn to_matrix4(&self) -> Matrix4 { Matrix4::new(self.cr(0, 0).clone(), self.cr(0, 1).clone(), zero(), zero(), - self.cr(1, 0).clone(), self.cr(1, 1).clone(), zero(), zero(), - zero(), zero(), one(), zero(), - zero(), zero(), zero(), one()) + self.cr(1, 0).clone(), self.cr(1, 1).clone(), zero(), zero(), + zero(), zero(), one(), zero(), + zero(), zero(), zero(), one()) } } @@ -669,9 +669,9 @@ ToMatrix4 for Matrix3 { /// 4-dimensional identity matrix. fn to_matrix4(&self) -> Matrix4 { Matrix4::new(self.cr(0, 0).clone(), self.cr(0, 1).clone(), self.cr(0, 2).clone(), zero(), - self.cr(1, 0).clone(), self.cr(1, 1).clone(), self.cr(1, 2).clone(), zero(), - self.cr(2, 0).clone(), self.cr(2, 1).clone(), self.cr(2, 2).clone(), zero(), - zero(), zero(), zero(), one()) + self.cr(1, 0).clone(), self.cr(1, 1).clone(), self.cr(1, 2).clone(), zero(), + self.cr(2, 0).clone(), self.cr(2, 1).clone(), self.cr(2, 2).clone(), zero(), + zero(), zero(), zero(), one()) } } diff --git a/src/cgmath/plane.rs b/src/cgmath/plane.rs index 175c7f6..b13576f 100644 --- a/src/cgmath/plane.rs +++ b/src/cgmath/plane.rs @@ -125,9 +125,6 @@ ApproxEq for Plane { impl fmt::Show for Plane { fn fmt(&self, f: &mut fmt::Formatter) -> fmt::Result { write!(f.buf, "{:f}x + {:f}y + {:f}z - {:f} = 0", - self.n.x, - self.n.y, - self.n.z, - self.d) + self.n.x, self.n.y, self.n.z, self.d) } } diff --git a/src/cgmath/projection.rs b/src/cgmath/projection.rs index 9500b11..5edd636 100644 --- a/src/cgmath/projection.rs +++ b/src/cgmath/projection.rs @@ -137,9 +137,9 @@ impl> ToMatrix4 for PerspectiveFov { let c3r3 = zero(); Matrix4::new(c0r0, c0r1, c0r2, c0r3, - c1r0, c1r1, c1r2, c1r3, - c2r0, c2r1, c2r2, c2r3, - c3r0, c3r1, c3r2, c3r3) + c1r0, c1r1, c1r2, c1r3, + c2r0, c2r1, c2r2, c2r3, + c3r0, c3r1, c3r2, c3r3) } } @@ -188,9 +188,9 @@ impl ToMatrix4 for Perspective { let c3r3 = zero(); Matrix4::new(c0r0, c0r1, c0r2, c0r3, - c1r0, c1r1, c1r2, c1r3, - c2r0, c2r1, c2r2, c2r3, - c3r0, c3r1, c3r2, c3r3) + c1r0, c1r1, c1r2, c1r3, + c2r0, c2r1, c2r2, c2r3, + c3r0, c3r1, c3r2, c3r3) } } @@ -245,8 +245,8 @@ impl ToMatrix4 for Ortho { let c3r3 = one::(); Matrix4::new(c0r0, c0r1, c0r2, c0r3, - c1r0, c1r1, c1r2, c1r3, - c2r0, c2r1, c2r2, c2r3, - c3r0, c3r1, c3r2, c3r3) + c1r0, c1r1, c1r2, c1r3, + c2r0, c2r1, c2r2, c2r3, + c3r0, c3r1, c3r2, c3r3) } } diff --git a/src/cgmath/quaternion.rs b/src/cgmath/quaternion.rs index bd9feef..097a3e6 100644 --- a/src/cgmath/quaternion.rs +++ b/src/cgmath/quaternion.rs @@ -96,9 +96,9 @@ Quaternion { /// The the result of multipliplying the quaternion by `other` pub fn mul_q(&self, other: &Quaternion) -> Quaternion { Quaternion::new(self.s * other.s - self.v.x * other.v.x - self.v.y * other.v.y - self.v.z * other.v.z, - self.s * other.v.x + self.v.x * other.s + self.v.y * other.v.z - self.v.z * other.v.y, - self.s * other.v.y + self.v.y * other.s + self.v.z * other.v.x - self.v.x * other.v.z, - self.s * other.v.z + self.v.z * other.s + self.v.x * other.v.y - self.v.y * other.v.x) + self.s * other.v.x + self.v.x * other.s + self.v.y * other.v.z - self.v.z * other.v.y, + self.s * other.v.y + self.v.y * other.s + self.v.z * other.v.x - self.v.x * other.v.z, + self.s * other.v.z + self.v.z * other.s + self.v.x * other.v.y - self.v.y * other.v.x) } #[inline] @@ -248,8 +248,8 @@ ToMatrix3 for Quaternion { let sx2 = x2 * self.s; Matrix3::new(one::() - yy2 - zz2, xy2 + sz2, xz2 - sy2, - xy2 - sz2, one::() - xx2 - zz2, yz2 + sx2, - xz2 + sy2, yz2 - sx2, one::() - xx2 - yy2) + xy2 - sz2, one::() - xx2 - zz2, yz2 + sx2, + xz2 + sy2, yz2 - sx2, one::() - xx2 - yy2) } } @@ -274,9 +274,9 @@ ToMatrix4 for Quaternion { let sx2 = x2 * self.s; Matrix4::new(one::() - yy2 - zz2, xy2 + sz2, xz2 - sy2, zero::(), - xy2 - sz2, one::() - xx2 - zz2, yz2 + sx2, zero::(), - xz2 + sy2, yz2 - sx2, one::() - xx2 - yy2, zero::(), - zero::(), zero::(), zero::(), one::()) + xy2 - sz2, one::() - xx2 - zz2, yz2 + sx2, zero::(), + xz2 + sy2, yz2 - sx2, one::() - xx2 - yy2, zero::(), + zero::(), zero::(), zero::(), one::()) } } @@ -360,8 +360,8 @@ Rotation3 for Quaternion let (sz2, cz2) = sin_cos(z.mul_s(cast(0.5).unwrap())); Quaternion::new(cz2 * cx2 * cy2 + sz2 * sx2 * sy2, - sz2 * cx2 * cy2 - cz2 * sx2 * sy2, - cz2 * sx2 * cy2 + sz2 * cx2 * sy2, - cz2 * cx2 * sy2 - sz2 * sx2 * cy2) + sz2 * cx2 * cy2 - cz2 * sx2 * sy2, + cz2 * sx2 * cy2 + sz2 * cx2 * sy2, + cz2 * cx2 * sy2 - sz2 * sx2 * cy2) } } diff --git a/src/test/matrix.rs b/src/test/matrix.rs index 8d2072c..1dc3a92 100644 --- a/src/test/matrix.rs +++ b/src/test/matrix.rs @@ -22,11 +22,11 @@ pub mod matrix2 { use cgmath::vector::*; pub static A: Matrix2 = Matrix2 { x: Vector2 { x: 1.0, y: 3.0 }, - y: Vector2 { x: 2.0, y: 4.0 } }; + y: Vector2 { x: 2.0, y: 4.0 } }; pub static B: Matrix2 = Matrix2 { x: Vector2 { x: 2.0, y: 4.0 }, - y: Vector2 { x: 3.0, y: 5.0 } }; + y: Vector2 { x: 3.0, y: 5.0 } }; pub static C: Matrix2 = Matrix2 { x: Vector2 { x: 2.0, y: 1.0 }, - y: Vector2 { x: 1.0, y: 2.0 } }; + y: Vector2 { x: 1.0, y: 2.0 } }; pub static V: Vector2 = Vector2 { x: 1.0, y: 2.0 }; pub static F: f64 = 0.5; @@ -37,17 +37,17 @@ pub mod matrix3 { use cgmath::vector::*; pub static A: Matrix3 = Matrix3 { x: Vector3 { x: 1.0, y: 4.0, z: 7.0 }, - y: Vector3 { x: 2.0, y: 5.0, z: 8.0 }, - z: Vector3 { x: 3.0, y: 6.0, z: 9.0 } }; + y: Vector3 { x: 2.0, y: 5.0, z: 8.0 }, + z: Vector3 { x: 3.0, y: 6.0, z: 9.0 } }; pub static B: Matrix3 = Matrix3 { x: Vector3 { x: 2.0, y: 5.0, z: 8.0 }, - y: Vector3 { x: 3.0, y: 6.0, z: 9.0 }, - z: Vector3 { x: 4.0, y: 7.0, z: 10.0 } }; + y: Vector3 { x: 3.0, y: 6.0, z: 9.0 }, + z: Vector3 { x: 4.0, y: 7.0, z: 10.0 } }; pub static C: Matrix3 = Matrix3 { x: Vector3 { x: 2.0, y: 4.0, z: 6.0 }, - y: Vector3 { x: 0.0, y: 2.0, z: 4.0 }, - z: Vector3 { x: 0.0, y: 0.0, z: 1.0 } }; + y: Vector3 { x: 0.0, y: 2.0, z: 4.0 }, + z: Vector3 { x: 0.0, y: 0.0, z: 1.0 } }; pub static D: Matrix3 = Matrix3 { x: Vector3 { x: 3.0, y: 2.0, z: 1.0 }, - y: Vector3 { x: 2.0, y: 3.0, z: 2.0 }, - z: Vector3 { x: 1.0, y: 2.0, z: 3.0 } }; + y: Vector3 { x: 2.0, y: 3.0, z: 2.0 }, + z: Vector3 { x: 1.0, y: 2.0, z: 3.0 } }; pub static V: Vector3 = Vector3 { x: 1.0, y: 2.0, z: 3.0 }; pub static F: f64 = 0.5; @@ -58,21 +58,21 @@ pub mod matrix4 { use cgmath::vector::*; pub static A: Matrix4 = Matrix4 { x: Vector4 { x: 1.0, y: 5.0, z: 9.0, w: 13.0 }, - y: Vector4 { x: 2.0, y: 6.0, z: 10.0, w: 14.0 }, - z: Vector4 { x: 3.0, y: 7.0, z: 11.0, w: 15.0 }, - w: Vector4 { x: 4.0, y: 8.0, z: 12.0, w: 16.0 } }; + y: Vector4 { x: 2.0, y: 6.0, z: 10.0, w: 14.0 }, + z: Vector4 { x: 3.0, y: 7.0, z: 11.0, w: 15.0 }, + w: Vector4 { x: 4.0, y: 8.0, z: 12.0, w: 16.0 } }; pub static B: Matrix4 = Matrix4 { x: Vector4 { x: 2.0, y: 6.0, z: 10.0, w: 14.0 }, - y: Vector4 { x: 3.0, y: 7.0, z: 11.0, w: 15.0 }, - z: Vector4 { x: 4.0, y: 8.0, z: 12.0, w: 16.0 }, - w: Vector4 { x: 5.0, y: 9.0, z: 13.0, w: 17.0 } }; + y: Vector4 { x: 3.0, y: 7.0, z: 11.0, w: 15.0 }, + z: Vector4 { x: 4.0, y: 8.0, z: 12.0, w: 16.0 }, + w: Vector4 { x: 5.0, y: 9.0, z: 13.0, w: 17.0 } }; pub static C: Matrix4 = Matrix4 { x: Vector4 { x: 3.0, y: 2.0, z: 1.0, w: 1.0 }, - y: Vector4 { x: 2.0, y: 3.0, z: 2.0, w: 2.0 }, - z: Vector4 { x: 1.0, y: 2.0, z: 3.0, w: 3.0 }, - w: Vector4 { x: 0.0, y: 1.0, z: 1.0, w: 0.0 } }; + y: Vector4 { x: 2.0, y: 3.0, z: 2.0, w: 2.0 }, + z: Vector4 { x: 1.0, y: 2.0, z: 3.0, w: 3.0 }, + w: Vector4 { x: 0.0, y: 1.0, z: 1.0, w: 0.0 } }; pub static D: Matrix4 = Matrix4 { x: Vector4 { x: 4.0, y: 3.0, z: 2.0, w: 1.0 }, - y: Vector4 { x: 3.0, y: 4.0, z: 3.0, w: 2.0 }, - z: Vector4 { x: 2.0, y: 3.0, z: 4.0, w: 3.0 }, - w: Vector4 { x: 1.0, y: 2.0, z: 3.0, w: 4.0 } }; + y: Vector4 { x: 3.0, y: 4.0, z: 3.0, w: 2.0 }, + z: Vector4 { x: 2.0, y: 3.0, z: 4.0, w: 3.0 }, + w: Vector4 { x: 1.0, y: 2.0, z: 3.0, w: 4.0 } }; pub static V: Vector4 = Vector4 { x: 1.0, y: 2.0, z: 3.0, w: 4.0 }; pub static F: f64 = 0.5; @@ -83,18 +83,18 @@ fn test_neg() { // Matrix2 assert_eq!(-matrix2::A, Matrix2::new(-1.0, -3.0, - -2.0, -4.0)); + -2.0, -4.0)); // Matrix3 assert_eq!(-matrix3::A, Matrix3::new(-1.0, -4.0, -7.0, - -2.0, -5.0, -8.0, - -3.0, -6.0, -9.0)); + -2.0, -5.0, -8.0, + -3.0, -6.0, -9.0)); // Matrix4 assert_eq!(-matrix4::A, Matrix4::new(-1.0, -5.0, -9.0, -13.0, - -2.0, -6.0, -10.0, -14.0, - -3.0, -7.0, -11.0, -15.0, - -4.0, -8.0, -12.0, -16.0)); + -2.0, -6.0, -10.0, -14.0, + -3.0, -7.0, -11.0, -15.0, + -4.0, -8.0, -12.0, -16.0)); } #[test] @@ -102,7 +102,7 @@ fn test_mul_s() { // Matrix2 assert_eq!(matrix2::A.mul_s(matrix2::F), Matrix2::new(0.5, 1.5, - 1.0, 2.0)); + 1.0, 2.0)); let mut mut_a = matrix2::A; mut_a.mul_self_s(matrix2::F); assert_eq!(mut_a, matrix2::A.mul_s(matrix2::F)); @@ -110,8 +110,8 @@ fn test_mul_s() { // Matrix3 assert_eq!(matrix3::A.mul_s(matrix3::F), Matrix3::new(0.5, 2.0, 3.5, - 1.0, 2.5, 4.0, - 1.5, 3.0, 4.5)); + 1.0, 2.5, 4.0, + 1.5, 3.0, 4.5)); let mut mut_a = matrix3::A; mut_a.mul_self_s(matrix3::F); assert_eq!(mut_a, matrix3::A.mul_s(matrix3::F)); @@ -119,9 +119,9 @@ fn test_mul_s() { // Matrix4 assert_eq!(matrix4::A.mul_s(matrix4::F), Matrix4::new(0.5, 2.5, 4.5, 6.5, - 1.0, 3.0, 5.0, 7.0, - 1.5, 3.5, 5.5, 7.5, - 2.0, 4.0, 6.0, 8.0)); + 1.0, 3.0, 5.0, 7.0, + 1.5, 3.5, 5.5, 7.5, + 2.0, 4.0, 6.0, 8.0)); let mut mut_a = matrix4::A; mut_a.mul_self_s(matrix4::F); assert_eq!(mut_a, matrix4::A.mul_s(matrix4::F)); @@ -132,7 +132,7 @@ fn test_add_m() { // Matrix2 assert_eq!(matrix2::A.add_m(&matrix2::B), Matrix2::new(3.0, 7.0, - 5.0, 9.0)); + 5.0, 9.0)); let mut mut_a = matrix2::A; mut_a.add_self_m(&matrix2::B); assert_eq!(mut_a, matrix2::A.add_m(&matrix2::B)); @@ -140,8 +140,8 @@ fn test_add_m() { // Matrix3 assert_eq!(matrix3::A.add_m(&matrix3::B), Matrix3::new(3.0, 9.0, 15.0, - 5.0, 11.0, 17.0, - 7.0, 13.0, 19.0)); + 5.0, 11.0, 17.0, + 7.0, 13.0, 19.0)); let mut mut_a = matrix3::A; mut_a.add_self_m(&matrix3::B); assert_eq!(mut_a, matrix3::A.add_m(&matrix3::B)); @@ -149,9 +149,9 @@ fn test_add_m() { // Matrix4 assert_eq!(matrix4::A.add_m(&matrix4::B), Matrix4::new(3.0, 11.0, 19.0, 27.0, - 5.0, 13.0, 21.0, 29.0, - 7.0, 15.0, 23.0, 31.0, - 9.0, 17.0, 25.0, 33.0)); + 5.0, 13.0, 21.0, 29.0, + 7.0, 15.0, 23.0, 31.0, + 9.0, 17.0, 25.0, 33.0)); let mut mut_a = matrix4::A; mut_a.add_self_m(&matrix4::B); assert_eq!(mut_a, matrix4::A.add_m(&matrix4::B)); @@ -162,7 +162,7 @@ fn test_sub_m() { // Matrix2 assert_eq!(matrix2::A.sub_m(&matrix2::B), Matrix2::new(-1.0, -1.0, - -1.0, -1.0)); + -1.0, -1.0)); let mut mut_a = matrix2::A; mut_a.sub_self_m(&matrix2::B); assert_eq!(mut_a, matrix2::A.sub_m(&matrix2::B)); @@ -170,8 +170,8 @@ fn test_sub_m() { // Matrix3 assert_eq!(matrix3::A.sub_m(&matrix3::B), Matrix3::new(-1.0, -1.0, -1.0, - -1.0, -1.0, -1.0, - -1.0, -1.0, -1.0)); + -1.0, -1.0, -1.0, + -1.0, -1.0, -1.0)); let mut mut_a = matrix3::A; mut_a.sub_self_m(&matrix3::B); assert_eq!(mut_a, matrix3::A.sub_m(&matrix3::B)); @@ -179,9 +179,9 @@ fn test_sub_m() { // Matrix4 assert_eq!(matrix4::A.sub_m(&matrix4::B), Matrix4::new(-1.0, -1.0, -1.0, -1.0, - -1.0, -1.0, -1.0, -1.0, - -1.0, -1.0, -1.0, -1.0, - -1.0, -1.0, -1.0, -1.0)); + -1.0, -1.0, -1.0, -1.0, + -1.0, -1.0, -1.0, -1.0, + -1.0, -1.0, -1.0, -1.0)); let mut mut_a = matrix4::A; mut_a.sub_self_m(&matrix4::B); assert_eq!(mut_a, matrix4::A.sub_m(&matrix4::B)); @@ -198,16 +198,16 @@ fn test_mul_v() { fn test_mul_m() { assert_eq!(matrix2::A.mul_m(&matrix2::B), Matrix2::new(10.0, 22.0, - 13.0, 29.0)); + 13.0, 29.0)); assert_eq!(matrix3::A.mul_m(&matrix3::B), Matrix3::new(36.0, 81.0, 126.0, - 42.0, 96.0, 150.0, - 48.0, 111.0, 174.0)); + 42.0, 96.0, 150.0, + 48.0, 111.0, 174.0)); assert_eq!(matrix4::A.mul_m(&matrix4::B), Matrix4::new(100.0, 228.0, 356.0, 484.0, - 110.0, 254.0, 398.0, 542.0, - 120.0, 280.0, 440.0, 600.0, - 130.0, 306.0, 482.0, 658.0)); + 110.0, 254.0, 398.0, 542.0, + 120.0, 280.0, 440.0, 600.0, + 130.0, 306.0, 482.0, 658.0)); } #[test] @@ -229,7 +229,7 @@ fn test_transpose() { // Matrix2 assert_eq!(matrix2::A.transpose(), Matrix2::::new(1.0, 2.0, - 3.0, 4.0)); + 3.0, 4.0)); let mut mut_a = matrix2::A; mut_a.transpose_self(); assert_eq!(mut_a, matrix2::A.transpose()); @@ -237,8 +237,8 @@ fn test_transpose() { // Matrix3 assert_eq!(matrix3::A.transpose(), Matrix3::::new(1.0, 2.0, 3.0, - 4.0, 5.0, 6.0, - 7.0, 8.0, 9.0)); + 4.0, 5.0, 6.0, + 7.0, 8.0, 9.0)); let mut mut_a = matrix3::A; mut_a.transpose_self(); assert_eq!(mut_a, matrix3::A.transpose()); @@ -246,9 +246,9 @@ fn test_transpose() { // Matrix4 assert_eq!(matrix4::A.transpose(), Matrix4::::new( 1.0, 2.0, 3.0, 4.0, - 5.0, 6.0, 7.0, 8.0, - 9.0, 10.0, 11.0, 12.0, - 13.0, 14.0, 15.0, 16.0)); + 5.0, 6.0, 7.0, 8.0, + 9.0, 10.0, 11.0, 12.0, + 13.0, 14.0, 15.0, 16.0)); let mut mut_a = matrix4::A; mut_a.transpose_self(); assert_eq!(mut_a, matrix4::A.transpose()); @@ -261,9 +261,9 @@ fn test_invert() { assert_eq!(matrix2::A.invert().unwrap(), Matrix2::new(-2.0, 1.5, - 1.0, -0.5)); + 1.0, -0.5)); assert!(Matrix2::new(0.0, 2.0, - 0.0, 5.0).invert().is_none()); + 0.0, 5.0).invert().is_none()); let mut mut_a = matrix2::A; mut_a.invert_self(); assert_eq!(mut_a, matrix2::A.invert().unwrap()); @@ -275,8 +275,8 @@ fn test_invert() { assert_eq!(matrix3::C.invert().unwrap(), Matrix3::new(0.5, -1.0, 1.0, - 0.0, 0.5, -2.0, - 0.0, 0.0, 1.0)); + 0.0, 0.5, -2.0, + 0.0, 0.0, 1.0)); let mut mut_c = matrix3::C; mut_c.invert_self(); assert_eq!(mut_c, matrix3::C.invert().unwrap()); @@ -286,9 +286,9 @@ fn test_invert() { assert!(matrix4::C.invert().unwrap().approx_eq(& Matrix4::new( 5.0, -4.0, 1.0, 0.0, - -4.0, 8.0, -4.0, 0.0, - 4.0, -8.0, 4.0, 8.0, - -3.0, 4.0, 1.0, -8.0).mul_s(0.125))); + -4.0, 8.0, -4.0, 0.0, + 4.0, -8.0, 4.0, 8.0, + -3.0, 4.0, 1.0, -8.0).mul_s(0.125))); let mut mut_c = matrix4::C; mut_c.invert_self(); assert_eq!(mut_c, matrix4::C.invert().unwrap()); diff --git a/src/test/plane.rs b/src/test/plane.rs index 75cc90e..e297b9c 100644 --- a/src/test/plane.rs +++ b/src/test/plane.rs @@ -39,8 +39,8 @@ fn test_ray_intersection() { assert_eq!((p0, r0).intersection(), Some(Point3::new(7f64, 8f64, 9f64))); let p1 = Plane::from_points(Point3::new(5f64, 0f64, 5f64), - Point3::new(5f64, 5f64, 5f64), - Point3::new(5f64, 0f64, -1f64)).unwrap(); + Point3::new(5f64, 5f64, 5f64), + Point3::new(5f64, 0f64, -1f64)).unwrap(); let r1: Ray3 = Ray::new(Point3::new(0f64, 0f64, 0f64), Vector3::new(-1f64, 0f64, 0f64).normalize()); assert_eq!((p1, r1).intersection(), None); // r1 points away from p1 }