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,14 @@ class String;
struct Vector3;
struct [[nodiscard]] Vector3i {
static const int AXIS_COUNT = 3;
static const Vector3i LEFT;
static const Vector3i RIGHT;
static const Vector3i UP;
static const Vector3i DOWN;
static const Vector3i FORWARD;
static const Vector3i BACK;
static constexpr int AXIS_COUNT = 3;
enum Axis {
AXIS_X,
@@ -139,6 +146,13 @@ struct [[nodiscard]] Vector3i {
x(p_x), y(p_y), z(p_z) {}
};
inline constexpr Vector3i Vector3i::LEFT = { -1, 0, 0 };
inline constexpr Vector3i Vector3i::RIGHT = { 1, 0, 0 };
inline constexpr Vector3i Vector3i::UP = { 0, 1, 0 };
inline constexpr Vector3i Vector3i::DOWN = { 0, -1, 0 };
inline constexpr Vector3i Vector3i::FORWARD = { 0, 0, -1 };
inline constexpr Vector3i Vector3i::BACK = { 0, 0, 1 };
int64_t Vector3i::length_squared() const {
return x * (int64_t)x + y * (int64_t)y + z * (int64_t)z;
}