public Permutator(byte *grid, Direction direction) { this.grid = GridFunctions.CreateGrid(); GridFunctions.CloneGrid(grid, this.grid); this.direction = direction; collapsedGrid = GridFunctions.CreateGrid(); GridFunctions.CloneGrid(grid, this.collapsedGrid); GridFunctions.CollapseGridInPlace(collapsedGrid, direction); currentRow = 0; currentColumn = 0; GridFunctions.GetDeltas(direction, out offset, out rowDelta, out columnDelta); }