From fda4c9737656ebbca59221c5b13c7a50385c1474 Mon Sep 17 00:00:00 2001 From: Tedi Date: Sun, 28 Jan 2018 12:08:17 +0200 Subject: [PATCH] BUG Fix: Vector2D operators --- BirchEngine/Src/Vector2D.cpp | 28 ++++++++++++++++++++-------- BirchEngine/Src/Vector2D.h | 8 ++++---- 2 files changed, 24 insertions(+), 12 deletions(-) diff --git a/BirchEngine/Src/Vector2D.cpp b/BirchEngine/Src/Vector2D.cpp index f889b5f..4f5fdf8 100644 --- a/BirchEngine/Src/Vector2D.cpp +++ b/BirchEngine/Src/Vector2D.cpp @@ -44,24 +44,36 @@ Vector2D& Vector2D::Divide(const Vector2D& vec) return *this; } -Vector2D& operator+(Vector2D& v1, const Vector2D& v2) +Vector2D Vector2D::operator+ ( const Vector2D& vec ) { - return v1.Add(v2); + Vector2D result; + result.x = this->x + vec.x; + result.y = this->y + vec.y; + return result; } -Vector2D& operator-(Vector2D& v1, const Vector2D& v2) +Vector2D Vector2D::operator- ( const Vector2D& vec ) { - return v1.Subtract(v2); + Vector2D result; + result.x = this->x - vec.x; + result.y = this->y - vec.y; + return result; } -Vector2D& operator*(Vector2D& v1, const Vector2D& v2) +Vector2D Vector2D::operator* ( const Vector2D& vec ) { - return v1.Multiply(v2); + Vector2D result; + result.x = this->x * vec.x; + result.y = this->y * vec.y; + return result; } -Vector2D& operator/(Vector2D& v1, const Vector2D& v2) +Vector2D Vector2D::operator/ ( const Vector2D& vec ) { - return v1.Divide(v2); + Vector2D result; + result.x = this->x / vec.x; + result.y = this->y / vec.y; + return result; } Vector2D& Vector2D::operator+=(const Vector2D& vec) diff --git a/BirchEngine/Src/Vector2D.h b/BirchEngine/Src/Vector2D.h index a2b0589..3842009 100644 --- a/BirchEngine/Src/Vector2D.h +++ b/BirchEngine/Src/Vector2D.h @@ -15,10 +15,10 @@ class Vector2D Vector2D& Multiply(const Vector2D& vec); Vector2D& Divide(const Vector2D& vec); - friend Vector2D& operator+(Vector2D& v1, const Vector2D& v2); - friend Vector2D& operator-(Vector2D& v1, const Vector2D& v2); - friend Vector2D& operator*(Vector2D& v1, const Vector2D& v2); - friend Vector2D& operator/(Vector2D& v1, const Vector2D& v2); + Vector2D operator+ ( const Vector2D& vec ); + Vector2D operator- ( const Vector2D& vec ); + Vector2D operator* ( const Vector2D& vec ); + Vector2D operator/ ( const Vector2D& vec ); Vector2D& operator+=(const Vector2D& vec); Vector2D& operator-=(const Vector2D& vec);