From f0824fdebc79fbf3843c2053522107c33e3ce2a3 Mon Sep 17 00:00:00 2001 From: HampusM Date: Mon, 7 Mar 2022 20:20:18 +0100 Subject: refactor: move directions to vector2 & make vector2 hashable --- src/engine/data/vector2.hpp | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) (limited to 'src/engine/data/vector2.hpp') diff --git a/src/engine/data/vector2.hpp b/src/engine/data/vector2.hpp index acfe11f..dff548c 100644 --- a/src/engine/data/vector2.hpp +++ b/src/engine/data/vector2.hpp @@ -1,6 +1,7 @@ #pragma once #include +#include struct Vector2Options { @@ -27,7 +28,35 @@ public: const Vector2 &operator+=(const Vector2 &vector2) noexcept; const Vector2 &operator-=(const Vector2 &vector2) noexcept; + bool operator==(const Vector2 &vector2) const noexcept; + + /** + * Returns Vector2({.x = 0, .y = 1}) + */ + static Vector2 up(); + + /** + * Returns Vector2({.x = 0, .y = -1}) + */ + static Vector2 down(); + + /** + * Returns Vector2({.x = -1, .y = 0}) + */ + static Vector2 left(); + + /** + * Returns Vector2({.x = 1, .y = 0}) + */ + static Vector2 right(); + private: int32_t _x; int32_t _y; }; + +class Vector2Hasher +{ +public: + std::size_t operator()(const Vector2 &vector2) const; +}; -- cgit v1.2.3-18-g5258