aboutsummaryrefslogtreecommitdiff
path: root/src/RectangleUtil.hh
blob: 88c3a339aa8784c57bf660291a893ecdd58756d2 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
#ifndef RECTANGLEUTIL_HH
#define RECTANGLEUTIL_HH

namespace RectangleUtil {


/*
 * Determines if a point is inside a rectangle-like objects border.
 * @param rect A rectangle-like object that has accessors for x, y, width, and
 *        height.
 * @param x
 * @param y 
 * @param border_width The size of the border.
 * @returns true if point is inside the rectangle-like object.
*/
template <typename RectangleLike>
bool insideBorder(const RectangleLike& rect,
                  int x, int y,
                  int border_width) {
    return
        x >= rect.x() + border_width &&
        x < rect.x() + (int)rect.width() + border_width &&
        y >= rect.y() + border_width &&
        y < rect.y() + (int)rect.height() + border_width;
}

} // namespace RectangleUtil


#endif // RECTANGLEUTIL_HH