bwmodel
A modeling environment for Minecraft Bedwars
Loading...
Searching...
No Matches
grid.h
1// Copyright (C) 2024 Ethan Uppal. All rights reserved.
2
3#pragma once
4
5#include <vector>
6
7namespace bwmodel {
9 template<typename T>
10 using GridRow = std::vector<T>;
11
12 template<typename T>
13 using Grid = std::vector<GridRow<T>>;
14
16 template<typename T, typename Index>
18 protected:
21 virtual const Grid<T>& backing() const = 0;
22
25 for (const GridRow<T>& row: backing()) {
26 assert(row.size() == backing()[0].size());
27 }
28 }
29
30 public:
31 Index width() const {
32 return backing()[0].size();
33 }
34
35 Index height() const {
36 return backing().size();
37 }
38 };
39}
Definition grid.h:17
virtual const Grid< T > & backing() const =0
void assert_grid_invariant()
Definition grid.h:24