1 #ifndef MISC_H_INCLUDED
\r
2 #define MISC_H_INCLUDED
\r
5 /* HACK to get this to compile */
\r
6 #define max(a,b) (a>b?a:b)
\r
7 #define min(a,b) (a<b?a:b)
\r
9 inline float clamp(float val, float minVal, float maxVal)
\r
11 return min(max(val,minVal),maxVal);
\r
16 float x1, y1, x2, y2;
\r
17 frect(){x1=y1=x2=y1=0;}
\r
18 frect(float ux1, float uy1, float ux2, float uy2){x1=ux1; y1=uy1; x2=ux2; y2=uy2; Normalize();}
\r
19 void Normalize(){if(x1>x2)std::swap(x1,x2); if(y1>y2)std::swap(y1,y2);}
\r
20 frect &operator =(frect &rc){x1=rc.x1; y1=rc.y1; x2=rc.x2; y2=rc.y2; return *this;}
\r
23 float inline pow(float base, int power)
\r
25 if(power==1)return base;
\r
26 if(power==0)return 1;
\r
27 return base*pow(base, power-1);
\r
30 float inline frand(int precis=4)
\r
32 int val=(int)pow(10.0f,precis);
\r
33 return (rand()%val)/(float)val;
\r
36 void inline InitRandomNumbers()
\r
38 srand((unsigned int)time(0));
\r
51 rgba(){r=g=b=a=0.0f;}
\r
52 rgba &operator =(rgba &c){r=c.r; g=c.g; b=c.b; a=c.a; return *this;}
\r