Core: Integrate semantic constants in math structs

- Excludes self-explanatory constants (ZERO, ONE, etc)
This commit is contained in:
Thaddeus Crews
2025-08-18 11:57:20 -05:00
parent 0c51ede243
commit 84c0ec04f3
16 changed files with 192 additions and 123 deletions

View File

@ -37,7 +37,12 @@ class String;
struct Vector2;
struct [[nodiscard]] Vector2i {
static const int AXIS_COUNT = 2;
static const Vector2i LEFT;
static const Vector2i RIGHT;
static const Vector2i UP;
static const Vector2i DOWN;
static constexpr int AXIS_COUNT = 2;
enum Axis {
AXIS_X,
@ -150,6 +155,11 @@ struct [[nodiscard]] Vector2i {
// NOLINTEND(cppcoreguidelines-pro-type-member-init)
};
inline constexpr Vector2i Vector2i::LEFT = { -1, 0 };
inline constexpr Vector2i Vector2i::RIGHT = { 1, 0 };
inline constexpr Vector2i Vector2i::UP = { 0, -1 };
inline constexpr Vector2i Vector2i::DOWN = { 0, 1 };
constexpr Vector2i Vector2i::operator+(const Vector2i &p_v) const {
return Vector2i(x + p_v.x, y + p_v.y);
}