private void InitMap() { Func<WindowedMap<TPoint>, IMap<TPoint>> alignmentFunc; WindowedMap<TPoint> windowedHexMap = CreateWindowedMap(); switch (alignment) { case MapAlignment.TopLeft: alignmentFunc = windowedMap => windowedMap.AlignTopLeft(grid); break; case MapAlignment.TopCenter: alignmentFunc = windowedMap => windowedMap.AlignTopCenter(grid); break; case MapAlignment.TopRight: alignmentFunc = windowedMap => windowedMap.AlignRight(grid); break; case MapAlignment.MiddleLeft: alignmentFunc = windowedMap => windowedMap.AlignMiddleLeft(grid); break; case MapAlignment.MiddleCenter: alignmentFunc = windowedMap => windowedMap.AlignMiddleCenter(grid); break; case MapAlignment.MiddleRight: alignmentFunc = windowedMap => windowedMap.AlignMiddleRight(grid); break; case MapAlignment.BottomLeft: alignmentFunc = windowedMap => windowedMap.AlignBottomLeft(grid); break; case MapAlignment.BottomCenter: alignmentFunc = windowedMap => windowedMap.AlignBottomCenter(grid); break; case MapAlignment.BottomRight: alignmentFunc = windowedMap => windowedMap.AlignBottomRight(grid); break; case MapAlignment.None: alignmentFunc = windowedMap => windowedMap; break; default: throw new ArgumentOutOfRangeException(); } var hexMap = alignmentFunc(windowedHexMap).Scale(cellSpacingFactor); switch (plane) { case MapPlane.XY: map = hexMap.To3DXY(); break; case MapPlane.XZ: map = hexMap.To3DXZ(); break; default: throw new ArgumentOutOfRangeException(); } }
protected IMap3D <TPoint> GetAlignedMap(WindowedMap <TPoint> windowedHexMap) { Func <WindowedMap <TPoint>, IMap <TPoint> > alignmentFunc; switch (alignment) { case MapAlignment.TopLeft: alignmentFunc = windowedMap => windowedMap.AlignTopLeft(grid); break; case MapAlignment.TopCenter: alignmentFunc = windowedMap => windowedMap.AlignTopCenter(grid); break; case MapAlignment.TopRight: alignmentFunc = windowedMap => windowedMap.AlignRight(grid); break; case MapAlignment.MiddleLeft: alignmentFunc = windowedMap => windowedMap.AlignMiddleLeft(grid); break; case MapAlignment.MiddleCenter: alignmentFunc = windowedMap => windowedMap.AlignMiddleCenter(grid); break; case MapAlignment.MiddleRight: alignmentFunc = windowedMap => windowedMap.AlignMiddleRight(grid); break; case MapAlignment.BottomLeft: alignmentFunc = windowedMap => windowedMap.AlignBottomLeft(grid); break; case MapAlignment.BottomCenter: alignmentFunc = windowedMap => windowedMap.AlignBottomCenter(grid); break; case MapAlignment.BottomRight: alignmentFunc = windowedMap => windowedMap.AlignBottomRight(grid); break; case MapAlignment.None: alignmentFunc = windowedMap => windowedMap; break; default: throw new ArgumentOutOfRangeException(); } var hexMap = alignmentFunc(windowedHexMap).Scale(cellSpacingFactor); return(hexMap.To3DXY()); }
public static IMap <TPoint> AlignMiddelCenter <TPoint>(this WindowedMap <TPoint> map, IGridSpace <TPoint> grid) where TPoint : IGridPoint <TPoint> { return(map.AlignMiddleCenter(grid)); }
public static IMap <TPoint> AlignMiddelLeft <TPoint>(WindowedMap <TPoint> map, IGridSpace <TPoint> grid) where TPoint : IGridPoint <TPoint> { return(map.AlignMiddleLeft(grid)); }