A collection that represents a 2-D grid with equal amount of cells in each row and equal number of cells in each column. Supports different origin (location of 0,0) configurations,
and includes methods to get neighbors of cells, iterators, and more. Behind the scenes, the data is stored in a 1-D Vec to improve performance, but interaction with grid is done through normal (x,y)
grid location methods.
Custom configuration of the grid. For most grids out there, with x and y values always positive, an origin: Origin::UpperLeft and inverted_y: true is the best fit, and therefore is the default setting.
wrap_x and wrap_y properties, if true wrap around the grid when calling get_up or xy_neighbor or any other method
that returns neighbors of a called cell. These parameters do not affect iterators.