diff --git a/src/vectors/vec3d.rs b/src/vectors/vec3d.rs index 55cea8f..6b110fd 100644 --- a/src/vectors/vec3d.rs +++ b/src/vectors/vec3d.rs @@ -2,7 +2,7 @@ use std::cmp::Eq; // use std::collections::VecDeque; use std::fmt::Debug; use std::hash::Hash; -use std::ops::{Add, /* Index, IndexMut, */ Mul, Sub}; +use std::ops::{Add, AddAssign, Mul, Sub, SubAssign}; #[derive(Copy, Clone, Debug, PartialEq, Eq, Hash, PartialOrd, Ord)] pub struct Vector3D { @@ -101,6 +101,14 @@ impl, U> Add for Vector3D { } } +impl AddAssign for Vector3D { + fn add_assign(&mut self, rhs: Self) { + self.x += rhs.x; + self.y += rhs.y; + self.z += rhs.z; + } +} + impl, U> Sub for Vector3D { type Output = Vector3D; @@ -113,6 +121,14 @@ impl, U> Sub for Vector3D { } } +impl SubAssign for Vector3D { + fn sub_assign(&mut self, rhs: Self) { + self.x -= rhs.x; + self.y -= rhs.y; + self.z -= rhs.z; + } +} + impl, U> Mul for Vector3D { type Output = Vector3D;