diff --git a/include/td/Maths.h b/include/td/Maths.h index aff9373..9d4f795 100644 --- a/include/td/Maths.h +++ b/include/td/Maths.h @@ -183,6 +183,51 @@ T Lerp(T v0, T v1, T t) { } // namespace maths +template +Vec2 operator+(const Vec2& vect, const Vec2& other) { + return {vect.x + other.x, vect.y + other.y}; +} + +template +Vec2 operator- (const Vec2& vect) { + return { -vect.x, -vect.y }; +} + +template +Vec2 operator- (const Vec2& vect, const Vec2& other) { + return vect + (-other); +} + +template +Vec3 operator- (const Vec3& vect) { + return { -vect.x, -vect.y, -vect.z }; +} + +template +Vec3 operator+ (const Vec3& vect, const Vec3& other) { + return { vect.x + other.x, vect.y + other.y, vect.z + other.z }; +} + +template +Vec3 operator- (const Vec3& vect, const Vec3& other) { + return vect + (-other); +} + +template +Vec4 operator- (const Vec4& vect) { + return { -vect.x, -vect.y, -vect.z, -vect.w }; +} + +template +Vec4 operator+ (const Vec4& vect, const Vec4& other) { + return { vect.x + other.x, vect.y + other.y, vect.z + other.z, vect.w + other.w }; +} + +template +Vec4 operator- (const Vec4& vect, const Vec4& other) { + return vect + (-other); +} + template sp::DataBuffer& operator<<(sp::DataBuffer& a_Buffer, const Vec2& a_Vec) { return a_Buffer << a_Vec.x << a_Vec.y;