Add contains point method to Region

Change-Id: I553433ff7ac39f14ffca8278960d2abc95b4dd63
This commit is contained in:
Michael Wright 2014-02-10 13:00:14 -08:00
parent 835f5df6cc
commit 1c284a9431
2 changed files with 19 additions and 0 deletions

View File

@ -50,6 +50,9 @@ public:
inline Rect getBounds() const { return mStorage[mStorage.size() - 1]; }
inline Rect bounds() const { return getBounds(); }
bool contains(const Point& point) const;
bool contains(int x, int y) const;
// the region becomes its bounds
Region& makeBoundsSelf();

View File

@ -221,6 +221,22 @@ Region& Region::makeBoundsSelf()
return *this;
}
bool Region::contains(const Point& point) const {
return contains(point.x, point.y);
}
bool Region::contains(int x, int y) const {
const_iterator cur = begin();
const_iterator const tail = end();
while (cur != tail) {
if (y >= cur->top && y < cur->bottom && x >= cur->left && x < cur->right) {
return true;
}
cur++;
}
return false;
}
void Region::clear()
{
mStorage.clear();