Add another variant of Rect::Contains()

This commit is contained in:
Dmitry Marakasov 2015-01-08 06:52:29 +03:00
parent a657e9e52b
commit 0f4eea5aab
4 changed files with 26 additions and 3 deletions

View File

@ -1,6 +1,6 @@
libSDL2pp - C++11 bindings/wrapper for SDL2
Copyright (C) 2013-2014 Dmitry Marakasov <amdmi3@amdmi3.ru>
Copyright (C) 2013-2015 Dmitry Marakasov <amdmi3@amdmi3.ru>
This software is provided 'as-is', without any express or implied
warranty. In no event will the authors be held liable for any damages

View File

@ -1,6 +1,6 @@
/*
libSDL2pp - C++11 bindings/wrapper for SDL2
Copyright (C) 2013-2014 Dmitry Marakasov <amdmi3@amdmi3.ru>
Copyright (C) 2013-2015 Dmitry Marakasov <amdmi3@amdmi3.ru>
This software is provided 'as-is', without any express or implied
warranty. In no event will the authors be held liable for any damages
@ -144,6 +144,10 @@ void Rect::SetY2(int y2) {
h = y2 - y + 1;
}
bool Rect::Contains(int px, int py) const {
return px >= x && py >= y && px <= GetX2() && py <= GetY2();
}
bool Rect::Contains(const Point& point) const {
return point.x >= x && point.y >= y && point.x <= GetX2() && point.y <= GetY2();
}

View File

@ -1,6 +1,6 @@
/*
libSDL2pp - C++11 bindings/wrapper for SDL2
Copyright (C) 2013-2014 Dmitry Marakasov <amdmi3@amdmi3.ru>
Copyright (C) 2013-2015 Dmitry Marakasov <amdmi3@amdmi3.ru>
This software is provided 'as-is', without any express or implied
warranty. In no event will the authors be held liable for any damages
@ -281,6 +281,17 @@ public:
////////////////////////////////////////////////////////////
void SetY2(int y2);
////////////////////////////////////////////////////////////
/// \brief Check whether the rect contains given point
///
/// \param x X coordinate of a point
/// \param y Y coordinate of a point
///
/// \returns True if the point is contained in the rect
///
////////////////////////////////////////////////////////////
bool Contains(int x, int y) const;
////////////////////////////////////////////////////////////
/// \brief Check whether the rect contains given point
///

View File

@ -158,6 +158,14 @@ BEGIN_TEST()
EXPECT_TRUE(!r.Contains(Point(15, 20)));
EXPECT_TRUE(!r.Contains(Point(10, 25)));
EXPECT_TRUE(r.Contains(10, 20));
EXPECT_TRUE(r.Contains(14, 24));
EXPECT_TRUE(!r.Contains(9, 20));
EXPECT_TRUE(!r.Contains(10, 19));
EXPECT_TRUE(!r.Contains(15, 20));
EXPECT_TRUE(!r.Contains(10, 25));
// Rect contains rect
EXPECT_TRUE(r.Contains(r));
EXPECT_TRUE(r.Contains(Rect(11, 21, 3, 3)));