Add contains point method to Region
Change-Id: I553433ff7ac39f14ffca8278960d2abc95b4dd63
This commit is contained in:
parent
835f5df6cc
commit
1c284a9431
@ -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();
|
||||
|
||||
|
@ -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();
|
||||
|
Loading…
Reference in New Issue
Block a user