public IGrid <TNewCell, FlatHexPoint> MakeVertexGrid <TNewCell>() { var vertices = this.SelectMany(x => x.GetVertices()); var storage = FlatHexGrid <TNewCell> .CalculateStorage(vertices); var offset = FlatHexGrid <TNewCell> .GridPointFromArrayPoint(storage.offset); return(new FlatHexGrid <TNewCell>(storage.dimensions.X, storage.dimensions.Y, x => IsInsideVertexGrid(x + offset), offset)); }