diff --git a/Vector.cpp b/Vector.cpp index 183fd91..e256d92 100644 --- a/Vector.cpp +++ b/Vector.cpp @@ -3,3 +3,14 @@ double Vector::GetMagnitude() const { return sqrt(x_ * x_ + y_ * y_ + z_ * z_); } + +/* + * subtract (this) - (v) + * and return result + */ +Vector Vector::Subtract(const Vector& vec) const { + return Vector(x_ - vec.x_, + y_ - vec.y_, + z_ - vec.z_, + 0.0); +} diff --git a/Vector.h b/Vector.h index 2b2bb8c..d59f062 100644 --- a/Vector.h +++ b/Vector.h @@ -6,7 +6,15 @@ class Vector { public: - Vector(double x = 0.0, double y = 0.0, double z = 0.0, double w = 0.0) + Vector(void) + : x_(0.0), y_(0.0), z_(0.0), w_(0.0) { + } + + Vector(double x, double y, double z) + : x_(x), y_(y), z_(z), w_(0.0) { + } + + Vector(double x, double y, double z, double w) : x_(x), y_(y), z_(z), w_(w) { } @@ -46,6 +54,7 @@ public: } double GetMagnitude() const; + Vector Subtract(const Vector& v) const; protected: double x_;