namespace StitchATon.Utility; public class Grid2D { private T[] _buffer; public readonly int W; public readonly int H; public Grid2D( int width, int height ) { W = width; H = height; _buffer = new T[W * H]; } private int Map( int x, int y ) { return x + ( y * W ); } public T this[ int x, int y ] { get => _buffer[Map( x, y )]; set => _buffer[Map( x, y )] = value; } }