8 #include <utility/dllexport.h>
10 #include <glm/glm.hpp>
26 constexpr
Rect() =
default;
35 constexpr
Rect(
float x,
float y,
float width,
float height) :
36 mMinPosition({ x, y }), mMaxPosition(mMinPosition + glm::vec2(width, height)) {};
43 constexpr
Rect(
const glm::vec2&
min,
const glm::vec2&
max) :
44 mMinPosition(
min), mMaxPosition(
max) {}
52 mMinPosition(std::move(
min)), mMaxPosition(std::move(
max)) {}
55 bool operator==(
const Rect& other)
const;
58 bool operator!=(
const Rect& other)
const;
63 float getWidth()
const;
68 float getHeight()
const;
73 bool hasWidth()
const;
78 bool hasHeight()
const;
83 bool inside(
const glm::vec2& point)
const;
88 const glm::vec2&
getMin()
const {
return mMinPosition; }
93 const glm::vec2&
getMax()
const {
return mMaxPosition; }
95 glm::vec2 mMinPosition = { 0.0f, 0.0f };
96 glm::vec2 mMaxPosition = { 0.0f, 0.0f };
100 static constexpr Rect topRightRect { { 0.0f, 0.0f }, { 1.0f, 1.0f} };
101 static constexpr Rect topLeftRect { { -1.0f, 0.0f }, { 0.0f, 1.0f} };
102 static constexpr Rect bottomLeftRect { { -1.0f, -1.0f }, { 0.0f, 0.0f} };
103 static constexpr Rect bottomRightRect { { 0.0f, -1.0f }, { 1.0f, 0.0f} };
104 static constexpr Rect centeredRect { { -0.5f, -0.5f }, { 0.5f, 0.5f} };