Remove vector-scalar addition/subtraction

This commit is contained in:
Brendan Zabarauskas 2012-11-08 11:40:03 +10:00
parent 499e5cfeae
commit 53a04a03f6
2 changed files with 3 additions and 52 deletions

View file

@ -28,8 +28,6 @@ fn test_Vec2() {
assert -a == Vec2::new(-1f, -2f);
assert a.neg() == Vec2::new(-1f, -2f);
assert a.add_t(f1) == Vec2::new( 2.5f, 3.5f);
assert a.sub_t(f1) == Vec2::new(-0.5f, 0.5f);
assert a.mul_t(f1) == Vec2::new( 1.5f, 3.0f);
assert a.div_t(f2) == Vec2::new( 2.0f, 4.0f);
@ -83,8 +81,6 @@ fn test_Vec3() {
assert -a == Vec3::new(-1f, -2f, -3f);
assert a.neg() == Vec3::new(-1f, -2f, -3f);
assert a.add_t(f1) == Vec3::new( 2.5f, 3.5f, 4.5f);
assert a.sub_t(f1) == Vec3::new(-0.5f, 0.5f, 1.5f);
assert a.mul_t(f1) == Vec3::new( 1.5f, 3.0f, 4.5f);
assert a.div_t(f2) == Vec3::new( 2.0f, 4.0f, 6.0f);
@ -139,8 +135,6 @@ fn test_Vec4() {
assert -a == Vec4::new(-1f, -2f, -3f, -4f);
assert a.neg() == Vec4::new(-1f, -2f, -3f, -4f);
assert a.add_t(f1) == Vec4::new( 2.5f, 3.5f, 4.5f, 5.5f);
assert a.sub_t(f1) == Vec4::new(-0.5f, 0.5f, 1.5f, 2.5f);
assert a.mul_t(f1) == Vec4::new( 1.5f, 3.0f, 4.5f, 6.0f);
assert a.div_t(f2) == Vec4::new( 2.0f, 4.0f, 6.0f, 8.0f);

View file

@ -37,8 +37,6 @@ pub trait Vector {
}
pub trait NumericVector<T> {
pure fn add_t(value: T) -> self;
pure fn sub_t(value: T) -> self;
pure fn mul_t(value: T) -> self;
pure fn div_t(value: T) -> self;
@ -64,7 +62,7 @@ pub trait Vector3<T> {
// static pure fn new(x: T, y: T, z: T) -> self;
// static pure fn from_value(value: T) -> self;
fn cross(other: &self) -> self;
pure fn cross(other: &self) -> self;
}
pub trait Vector4<T> {
@ -75,6 +73,7 @@ pub trait Vector4<T> {
//
// Vec2
//
@ -125,18 +124,6 @@ pub impl<T> Vec2<T>: Vector {
}
pub impl<T:Copy Num> Vec2<T>: NumericVector<T> {
#[inline(always)]
pure fn add_t(value: T) -> Vec2<T> {
Vec2::new(self[0] + value,
self[1] + value)
}
#[inline(always)]
pure fn sub_t(value: T) -> Vec2<T> {
Vec2::new(self[0] - value,
self[1] - value)
}
#[inline(always)]
pure fn mul_t(value: T) -> Vec2<T> {
Vec2::new(self[0] * value,
@ -304,7 +291,7 @@ pub mod Vec3 {
pub impl<T:Copy Num> Vec3<T>: Vector3<T> {
#[inline(always)]
fn cross(other: &Vec3<T>) -> Vec3<T> {
pure fn cross(other: &Vec3<T>) -> Vec3<T> {
Vec3::new((self[1] * other[2]) - (self[2] * other[1]),
(self[2] * other[0]) - (self[0] * other[2]),
(self[0] * other[1]) - (self[1] * other[0]))
@ -317,20 +304,6 @@ pub impl<T> Vec3<T>: Vector {
}
pub impl<T:Copy Num> Vec3<T>: NumericVector<T> {
#[inline(always)]
pure fn add_t(value: T) -> Vec3<T> {
Vec3::new(self[0] + value,
self[1] + value,
self[2] + value)
}
#[inline(always)]
pure fn sub_t(value: T) -> Vec3<T> {
Vec3::new(self[0] - value,
self[1] - value,
self[2] - value)
}
#[inline(always)]
pure fn mul_t(value: T) -> Vec3<T> {
Vec3::new(self[0] * value,
@ -517,22 +490,6 @@ pub impl<T> Vec4<T>: Vector {
}
pub impl<T:Copy Num> Vec4<T>: NumericVector<T> {
#[inline(always)]
pure fn add_t(value: T) -> Vec4<T> {
Vec4::new(self[0] + value,
self[1] + value,
self[2] + value,
self[3] + value)
}
#[inline(always)]
pure fn sub_t(value: T) -> Vec4<T> {
Vec4::new(self[0] - value,
self[1] - value,
self[2] - value,
self[3] - value)
}
#[inline(always)]
pure fn mul_t(value: T) -> Vec4<T> {
Vec4::new(self[0] * value,