summaryrefslogtreecommitdiff
path: root/src/math/Rect.h
diff options
context:
space:
mode:
authorclaude-bot <[email protected]>2026-07-13 12:27:07 +0000
committerclaude-bot <[email protected]>2026-07-13 12:27:07 +0000
commit9f61c9e6ac6b1ac5692cf6352d2ebbd47a31a686 (patch)
treea84756b82513739a2672db3a1f0ec579db6d18ff /src/math/Rect.h
downloadre3-9f61c9e6ac6b1ac5692cf6352d2ebbd47a31a686.tar.gz
re3-9f61c9e6ac6b1ac5692cf6352d2ebbd47a31a686.zip
Import Cai1Hsu/re3 @ miami (reVC / GTA:VC decompilation)HEADmiami
Snapshot import (no upstream history) into git.ancap.in.ua/claude, per @lzcnt. Source: https://github.com/Cai1Hsu/re3 branch miami.
Diffstat (limited to 'src/math/Rect.h')
-rw-r--r--src/math/Rect.h71
1 files changed, 71 insertions, 0 deletions
diff --git a/src/math/Rect.h b/src/math/Rect.h
new file mode 100644
index 0000000..e9b2589
--- /dev/null
+++ b/src/math/Rect.h
@@ -0,0 +1,71 @@
+#pragma once
+
+class CRect
+{
+public:
+ float left; // x min
+ float bottom; // y max
+ float right; // x max
+ float top; // y min
+
+ CRect(void);
+ CRect(float l, float t, float r, float b);
+ void ContainPoint(CVector const &v){
+ if(v.x < left) left = v.x;
+ if(v.x > right) right = v.x;
+ if(v.y < top) top = v.y;
+ if(v.y > bottom) bottom = v.y;
+ }
+ void ContainRect(const CRect &r){
+ if(r.left < left) left = r.left;
+ if(r.right > right) right = r.right;
+ if(r.top < top) top = r.top;
+ if(r.bottom > bottom) bottom = r.bottom;
+ }
+
+ bool IsPointInside(const CVector2D &p){
+ return p.x >= left &&
+ p.x <= right &&
+ p.y >= top &&
+ p.y <= bottom;
+ }
+ bool IsPointInside(const CVector2D &p, float extraRadius){
+ return p.x >= left-extraRadius &&
+ p.x <= right+extraRadius &&
+ p.y >= top-extraRadius &&
+ p.y <= bottom+extraRadius;
+ }
+
+ void Translate(float x, float y){
+ left += x;
+ right += x;
+ bottom += y;
+ top += y;
+ }
+
+ void Grow(float r) {
+ left -= r;
+ right += r;
+ top -= r;
+ bottom += r;
+ }
+
+ void Grow(float l, float r)
+ {
+ left -= l;
+ top -= l;
+ right += r;
+ bottom += r;
+ }
+
+ void Grow(float l, float r, float t, float b)
+ {
+ left -= l;
+ top -= t;
+ right += r;
+ bottom += b;
+ }
+
+ float GetWidth(void) { return right - left; }
+ float GetHeight(void) { return bottom - top; }
+};