aboutsummaryrefslogtreecommitdiff
path: root/src/engine/data/vector2.hpp
diff options
context:
space:
mode:
Diffstat (limited to 'src/engine/data/vector2.hpp')
-rw-r--r--src/engine/data/vector2.hpp29
1 files changed, 29 insertions, 0 deletions
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 <cstdint>
+#include <functional>
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;
+};