36 return Rect{0.5f * (p1 + p2),
abs(p1 - p2)};
52 float width()
const {
return dimensions_.
x(); }
55 float height()
const {
return dimensions_.
y(); }
62 float area()
const {
return dimensions_.
x() * dimensions_.
y(); }
66 float left()
const {
return origin_.
x() - 0.5f*dimensions_.
x(); }
70 float right()
const {
return origin_.
x() + 0.5f*dimensions_.
x(); }
74 float ypd_top()
const {
return origin_.
y() - 0.5f*dimensions_.
y(); }
78 float ypd_bottom()
const {
return origin_.
y() + 0.5f*dimensions_.
y(); }
82 float ypu_top()
const {
return origin_.
y() + 0.5f*dimensions_.
y(); }
86 float ypu_bottom()
const {
return origin_.
y() - 0.5f*dimensions_.
y(); }
static constexpr Rect from_point(const Vector2 &point)
Definition rect.h:21
Vector2 ypu_top_right() const
Definition rect.h:140
Vector2 ypu_bottom_right() const
Definition rect.h:148
static Rect from_corners(const Vector2 &p1, const Vector2 &p2)
Definition rect.h:34
Vector2 ypu_bottom_left() const
Definition rect.h:144
float ypd_bottom() const
Definition rect.h:78
Rect with_flipped_y(float distance_between_x_axes) const
Definition rect.h:160
Vector2 ypd_bottom_left() const
Definition rect.h:128
Vector2 max_corner() const
Definition rect.h:116
Rect with_origin_and_dimensions_scaled_by(float scale_factor) const
Definition rect.h:181
Vector2 min_corner() const
Definition rect.h:105
RectCorners corners() const
Definition rect.h:89
float area() const
Definition rect.h:62
Vector2 ypu_top_left() const
Definition rect.h:136
Vector2 origin() const
Definition rect.h:46
float left() const
Definition rect.h:66
float width() const
Definition rect.h:52
Rect with_dimensions(const Vector2 &new_dimensions) const
Definition rect.h:167
Vector2 ypd_bottom_right() const
Definition rect.h:132
Vector2 ypd_top_right() const
Definition rect.h:124
float ypu_bottom() const
Definition rect.h:86
float ypd_top() const
Definition rect.h:74
static constexpr Rect from_origin_and_dimensions(const Vector2 &origin, const Vector2 &dimensions)
Definition rect.h:27
float right() const
Definition rect.h:70
Vector2 half_extents() const
Definition rect.h:59
Rect with_dimensions_scaled_by(const Vector2 &scale_factors) const
Definition rect.h:174
Vector2 ypd_top_left() const
Definition rect.h:120
float ypu_top() const
Definition rect.h:82
float height() const
Definition rect.h:55
friend bool operator==(const Rect &, const Rect &)=default
Vector2 dimensions() const
Definition rect.h:49
constexpr reference x()
Returns (*this)[0]
Definition vector.h:157
constexpr reference y()
Returns (*this)[1]
Definition vector.h:162
Definition custom_decoration_generator.h:5
std::ostream & operator<<(std::ostream &, const Object &)
Vector< float, 2 > Vector2
Definition vector.h:636
T abs(T num)
Definition common_functions.h:24
constexpr U to(T &&value)
Definition conversion.h:56
Definition rect_corners.h:7