#pragma once #include struct V2ST { size_t x; size_t y; V2ST() = default; V2ST(size_t x, size_t y); V2ST(int32_t x, int32_t y); bool operator==(V2ST &b); bool operator==(const V2ST& other) const { return x == other.x && y == other.y; } }; struct V2F32 { float x; float y; V2F32() = default; V2F32(float x, float y); V2F32 operator/(float scalar); V2F32 operator*(float scalar); V2F32 operator+(V2F32 other); }; struct V3F32 { float x; float y; float z; V3F32() = default; V3F32(float x, float y, float z); V3F32 operator/(float scalar); V3F32 operator*(float scalar); }; struct V4F32 { float x; float y; float z; float w; V4F32() = default; V4F32 (float x, float y, float z, float w); V4F32 operator/(float scalar); V4F32 operator*(float scalar); }; struct V2I32 { int32_t x; int32_t y; V2I32() = default; V2I32 (int32_t x, int32_t y); bool operator==(V2I32 other); }; struct Color { float r; float g; float b; float a; }; struct RectF32 { float x0; float y0; float x1; float y1; };