diff options
Diffstat (limited to 'archive/hgehelp/hgerect.cpp')
-rw-r--r-- | archive/hgehelp/hgerect.cpp | 45 |
1 files changed, 45 insertions, 0 deletions
diff --git a/archive/hgehelp/hgerect.cpp b/archive/hgehelp/hgerect.cpp new file mode 100644 index 0000000..303286c --- /dev/null +++ b/archive/hgehelp/hgerect.cpp @@ -0,0 +1,45 @@ +/* +** Haaf's Game Engine 1.7 +** Copyright (C) 2003-2007, Relish Games +** hge.relishgames.com +** +** hgeRect helper class implementation +*/ + + +#include "hgerect.h" +#include <math.h> + + +void hgeRect::Encapsulate(float x, float y) +{ + if(bClean) + { + x1=x2=x; + y1=y2=y; + bClean=false; + } + else + { + if(x<x1) x1=x; + if(x>x2) x2=x; + if(y<y1) y1=y; + if(y>y2) y2=y; + } +} + +bool hgeRect::TestPoint(float x, float y) const +{ + if(x>=x1 && x<x2 && y>=y1 && y<y2) return true; + + return false; +} + +bool hgeRect::Intersect(const hgeRect *rect) const +{ + if(fabs(x1 + x2 - rect->x1 - rect->x2) < (x2 - x1 + rect->x2 - rect->x1)) + if(fabs(y1 + y2 - rect->y1 - rect->y2) < (y2 - y1 + rect->y2 - rect->y1)) + return true; + + return false; +} |