aboutsummaryrefslogtreecommitdiff
path: root/src/util/box_traverser.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/util/box_traverser.h')
-rw-r--r--src/util/box_traverser.h26
1 files changed, 26 insertions, 0 deletions
diff --git a/src/util/box_traverser.h b/src/util/box_traverser.h
new file mode 100644
index 0000000..cb7dfeb
--- /dev/null
+++ b/src/util/box_traverser.h
@@ -0,0 +1,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_