diff --git a/util/Vector.cc b/util/Vector.cc index 6dae276..3c5065e 100644 --- a/util/Vector.cc +++ b/util/Vector.cc @@ -86,10 +86,22 @@ Vector Vector::getPerpendicular() const return p; } -std::ostream & operator<<(std::ostream & out, const Vector & v) +Vector Vector::mult(const Vector & v2) const { - out << "[" << v[0] << ", " << v[1] << ", " << v[2] << "]"; - return out; + Vector result; + result[0] = m_array[0] * v2.m_array[0]; + result[1] = m_array[1] * v2.m_array[1]; + result[2] = m_array[2] * v2.m_array[2]; + return result; +} + +Vector Vector::div(const Vector & v2) const +{ + Vector result; + result[0] = m_array[0] / v2.m_array[0]; + result[1] = m_array[1] / v2.m_array[1]; + result[2] = m_array[2] / v2.m_array[2]; + return result; } Vector Vector::operator-() const @@ -170,3 +182,9 @@ Vector & Vector::operator-=(const Vector & v2) m_array[2] -= v2.m_array[2]; return *this; } + +std::ostream & operator<<(std::ostream & out, const Vector & v) +{ + out << "[" << v[0] << ", " << v[1] << ", " << v[2] << "]"; + return out; +} diff --git a/util/Vector.h b/util/Vector.h index 0fb0414..7993441 100644 --- a/util/Vector.h +++ b/util/Vector.h @@ -20,6 +20,8 @@ class Vector Vector reflect(const Vector & target) const; Vector getPerpendicular() const; + Vector mult(const Vector & v2) const; + Vector div(const Vector & v2) const; Vector operator-() const; double operator%(const Vector & v2) const; Vector operator*(const Vector & v2) const;