summaryrefslogtreecommitdiffstats
path: root/src/math/Rect.h
blob: fd1bd05efc315c74db0534a92ee8af9ac35dbfab (plain) (blame)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
#pragma once

class CRect
{
public:
	float left;     // x min
	float bottom;   // y max
	float right;    // x max
	float top;      // y min

	CRect(void){
		left = 1000000.0f;
		top = 1000000.0f;
		right = -1000000.0f;
		bottom = -1000000.0f;
	}
	CRect(float l, float t, float r, float b){
		left = l;
		top = t;
		right = r;
		bottom = 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 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;
	}

	float GetWidth(void) { return right - left; }
	float GetHeight(void) { return bottom - top; }
};