From: Dana Jansens Date: Thu, 18 Apr 2002 18:11:33 +0000 (+0000) Subject: added Inflate, Deflate, and Translate to the Rect geometry class X-Git-Url: https://git.brokenzipper.com/gitweb?a=commitdiff_plain;h=83b39a9a3e366d9bc4baadb7c988b874cfe25a08;p=chaz%2Fopenbox added Inflate, Deflate, and Translate to the Rect geometry class --- diff --git a/src/Geometry.cc b/src/Geometry.cc index 0b00b24a..db1de406 100644 --- a/src/Geometry.cc +++ b/src/Geometry.cc @@ -107,3 +107,39 @@ bool Rect::Intersect(const Rect &r) const { (y() < (r.y()+r.h()) ) && ( (y()+h()) > r.y()); } + +Rect Rect::Inflate(const unsigned int i) const { + return Rect(x(), y(), w()+i, h()+i); +} + +Rect Rect::Inflate(const unsigned int iw, const unsigned int ih) const { + return Rect(x(), y(), w()+iw, h()+ih); +} + +Rect Rect::Inflate(const Size &i) const { + return Rect(x(), y(), w()+i.w(), h()+i.h()); +} + +Rect Rect::Deflate(const unsigned int d) const { + return Rect(x(), y(), w()-d, h()-d); +} + +Rect Rect::Deflate(const unsigned int dw, const unsigned int dh) const { + return Rect(x(), y(), w()-dw, h()-dh); +} + +Rect Rect::Deflate(const Size &d) const { + return Rect(x(), y(), w()-d.w(), h()-d.h()); +} + +Rect Rect::Translate(const int t) const { + return Rect(x()+t, y()+t, w(), h()); +} + +Rect Rect::Translate(const int tx, const int ty) const { + return Rect(x()+tx, y()+ty, w(), h()); +} + +Rect Rect::Translate(const Point &t) const { + return Rect(x()+t.x(), y()+t.y(), w(), h()); +} diff --git a/src/Geometry.h b/src/Geometry.h index cbdf0fd1..0ca914b5 100644 --- a/src/Geometry.h +++ b/src/Geometry.h @@ -99,6 +99,18 @@ public: } bool Intersect(const Rect &r) const; + // returns a rect that is this rect increased in size by the passed in amount + Rect Inflate(const unsigned int i) const; + Rect Inflate(const unsigned int iw, const unsigned int ih) const; + Rect Inflate(const Size &i) const; + // returns a rect that is this rect decreased in size by the passed in amount + Rect Deflate(const unsigned int d) const; + Rect Deflate(const unsigned int dw, const unsigned int dh) const; + Rect Deflate(const Size &d) const; + // returns a rect that is moved the amount specified + Rect Translate(const int t) const; + Rect Translate(const int tx, const int ty) const; + Rect Translate(const Point &t) const; }; #endif // __geometry_h