From 8ceb79db1d0687bba005cef4a77bb889bf7ec3c3 Mon Sep 17 00:00:00 2001 From: HampusM Date: Sun, 9 Jan 2022 21:47:23 +0100 Subject: refactor: rewrite to c++ --- src/vector2.hpp | 62 +++++++++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 62 insertions(+) create mode 100644 src/vector2.hpp (limited to 'src/vector2.hpp') diff --git a/src/vector2.hpp b/src/vector2.hpp new file mode 100644 index 0000000..ccfa75b --- /dev/null +++ b/src/vector2.hpp @@ -0,0 +1,62 @@ +#ifndef VECTOR2_HPP +#define VECTOR2_HPP + +#include + +/** + * A 2D Vector. + */ +class Vector2 +{ +public: + /** + * Creates a 2D vector. + * + * @param x A X coordinate + * @param y A Y coordinate + */ + Vector2(unsigned int x, unsigned int y); + + /** + * Returns the X coordinate. + */ + unsigned int x() const; + + /** + * Sets the X coordinate. + * + * @param x A new X coordinate + */ + void x(unsigned int x); + + /** + * Returns the Y coordinate. + */ + unsigned int y() const; + + /** + * Sets the Y coordinate. + * + * @param Y A new Y coordinate + */ + void y(unsigned int y); + + /** + * Creates a copy of the 2D vector. + * + * @returns A identical 2D vector. + */ + std::shared_ptr copy(); + + Vector2 operator+(const Vector2 vector2); + Vector2 operator-(const Vector2 vector2); + + Vector2 &operator+=(const Vector2 &vector2); + Vector2 &operator-=(const Vector2 &vector2); + +private: + unsigned int _x; + unsigned int _y; +}; + +#endif -- cgit v1.2.3-18-g5258