4#include <SDL3/SDL_rect.h>
5#include "SDL3pp_error.h"
6#include "SDL3pp_optionalRef.h"
7#include "SDL3pp_spanRef.h"
8#include "SDL3pp_stdinc.h"
48 return lhs.x == rhs.x && lhs.y == rhs.y;
54 return lhs.x == rhs.x && lhs.y == rhs.y;
60 return SDL_RectsEqual(&lhs, &rhs);
66 return SDL_RectsEqualFloat(&lhs, &rhs);
72 if (lhs.x != rhs.x)
return lhs.x <=> rhs.x;
73 return lhs.y <=> rhs.y;
79 if (lhs.x != rhs.x)
return lhs.x <=> rhs.x;
80 return lhs.y <=> rhs.y;
114 constexpr Point(
int x,
int y) noexcept
135 : SDL_Point{int(p.x), int(p.y)}
144 constexpr explicit operator bool() const noexcept
154 constexpr int GetX() const noexcept {
return x; }
173 constexpr int GetY() const noexcept {
return y; }
340 constexpr operator FPoint()
const;
354 return Point(lhs.x + rhs.x, lhs.y + rhs.y);
368 return Point(lhs.x - rhs.x, lhs.y - rhs.y);
381 return Point(lhs.x / rhs.x, lhs.y / rhs.y);
394 return Point(lhs.x % rhs.x, lhs.y % rhs.y);
408 return Point(lhs.x * rhs.x, lhs.y * rhs.y);
439 constexpr FPoint(
float x,
float y) noexcept
459 constexpr explicit operator bool() const noexcept
469 constexpr float GetX() const noexcept {
return x; }
488 constexpr float GetY() const noexcept {
return y; }
646 return FPoint(lhs.x + rhs.x, lhs.y + rhs.y);
660 return FPoint(lhs.x - rhs.x, lhs.y - rhs.y);
673 return FPoint(lhs.x / rhs.x, lhs.y / rhs.y);
687 return FPoint(lhs.x * rhs.x, lhs.y * rhs.y);
725 constexpr Rect(
int x,
int y,
int w,
int h) noexcept
736 :
RectRaw{int(r.x), int(r.y), int(r.w), int(r.h)}
752 explicit operator bool()
const {
return !
Empty(); }
771 constexpr int GetX() const noexcept {
return x; }
790 constexpr int GetY() const noexcept {
return y; }
809 constexpr int GetW() const noexcept {
return w; }
828 constexpr int GetH() const noexcept {
return h; }
875 return Rect(cx - w / 2, cy - h / 2, w, h);
901 return Rect(x1, y1, x2 - x1 + 1, y2 - y1 + 1);
922 constexpr int GetX2()
const {
return x + w - 1; }
946 constexpr int GetY2()
const {
return y + h - 1; }
1065 p1 ? &p1->y :
nullptr,
1066 p2 ? &p2->x :
nullptr,
1067 p2 ? &p2->y :
nullptr);
1101 operator SDL_FRect()
const;
1104 constexpr operator FRect()
const;
1238 r.
Extend(hAmount, vAmount);
1263 constexpr Rect&
Extend(
unsigned int hAmount,
unsigned int vAmount)
1282 return Rect(x + offset.x, y + offset.y, w, h);
1295 return Rect(x - offset.x, y - offset.y, w, h);
1370 constexpr FRect(
float x,
float y,
float w,
float h) noexcept
1384 operator bool()
const {
return !
Empty(); }
1403 constexpr float GetX() const noexcept {
return x; }
1422 constexpr float GetY() const noexcept {
return y; }
1441 constexpr float GetW() const noexcept {
return w; }
1460 constexpr float GetH() const noexcept {
return h; }
1508 return FRect(cx - w / 2, cy - h / 2, w, h);
1534 return FRect(x1, y1, x2 - x1 + 1, y2 - y1 + 1);
1555 constexpr float GetX2()
const {
return x + w - 1; }
1579 constexpr float GetY2()
const {
return y + h - 1; }
1720 p1 ? &p1->y :
nullptr,
1721 p2 ? &p2->x :
nullptr,
1722 p2 ? &p2->y :
nullptr);
1806 return SDL_PointInRectFloat(&p,
this);
1895 r.
Extend(hAmount, vAmount);
1939 return FRect(x + offset.x, y + offset.y, w, h);
1952 return FRect(x - offset.x, y - offset.y, w, h);
1999 SDL_RectToFRect(&rect, &frect);
2028 return SDL_PointInRect(&p, &r);
2079 return SDL_RectsEqual(&a, &b);
2104 return SDL_HasRectIntersection(&A, &B);
2130 if (
Rect result; SDL_GetRectIntersection(&A, &B, &result))
return result;
2183 if (
Rect result; SDL_GetRectEnclosingPoints(
2222 return SDL_GetRectAndLineIntersection(&rect, X1, Y1, X2, Y2);
2253 return SDL_PointInRectFloat(&p, &r);
2310 const float epsilon)
2312 return SDL_RectsEqualEpsilon(&a, &b, epsilon);
2316 const float epsilon)
const
2348 return SDL_RectsEqualFloat(&a, &b);
2373 return SDL_HasRectIntersectionFloat(&A, &B);
2399 if (
FRect r; SDL_GetRectIntersectionFloat(&A, &B, &r))
return r;
2424 CheckError(SDL_GetRectUnionFloat(&A, &B, &r));
2453 if (
FRect result; SDL_GetRectEnclosingPointsFloat(
2493 return SDL_GetRectAndLineIntersectionFloat(&rect, X1, Y1, X2, Y2);
2506constexpr Point::operator
FPoint()
const {
return {float(x), float(y)}; }
2517 if (x < rect.x) x = rect.x;
2519 if (y < rect.y) y = rect.y;
2534 x = rect.x + rect.w - 1 - (rect.x - x + rect.w - 1) % rect.w;
2535 else if (x >= rect.x + rect.w)
2536 x = rect.x + (x - rect.x - rect.w) % rect.w;
2539 y = rect.y + rect.h - 1 - (rect.y - y + rect.h - 1) % rect.h;
2540 else if (y >= rect.y + rect.h)
2541 y = rect.y + (y - rect.y - rect.h) % rect.h;
2555 if (x < rect.x) x = rect.x;
2557 if (y < rect.y) y = rect.y;
2572 x = rect.x + rect.w - 1 -
SDL::fmod(rect.x - x + rect.w - 1, rect.w);
2573 else if (x >= rect.x + rect.w)
2574 x = rect.x +
SDL::fmod(x - rect.x - rect.w, rect.w);
2577 y = rect.y + rect.h - 1 -
SDL::fmod(rect.y - y + rect.h - 1, rect.h);
2578 else if (y >= rect.y + rect.h)
2579 y = rect.y +
SDL::fmod(y - rect.y - rect.h, rect.h);
2586 return {float(x), float(y), float(w), float(h)};
Optional-like shim for references.
Definition SDL3pp_optionalRef.h:20
span-like for empty-derived structs
Definition SDL3pp_spanRef.h:24
constexpr T * data() const
Retrieves contained data.
Definition SDL3pp_spanRef.h:75
constexpr size_t size() const
Retrieves contained size.
Definition SDL3pp_spanRef.h:69
constexpr void CheckError(bool result)
Check and throw if returned value from SDL is an error.
Definition SDL3pp_error.h:199
constexpr bool operator==(ColorRaw lhs, ColorRaw rhs) noexcept
Comparison operator for Color.
Definition SDL3pp_pixels.h:2079
constexpr auto operator<=>(ColorRaw lhs, ColorRaw rhs) noexcept
Spaceship operator for Color.
Definition SDL3pp_pixels.h:2091
FRect RectToFRect(const RectRaw &rect)
Convert an Rect to FRect.
Definition SDL3pp_rect.h:1996
bool Equal(const RectRaw &other) const
Determine whether two rectangles are equal.
Definition SDL3pp_rect.h:2082
Rect GetRectIntersection(const RectRaw &A, const RectRaw &B)
Calculate the intersection of two rectangles.
Definition SDL3pp_rect.h:2128
bool HasIntersection(const RectRaw &other) const
Determine whether two rectangles intersect.
Definition SDL3pp_rect.h:2107
constexpr FRect GetRectUnionFloat(const FRectRaw &A, const FRectRaw &B)
Calculate the union of two rectangles with float precision.
Definition SDL3pp_rect.h:2421
bool HasRectIntersection(const RectRaw &A, const RectRaw &B)
Determine whether two rectangles intersect.
Definition SDL3pp_rect.h:2102
bool InRect(const RectRaw &r) const
Determine whether a point resides inside a rectangle.
Definition SDL3pp_rect.h:2031
SDL_Rect RectRaw
Alias to raw representation for Rect.
Definition SDL3pp_rect.h:34
bool EqualEpsilon(const FRectRaw &other, const float epsilon) const
Determine whether two floating point rectangles are equal, within some given epsilon.
Definition SDL3pp_rect.h:2315
static FRect GetEnclosingPoints(SpanRef< const FPointRaw > points, OptionalRef< const FRectRaw > clip=std::nullopt)
Calculate a minimal rectangle enclosing a set of points with float precision.
Definition SDL3pp_rect.h:2460
bool Equal(const FRectRaw &other) const
Determine whether two floating point rectangles are equal, within a default epsilon.
Definition SDL3pp_rect.h:2351
bool RectsEqual(const RectRaw &a, const RectRaw &b)
Determine whether two rectangles are equal.
Definition SDL3pp_rect.h:2077
bool GetLineIntersection(float *X1, float *Y1, float *X2, float *Y2) const
Calculate the intersection of a rectangle and line segment with float precision.
Definition SDL3pp_rect.h:2496
Rect GetRectEnclosingPoints(SpanRef< const PointRaw > points, OptionalRef< const RectRaw > clip=std::nullopt)
Calculate a minimal rectangle enclosing a set of points.
Definition SDL3pp_rect.h:2179
SDL_FRect FRectRaw
Alias to raw representation for FRect.
Definition SDL3pp_rect.h:40
constexpr Point operator+(const Point &lhs, const Point &rhs)
Get point's memberwise addition with another point.
Definition SDL3pp_rect.h:352
Rect GetIntersection(const RectRaw &other) const
Calculate the intersection of two rectangles.
Definition SDL3pp_rect.h:2134
bool GetRectAndLineIntersectionFloat(const FRectRaw &rect, float *X1, float *Y1, float *X2, float *Y2)
Calculate the intersection of a rectangle and line segment with float precision.
Definition SDL3pp_rect.h:2487
bool HasRectIntersectionFloat(const FRectRaw &A, const FRectRaw &B)
Determine whether two rectangles intersect with float precision.
Definition SDL3pp_rect.h:2371
FRect GetRectIntersectionFloat(const FRectRaw &A, const FRectRaw &B)
Calculate the intersection of two rectangles with float precision.
Definition SDL3pp_rect.h:2397
bool PointInRect(const PointRaw &p, const RectRaw &r)
Determine whether a point resides inside a rectangle.
Definition SDL3pp_rect.h:2026
bool RectEmptyFloat(const FRectRaw &r)
Determine whether a floating point rectangle takes no space.
Definition SDL3pp_rect.h:2279
bool InRect(const FRectRaw &r) const
Determine whether a point resides inside a floating point rectangle.
Definition SDL3pp_rect.h:2256
constexpr Point operator*(const Point &lhs, const Point &rhs)
Get point's memberwise multiplication with another point.
Definition SDL3pp_rect.h:406
bool RectEmpty(const RectRaw &r)
Determine whether a rectangle has no area.
Definition SDL3pp_rect.h:2054
SDL_FPoint FPointRaw
Alias to raw representation for FPoint.
Definition SDL3pp_rect.h:28
constexpr Rect GetUnion(const RectRaw &other) const
Calculate the union of two rectangles.
Definition SDL3pp_rect.h:2158
static Rect GetEnclosingPoints(SpanRef< const PointRaw > points, OptionalRef< const RectRaw > clip=std::nullopt)
Calculate a minimal rectangle enclosing a set of points.
Definition SDL3pp_rect.h:2190
bool HasIntersection(const FRectRaw &other) const
Determine whether two rectangles intersect with float precision.
Definition SDL3pp_rect.h:2376
bool RectsEqualEpsilon(const FRectRaw &a, const FRectRaw &b, const float epsilon)
Determine whether two floating point rectangles are equal, within some given epsilon.
Definition SDL3pp_rect.h:2308
bool Empty() const
Determine whether a rectangle has no area.
Definition SDL3pp_rect.h:2281
constexpr Rect GetRectUnion(const RectRaw &A, const RectRaw &B)
Calculate the union of two rectangles.
Definition SDL3pp_rect.h:2151
bool RectsEqualFloat(const FRectRaw &a, const FRectRaw &b)
Determine whether two floating point rectangles are equal, within a default epsilon.
Definition SDL3pp_rect.h:2346
constexpr Point operator/(const Point &lhs, const Point &rhs)
Get point's memberwise division by another point.
Definition SDL3pp_rect.h:379
FRect GetIntersection(const FRectRaw &other) const
Calculate the intersection of two rectangles with float precision.
Definition SDL3pp_rect.h:2403
constexpr Point operator%(const Point &lhs, const Point &rhs)
Get point's memberwise remainder from division by another point.
Definition SDL3pp_rect.h:392
bool GetRectAndLineIntersection(const RectRaw &rect, int *X1, int *Y1, int *X2, int *Y2)
Calculate the intersection of a rectangle and line segment.
Definition SDL3pp_rect.h:2216
constexpr FRect GetUnion(const FRectRaw &other) const
Calculate the union of two rectangles with float precision.
Definition SDL3pp_rect.h:2428
bool PointInRectFloat(const FPointRaw &p, const FRectRaw &r)
Determine whether a point resides inside a floating point rectangle.
Definition SDL3pp_rect.h:2251
bool Empty() const
Determine whether a rectangle has no area.
Definition SDL3pp_rect.h:2056
constexpr Point operator-(const Point &lhs, const Point &rhs)
Get point's memberwise subtraction with another point.
Definition SDL3pp_rect.h:366
FRect GetRectEnclosingPointsFloat(SpanRef< const FPointRaw > points, OptionalRef< const FRectRaw > clip=std::nullopt)
Calculate a minimal rectangle enclosing a set of points with float precision.
Definition SDL3pp_rect.h:2449
SDL_Point PointRaw
Alias to raw representation for Point.
Definition SDL3pp_rect.h:22
double fmod(double x, double y)
Return the floating-point remainder of x / y.
Definition SDL3pp_stdinc.h:5207
Main include header for the SDL3pp library.
Sint32 narrowS32(T value)
Narrows to Sint32.
Definition SDL3pp_stdinc.h:6263
The structure that defines a point (using floating point values).
Definition SDL3pp_rect.h:422
constexpr float GetY() const noexcept
Get the y coordinate.
Definition SDL3pp_rect.h:488
constexpr FPoint & Wrap(const FRect &rect)
Wrap point coordinates within a specified rect.
Definition SDL3pp_rect.h:2569
constexpr FPoint operator-() const
Get point's memberwise negation.
Definition SDL3pp_rect.h:530
constexpr FPoint & operator/=(const FPoint &other)
Memberwise divide by another point.
Definition SDL3pp_rect.h:570
constexpr float GetX() const noexcept
Get the x coordinate.
Definition SDL3pp_rect.h:469
constexpr FPoint(float x, float y) noexcept
Constructs from its fields.
Definition SDL3pp_rect.h:439
constexpr FPoint & SetX(float newX) noexcept
Set the x coordinate.
Definition SDL3pp_rect.h:477
constexpr FPoint GetClamped(const FRect &rect) const
Get a point with coordinates modified so it fits into a given rect.
Definition SDL3pp_rect.h:2546
constexpr FPoint & operator*=(const FPoint &other)
Memberwise multiply by another point.
Definition SDL3pp_rect.h:585
constexpr FPoint & SetY(float newY) noexcept
Set the y coordinate.
Definition SDL3pp_rect.h:496
constexpr FPoint GetWrapped(const FRect &rect) const
Get a point wrapped within a specified rect.
Definition SDL3pp_rect.h:2562
constexpr FPoint & Clamp(const FRect &rect)
Clamp point coordinates to make it fit into a given rect.
Definition SDL3pp_rect.h:2553
constexpr FPoint(const FPointRaw &p={}) noexcept
Wraps FPoint.
Definition SDL3pp_rect.h:428
constexpr FPoint & operator-=(const FPoint &other)
Memberwise subtract another point.
Definition SDL3pp_rect.h:555
constexpr FPoint(float v) noexcept
Constructs from its fields.
Definition SDL3pp_rect.h:449
constexpr FPoint & operator+=(const FPoint &other)
Memberwise add another point.
Definition SDL3pp_rect.h:540
A rectangle stored using floating point values.
Definition SDL3pp_rect.h:1351
constexpr FRect(const FPoint &corner, const FPoint &size)
Constructs from top-left corner plus size.
Definition SDL3pp_rect.h:1378
constexpr FRect & Extend(float hAmount, float vAmount)
Extend a rect by specified amount of pixels.
Definition SDL3pp_rect.h:1920
constexpr FRect operator+(const FPoint &offset) const
Get rectangle moved by a given offset.
Definition SDL3pp_rect.h:1937
const FPoint & size() const
Definition SDL3pp_rect.h:1393
constexpr FRect & SetX(float newX) noexcept
Set the left x coordinate.
Definition SDL3pp_rect.h:1411
static constexpr FRect FromCorners(FPoint p1, FPoint p2)
Construct the rect from given centers coordinates.
Definition SDL3pp_rect.h:1544
constexpr FRect(float x, float y, float w, float h) noexcept
Constructs from its fields.
Definition SDL3pp_rect.h:1370
constexpr float GetH() const noexcept
Get height of the rect.
Definition SDL3pp_rect.h:1460
const FPoint & position() const
Definition SDL3pp_rect.h:1387
constexpr float GetY() const noexcept
Get top y coordinate.
Definition SDL3pp_rect.h:1422
constexpr FRect & SetSize(const FPoint &size)
Set the size of the rect.
Definition SDL3pp_rect.h:1664
constexpr FPoint GetPosition() const
Get the Position of the rect, which is the same as its top left corner.
Definition SDL3pp_rect.h:1634
constexpr FPoint GetTopRight() const
Get top right corner of the rect.
Definition SDL3pp_rect.h:1611
constexpr FRect operator-(const FPoint &offset) const
Get rectangle moved by an opposite of given offset.
Definition SDL3pp_rect.h:1950
bool Contains(const FPointRaw &p) const
Check whether the rect contains given point.
Definition SDL3pp_rect.h:1804
constexpr FRect & operator+=(const FPoint &offset)
Move by then given offset.
Definition SDL3pp_rect.h:1963
constexpr float GetX() const noexcept
Get left x coordinate.
Definition SDL3pp_rect.h:1403
static constexpr FRect FromCenter(FPoint center, FPoint size)
Construct the rect from given center coordinates and size.
Definition SDL3pp_rect.h:1518
bool Contains(const FRectRaw &other) const
Check whether the rect contains given point.
Definition SDL3pp_rect.h:1817
FPoint & size()
Definition SDL3pp_rect.h:1396
constexpr FRect & operator-=(const FPoint &offset)
Move by an opposite of the given offset.
Definition SDL3pp_rect.h:1978
constexpr FPoint GetBottomRight() const
Get bottom right corner of the rect.
Definition SDL3pp_rect.h:1627
constexpr FPoint GetBottomLeft() const
Get bottom left corner of the rect.
Definition SDL3pp_rect.h:1619
constexpr float GetX2() const
Get X coordinate of the rect second corner.
Definition SDL3pp_rect.h:1555
constexpr FRect GetExtension(unsigned int amount) const
Get a rect extended by specified amount of pixels.
Definition SDL3pp_rect.h:1874
static constexpr FRect FromCenter(float cx, float cy, float w, float h)
Construct the rect from given center coordinates, width and height.
Definition SDL3pp_rect.h:1506
FPoint & position()
Definition SDL3pp_rect.h:1390
constexpr float GetY2() const
Get Y coordinate of the rect second corner.
Definition SDL3pp_rect.h:1579
constexpr FRect & SetH(float newH) noexcept
Set the height of the rect.
Definition SDL3pp_rect.h:1468
constexpr FRect & SetY2(float y2)
Set Y coordinate of the rect second corner.
Definition SDL3pp_rect.h:1591
constexpr float GetW() const noexcept
Get width of the rect.
Definition SDL3pp_rect.h:1441
constexpr FRect & SetX2(float x2)
Set X coordinate of the rect second corner.
Definition SDL3pp_rect.h:1567
static constexpr FRect FromCorners(float x1, float y1, float x2, float y2)
Construct the rect from given corners coordinates.
Definition SDL3pp_rect.h:1532
constexpr FRect & SetPosition(const FPoint &position)
Set the Position object.
Definition SDL3pp_rect.h:1643
constexpr FRect & Extend(float amount)
Extend a rect by specified amount of pixels.
Definition SDL3pp_rect.h:1907
constexpr FRect & SetY(float newY) noexcept
Set the top y coordinate.
Definition SDL3pp_rect.h:1430
constexpr FRect & SetW(float newW) noexcept
Set the width of the rect.
Definition SDL3pp_rect.h:1449
constexpr FRect GetExtension(float hAmount, float vAmount) const
Get a rect extended by specified amount of pixels.
Definition SDL3pp_rect.h:1892
constexpr FPoint GetCentroid() const
Get centroid of the rect.
Definition SDL3pp_rect.h:1677
bool GetLineIntersection(FPoint *p1, FPoint *p2) const
Determine whether a floating point rectangle takes no space.
Definition SDL3pp_rect.h:1717
constexpr FPoint GetTopLeft() const
Get top left corner of the rect.
Definition SDL3pp_rect.h:1603
constexpr FRect(const FRectRaw &r={}) noexcept
Wraps FRect.
Definition SDL3pp_rect.h:1357
constexpr FPoint GetSize() const
Get size of the rect.
Definition SDL3pp_rect.h:1656
The structure that defines a point (using integers).
Definition SDL3pp_rect.h:97
constexpr Point(int v) noexcept
Constructs from its fields.
Definition SDL3pp_rect.h:124
constexpr Point & operator%=(const Point &other)
Memberwise remainder from division by another point.
Definition SDL3pp_rect.h:271
constexpr Point(const PointRaw &p={}) noexcept
Wraps Point.
Definition SDL3pp_rect.h:103
constexpr Point GetClamped(const Rect &rect) const
Get a point with coordinates modified so it fits into a given rect.
Definition SDL3pp_rect.h:2508
constexpr Point(int x, int y) noexcept
Constructs from its fields.
Definition SDL3pp_rect.h:114
constexpr Point & Clamp(const Rect &rect)
Clamp point coordinates to make it fit into a given rect.
Definition SDL3pp_rect.h:2515
constexpr Point & SetX(int newX) noexcept
Set the x coordinate.
Definition SDL3pp_rect.h:162
constexpr Point & SetY(int newY) noexcept
Set the y coordinate.
Definition SDL3pp_rect.h:181
constexpr Point & operator*=(const Point &other)
Memberwise multiply by another point.
Definition SDL3pp_rect.h:286
constexpr Point & operator-=(const Point &other)
Memberwise subtract another point.
Definition SDL3pp_rect.h:240
constexpr int GetY() const noexcept
Get y coordinate.
Definition SDL3pp_rect.h:173
constexpr Point & operator/=(const Point &other)
Memberwise divide by another point.
Definition SDL3pp_rect.h:255
constexpr int GetX() const noexcept
Get x coordinate.
Definition SDL3pp_rect.h:154
constexpr Point GetWrapped(const Rect &rect) const
Get a point wrapped within a specified rect.
Definition SDL3pp_rect.h:2524
constexpr Point & Wrap(const Rect &rect)
Wrap point coordinates within a specified rect.
Definition SDL3pp_rect.h:2531
constexpr Point & operator+=(const Point &other)
Memberwise add another point.
Definition SDL3pp_rect.h:225
constexpr Point operator-() const
Get point's memberwise negation.
Definition SDL3pp_rect.h:215
constexpr Point(const FPointRaw &p)
Wraps Point.
Definition SDL3pp_rect.h:134
A rectangle, with the origin at the upper left (using integers).
Definition SDL3pp_rect.h:706
static constexpr Rect FromCenter(int cx, int cy, int w, int h)
Construct the rect from given center coordinates, width and height.
Definition SDL3pp_rect.h:873
bool Contains(const RectRaw &other) const
Check whether the rect contains given point.
Definition SDL3pp_rect.h:1163
constexpr Rect & operator-=(const Point &offset)
Move by an opposite of the given offset.
Definition SDL3pp_rect.h:1321
bool GetLineIntersection(PointRaw *p1, PointRaw *p2) const
Calculate the intersection of a rectangle and line segment.
Definition SDL3pp_rect.h:1062
constexpr Rect & SetPosition(const Point &position)
Set the Position object.
Definition SDL3pp_rect.h:1010
constexpr Point GetPosition() const
Get the Position of the rect, which is the same as its top left corner.
Definition SDL3pp_rect.h:1001
constexpr Rect GetExtension(unsigned int hAmount, unsigned int vAmount) const
Get a rect extended by specified amount of pixels.
Definition SDL3pp_rect.h:1235
constexpr Point GetTopLeft() const
Get top left corner of the rect.
Definition SDL3pp_rect.h:970
constexpr Rect & Extend(unsigned int hAmount, unsigned int vAmount)
Extend a rect by specified amount of pixels.
Definition SDL3pp_rect.h:1263
constexpr int GetY() const noexcept
Get top y coordinate.
Definition SDL3pp_rect.h:790
constexpr int GetH() const noexcept
Get height of the rect.
Definition SDL3pp_rect.h:828
constexpr Rect operator+(const Point &offset) const
Get rectangle moved by a given offset.
Definition SDL3pp_rect.h:1280
constexpr Rect & operator+=(const Point &offset)
Move by then given offset.
Definition SDL3pp_rect.h:1306
Point & size()
Definition SDL3pp_rect.h:764
constexpr Rect(const RectRaw &r={}) noexcept
Wraps Rect.
Definition SDL3pp_rect.h:712
constexpr Rect GetExtension(unsigned int amount) const
Get a rect extended by specified amount of pixels.
Definition SDL3pp_rect.h:1217
constexpr Rect & SetY(int newY) noexcept
Set the top y coordinate.
Definition SDL3pp_rect.h:798
constexpr Rect(const FRectRaw &r)
Wraps FRect.
Definition SDL3pp_rect.h:735
constexpr Rect & SetW(int newW) noexcept
Set the width of the rect.
Definition SDL3pp_rect.h:817
constexpr Rect & Extend(unsigned int amount)
Extend a rect by specified amount of pixels.
Definition SDL3pp_rect.h:1250
constexpr Point GetCentroid() const
Get centroid of the rect.
Definition SDL3pp_rect.h:1044
constexpr Point GetBottomLeft() const
Get bottom left corner of the rect.
Definition SDL3pp_rect.h:986
constexpr Rect & SetX2(int x2)
Set X coordinate of the rect second corner.
Definition SDL3pp_rect.h:934
const Point & position() const
Definition SDL3pp_rect.h:755
static constexpr Rect FromCorners(Point p1, Point p2)
Construct the rect from given centers coordinates.
Definition SDL3pp_rect.h:911
bool Contains(const PointRaw &p) const
Check whether the rect contains given point.
Definition SDL3pp_rect.h:1153
constexpr Rect & SetSize(const Point &size)
Set the size of the rect.
Definition SDL3pp_rect.h:1031
static constexpr Rect FromCorners(int x1, int y1, int x2, int y2)
Construct the rect from given corners coordinates.
Definition SDL3pp_rect.h:899
constexpr Rect(int x, int y, int w, int h) noexcept
Constructs from its fields.
Definition SDL3pp_rect.h:725
constexpr Point GetSize() const
Get size of the rect.
Definition SDL3pp_rect.h:1023
constexpr Rect operator-(const Point &offset) const
Get rectangle moved by an opposite of given offset.
Definition SDL3pp_rect.h:1293
constexpr Point GetBottomRight() const
Get bottom right corner of the rect.
Definition SDL3pp_rect.h:994
constexpr int GetY2() const
Get Y coordinate of the rect second corner.
Definition SDL3pp_rect.h:946
static constexpr Rect FromCenter(Point center, Point size)
Construct the rect from given center coordinates and size.
Definition SDL3pp_rect.h:885
constexpr Rect & SetH(int newH) noexcept
Set the height of the rect.
Definition SDL3pp_rect.h:836
Point & position()
Definition SDL3pp_rect.h:758
constexpr int GetW() const noexcept
Get width of the rect.
Definition SDL3pp_rect.h:809
constexpr Rect & SetX(int newX) noexcept
Set the left x coordinate.
Definition SDL3pp_rect.h:779
constexpr Rect(const Point &corner, const Point &size)
Construct from offset and size.
Definition SDL3pp_rect.h:746
constexpr Rect & SetY2(int y2)
Set Y coordinate of the rect second corner.
Definition SDL3pp_rect.h:958
constexpr int GetX() const noexcept
Get left x coordinate.
Definition SDL3pp_rect.h:771
const Point & size() const
Definition SDL3pp_rect.h:761
constexpr Point GetTopRight() const
Get top right corner of the rect.
Definition SDL3pp_rect.h:978
constexpr int GetX2() const
Get X coordinate of the rect second corner.
Definition SDL3pp_rect.h:922