aboutsummaryrefslogtreecommitdiff
path: root/src/util/box_indicator.h
blob: c0493c70b58eb0a383c5c7351f0f7267aa778324 (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
31
32
33
34
35
36
37
38
39
40
#ifndef LIFE_SRC_UTIL_BOX_INDICATOR_
#define LIFE_SRC_UTIL_BOX_INDICATOR_

namespace life {
namespace util {

class BoxIndicator {
	public:
	   	BoxIndicator(
			const std::size_t offset_x,
			const std::size_t offset_y,
			const std::size_t size_x,
			const std::size_t size_y):
			a_x_{offset_x},
			a_y_{offset_y},
			b_x_{a_x_ + size_x},
			b_y_{a_y_ + size_y} { }

	   	BoxIndicator(const std::size_t size_x, const std::size_t size_y):
			BoxIndicator(0, 0, size_x, size_y) { }

		bool operator()(const std::size_t x, const std::size_t y) const {
			return x >= this->a_x_
			    && x <  this->b_x_
			    && y >= this->a_y_
			    && y <  this->b_y_;
		}

	protected:
		const std::size_t a_x_;
		const std::size_t a_y_;
		const std::size_t b_x_;
		const std::size_t b_y_;

};

}
}

#endif  // LIFE_SRC_UTIL_BOX_INDICATOR_