#include "Rect.h" namespace MiniEngine { Rect::Rect(int X, int Y, int W, int H) { x = X; y = Y; w = W; h = H; } // explicit Rect::Rect(const SDL_Rect& r):Rect(r.x,r.y,r.w,r.h) { } Rect::Rect() { x = y = w = h = 0; } SDL_Rect Rect::toSDLRect() const { SDL_Rect r; r.x = x; r.y = y; r.w = w; r.h = h; return r; } bool Rect::isEmpty() const { SDL_Rect r=toSDLRect(); return SDL_RectEmpty(&r)==SDL_TRUE; } bool Rect::operator == (const Rect& r) const { SDL_Rect a=toSDLRect(),b=r.toSDLRect(); return SDL_RectEquals(&a,&b)==SDL_TRUE; } bool Rect::hasIntersection(const Rect& r) const { SDL_Rect a=toSDLRect(),b=r.toSDLRect(); return SDL_HasIntersection(&a,&b)==SDL_TRUE; } Rect Rect::getIntersection(const Rect& r) const { SDL_Rect a=toSDLRect(),b=r.toSDLRect(),c; if(SDL_IntersectRect(&a,&b,&c)==SDL_TRUE) { return Rect(c); } else { return Rect(); } } Rect Rect::getUnion(const Rect& r) const { SDL_Rect a=toSDLRect(),b=r.toSDLRect(),c; SDL_UnionRect(&a,&b,&c);//void return Rect(c); } } /// End of namespace MiniEngine