protected override void InitGrid() { VectorPoint rectDimensions = Dimensions; switch (shape) { case Shape.Rectangle: base.Grid = PointyTriGrid <TileCell> .Rectangle(rectDimensions.X, rectDimensions.Y); break; case Shape.Parallelogram: base.Grid = PointyTriGrid <TileCell> .ParallelogramXY(rectDimensions.X, rectDimensions.Y); break; case Shape.ThinRectangle: base.Grid = PointyTriGrid <TileCell> .ThinRectangle(rectDimensions.X, rectDimensions.Y); break; case Shape.FatRectangle: base.Grid = PointyTriGrid <TileCell> .FatRectangle(rectDimensions.X, rectDimensions.Y); break; case Shape.LeftTriangle: base.Grid = PointyTriGrid <TileCell> .LeftTriangle(size); break; case Shape.RightTriangle: base.Grid = PointyTriGrid <TileCell> .RightTriangle(size); break; case Shape.Hexagon: base.Grid = PointyTriGrid <TileCell> .Hexagon(size); break; case Shape.Star: base.Grid = PointyTriGrid <TileCell> .Star(size); break; case Shape.Single: base.Grid = PointyTriGrid <TileCell> .Single(); break; case Shape.SingleGroup: base.Grid = PointyTriGrid <TileCell> .SingleGroup(); break; case Shape.Custom: base.Grid = GetCustomGrid(); break; default: throw new ArgumentOutOfRangeException(); } }