From 1f5892a1b73ff375a3e70697569e67fb7fd4c1bf Mon Sep 17 00:00:00 2001 From: Oshgnacknak Date: Wed, 29 Dec 2021 14:22:22 +0100 Subject: [PATCH] Extract Vector --- src/Vector.cpp | 37 +++++++++++++++++++++++++++++++++++++ src/Vector.h | 24 ++++++++++++++++++++++++ 2 files changed, 61 insertions(+) create mode 100644 src/Vector.cpp create mode 100644 src/Vector.h diff --git a/src/Vector.cpp b/src/Vector.cpp new file mode 100644 index 0000000..c3f858a --- /dev/null +++ b/src/Vector.cpp @@ -0,0 +1,37 @@ +#include "Vector.h" + +Vector2::Vector2(double x, double y) : x(x), y(y) {} + +Vector2 Vector2::conjugate() { + return {x, -y}; +} + +Vector2 Vector2::operator*(double d) { + return {x*d, y*d}; +} + +Vector2 Vector2::operator*=(double d) { + x *= d; + y *= d; + return *this; +} + +Vector2 Vector2::operator+(Vector2 v) { + return {x+v.x, y+v.y}; +} + +Vector2 Vector2::operator+=(Vector2 v) { + x += v.x; + y += v.y; + return *this; +} + +Vector2 Vector2::operator-(Vector2 v) { + return {x-v.x, y-v.y}; +} + +Vector2 Vector2::operator-=(Vector2 v) { + x -= v.x; + y -= v.y; + return *this; +} diff --git a/src/Vector.h b/src/Vector.h new file mode 100644 index 0000000..256e1af --- /dev/null +++ b/src/Vector.h @@ -0,0 +1,24 @@ +#ifndef VECTOR_H +#define VECTOR_H + +struct Vector2 { + double x, y; + + Vector2(double x = 0, double y = 0); + + Vector2 conjugate(); + + Vector2 operator*(double d); + + Vector2 operator*=(double d); + + Vector2 operator+(Vector2 v); + + Vector2 operator+=(Vector2 v); + + Vector2 operator-(Vector2 v); + + Vector2 operator-=(Vector2 v); +}; + +#endif /* VECTOR_H */