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 getBounds() const { return mStorage[mStorage.size() - 1]; }
|
||||||
inline Rect bounds() const { return getBounds(); }
|
inline Rect bounds() const { return getBounds(); }
|
||||||
|
|
||||||
|
bool contains(const Point& point) const;
|
||||||
|
bool contains(int x, int y) const;
|
||||||
|
|
||||||
// the region becomes its bounds
|
// the region becomes its bounds
|
||||||
Region& makeBoundsSelf();
|
Region& makeBoundsSelf();
|
||||||
|
|
||||||
|
|
|
@ -221,6 +221,22 @@ Region& Region::makeBoundsSelf()
|
||||||
return *this;
|
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()
|
void Region::clear()
|
||||||
{
|
{
|
||||||
mStorage.clear();
|
mStorage.clear();
|
||||||
|
|
Loading…
Reference in New Issue