Exemplo n.º 1
0
        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();
            }
        }
Exemplo n.º 2
0
        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());
        }
Exemplo n.º 3
0
 public static IMap <TPoint> AlignMiddelCenter <TPoint>(this WindowedMap <TPoint> map, IGridSpace <TPoint> grid)
     where TPoint : IGridPoint <TPoint>
 {
     return(map.AlignMiddleCenter(grid));
 }
Exemplo n.º 4
0
 public static IMap <TPoint> AlignMiddelLeft <TPoint>(WindowedMap <TPoint> map, IGridSpace <TPoint> grid)
     where TPoint : IGridPoint <TPoint>
 {
     return(map.AlignMiddleLeft(grid));
 }