diff --git a/src/cgmath/types/point.rs b/src/cgmath/types/point.rs index f0410a5..cf7fb19 100644 --- a/src/cgmath/types/point.rs +++ b/src/cgmath/types/point.rs @@ -41,25 +41,6 @@ impl Point3 { } } -// Operator impls - -impl Mul> for Point2 { #[inline(always)] fn mul(&self, s: &S) -> Point2 { self.map(|x| x.mul(s)) } } -impl Mul> for Point3 { #[inline(always)] fn mul(&self, s: &S) -> Point3 { self.map(|x| x.mul(s)) } } - -impl Div> for Point2 { #[inline(always)] fn div(&self, s: &S) -> Point2 { self.map(|x| x.div(s)) } } -impl Div> for Point3 { #[inline(always)] fn div(&self, s: &S) -> Point3 { self.map(|x| x.div(s)) } } - -impl Rem> for Point2 { #[inline(always)] fn rem(&self, s: &S) -> Point2 { self.map(|x| x.rem(s)) } } -impl Rem> for Point3 { #[inline(always)] fn rem(&self, s: &S) -> Point3 { self.map(|x| x.rem(s)) } } - -impl Add, Point2> for Point2 { #[inline(always)] fn add(&self, other: &Vec2) -> Point2 { self.bimap(other, |a, b| a.add(b)) } } -impl Add, Point3> for Point3 { #[inline(always)] fn add(&self, other: &Vec3) -> Point3 { self.bimap(other, |a, b| a.add(b)) } } - -impl Sub, Vec2> for Point2 { #[inline(always)] fn sub(&self, other: &Point2) -> Vec2 { self.bimap(other, |a, b| a.sub(b)) } } -impl Sub, Vec3> for Point3 { #[inline(always)] fn sub(&self, other: &Point3) -> Vec3 { self.bimap(other, |a, b| a.sub(b)) } } - -// Trait impls - impl_indexable!(Point2, S, [S, ..2]) impl_indexable!(Point3, S, [S, ..3]) @@ -69,8 +50,23 @@ impl Swappable for Point3; impl Coordinate for Point2; impl Coordinate for Point3; +impl_scalar_binop!(Point2, Mul, mul) +impl_scalar_binop!(Point3, Mul, mul) + +impl_scalar_binop!(Point2, Div, div) +impl_scalar_binop!(Point3, Div, div) + +impl_scalar_binop!(Point2, Rem, rem) +impl_scalar_binop!(Point3, Rem, rem) + impl ScalarMul for Point2; impl ScalarMul for Point3; +impl_coordinate_binop!(Point2, Vec2, Point2, Add, add) +impl_coordinate_binop!(Point3, Vec3, Point3, Add, add) + +impl_coordinate_binop!(Point2, Point2, Vec2, Sub, sub) +impl_coordinate_binop!(Point3, Point3, Vec3, Sub, sub) + impl AffineSpace> for Point2; impl AffineSpace> for Point3;