Move to_ptr methods

This commit is contained in:
Brendan Zabarauskas 2012-11-14 11:55:54 +10:00
parent 26bab58b0d
commit e582e5edf5
3 changed files with 35 additions and 49 deletions

View file

@ -163,6 +163,11 @@ pub impl<T:Copy> Mat2<T>: Matrix<T, Vec2<T>, Vec2<T>> {
to_unsafe_ptr(&self)), 2) |slice| { slice[i] } to_unsafe_ptr(&self)), 2) |slice| { slice[i] }
} }
} }
#[inline(always)]
pure fn to_ptr() -> *T {
self[0].to_ptr()
}
} }
pub impl<T:Copy Num NumCast> Mat2<T>: NumericMatrix<T, Vec2<T>, Vec2<T>> { pub impl<T:Copy Num NumCast> Mat2<T>: NumericMatrix<T, Vec2<T>, Vec2<T>> {
@ -296,13 +301,6 @@ pub impl<T:Copy FuzzyEq> Mat2<T>: FuzzyEq {
} }
} }
pub impl<T:Copy> Mat2<T>: ToPtr<T> {
#[inline(always)]
pure fn to_ptr() -> *T {
self[0].to_ptr()
}
}
@ -396,6 +394,11 @@ pub impl<T:Copy> Mat3<T>: Matrix<T, Vec3<T>, Vec3<T>> {
to_unsafe_ptr(&self)), 3) |slice| { slice[i] } to_unsafe_ptr(&self)), 3) |slice| { slice[i] }
} }
} }
#[inline(always)]
pure fn to_ptr() -> *T {
self[0].to_ptr()
}
} }
pub impl<T:Copy Num> Mat3<T>: NumericMatrix<T, Vec3<T>, Vec3<T>> { pub impl<T:Copy Num> Mat3<T>: NumericMatrix<T, Vec3<T>, Vec3<T>> {
@ -589,13 +592,6 @@ pub impl<T:Copy FuzzyEq> Mat3<T>: FuzzyEq {
} }
} }
pub impl<T:Copy> Mat3<T>: ToPtr<T> {
#[inline(always)]
pure fn to_ptr() -> *T {
self[0].to_ptr()
}
}
@ -707,6 +703,11 @@ pub impl<T:Copy> Mat4<T>: Matrix<T, Vec4<T>, Vec4<T>> {
to_unsafe_ptr(&self)), 4) |slice| { slice[i] } to_unsafe_ptr(&self)), 4) |slice| { slice[i] }
} }
} }
#[inline(always)]
pure fn to_ptr() -> *T {
self[0].to_ptr()
}
} }
pub impl<T:Copy Num> Mat4<T>: NumericMatrix<T, Vec4<T>, Vec4<T>> { pub impl<T:Copy Num> Mat4<T>: NumericMatrix<T, Vec4<T>, Vec4<T>> {
@ -931,10 +932,3 @@ pub impl<T:Copy FuzzyEq> Mat4<T>: FuzzyEq {
self[3].fuzzy_eq(&other[3]) self[3].fuzzy_eq(&other[3])
} }
} }
pub impl<T:Copy> Mat4<T>: ToPtr<T> {
#[inline(always)]
pure fn to_ptr() -> *T {
self[0].to_ptr()
}
}

View file

@ -95,6 +95,11 @@ pub impl<T:Copy Num NumCast Trig Exp Extent Ord FuzzyEq> Quat<T>: Quaternion<T>
#[inline(always)] #[inline(always)]
pure fn dim() -> uint { 4 } pure fn dim() -> uint { 4 }
#[inline(always)]
pure fn to_ptr() -> *T {
addr_of(&self[0])
}
#[inline(always)] #[inline(always)]
pure fn neg() -> Quat<T> { pure fn neg() -> Quat<T> {
Quat::new(-self[0], -self[1], -self[2], -self[3]) Quat::new(-self[0], -self[1], -self[2], -self[3])
@ -300,10 +305,3 @@ pub impl<T:Copy FuzzyEq> Quat<T>: FuzzyEq {
self[3].fuzzy_eq(&other[3]) self[3].fuzzy_eq(&other[3])
} }
} }
pub impl<T:Copy> Quat<T>: ToPtr<T> {
#[inline(always)]
pure fn to_ptr() -> *T {
addr_of(&self[0])
}
}

View file

@ -130,6 +130,11 @@ pub impl<T:Copy> Vec2<T>: Vector<T> {
to_unsafe_ptr(&self)), 2) |slice| { slice[i] } to_unsafe_ptr(&self)), 2) |slice| { slice[i] }
} }
} }
#[inline(always)]
pure fn to_ptr() -> *T {
ptr::addr_of(&self[0])
}
} }
pub impl<T:Copy Num> Vec2<T>: NumericVector<T> { pub impl<T:Copy Num> Vec2<T>: NumericVector<T> {
@ -235,13 +240,6 @@ pub impl<T:Copy FuzzyEq> Vec2<T>: FuzzyEq {
} }
} }
pub impl<T:Copy> Vec2<T>: ToPtr<T> {
#[inline(always)]
pure fn to_ptr() -> *T {
ptr::addr_of(&self[0])
}
}
@ -318,6 +316,11 @@ pub impl<T:Copy> Vec3<T>: Vector<T> {
to_unsafe_ptr(&self)), 3) |slice| { slice[i] } to_unsafe_ptr(&self)), 3) |slice| { slice[i] }
} }
} }
#[inline(always)]
pure fn to_ptr() -> *T {
addr_of(&self[0])
}
} }
pub impl<T:Copy Num> Vec3<T>: NumericVector<T> { pub impl<T:Copy Num> Vec3<T>: NumericVector<T> {
@ -431,13 +434,6 @@ pub impl<T:Copy FuzzyEq> Vec3<T>: FuzzyEq {
} }
} }
pub impl<T:Copy> Vec3<T>: ToPtr<T> {
#[inline(always)]
pure fn to_ptr() -> *T {
addr_of(&self[0])
}
}
@ -512,6 +508,11 @@ pub impl<T:Copy> Vec4<T>: Vector<T> {
to_unsafe_ptr(&self)), 4) |slice| { slice[i] } to_unsafe_ptr(&self)), 4) |slice| { slice[i] }
} }
} }
#[inline(always)]
pure fn to_ptr() -> *T {
addr_of(&self[0])
}
} }
pub impl<T:Copy Num> Vec4<T>: NumericVector<T> { pub impl<T:Copy Num> Vec4<T>: NumericVector<T> {
@ -632,10 +633,3 @@ pub impl<T:Copy FuzzyEq> Vec4<T>: FuzzyEq {
self[3].fuzzy_eq(&other[3]) self[3].fuzzy_eq(&other[3])
} }
} }
pub impl<T:Copy> Vec4<T>: ToPtr<T> {
#[inline(always)]
pure fn to_ptr() -> *T {
addr_of(&self[0])
}
}