aboutsummaryrefslogtreecommitdiff
path: root/src/util/box_traverser.h
blob: cb7dfeb029a8534dea3a3369833d2998b4b8053c (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
#ifndef LIFE_SRC_UTIL_BOX_TRAVERSER_
#define LIFE_SRC_UTIL_BOX_TRAVERSER_

#include <functional>

#include "box_indicator.h"

namespace life {
namespace util {

struct BoxTraverser : public BoxIndicator {
	using BoxIndicator::BoxIndicator;

	void for_each(const std::function<void(std::size_t, std::size_t)> f) const {
		for ( std::size_t x = this->a_x_; x < this->b_x_; x++ ) {
			for ( std::size_t y = this->a_y_; y < this->b_y_; y++ ) {
				f(x, y);
			}
		}
	}
};

}
}

#endif  // LIFE_SRC_UTIL_BOX_TRAVERSER_