Exemplo n.º 1
0
        private CubeCoordinate FlatOffsetToCube(OffsetCoordinate offsetCoordinate)
        {
            int q = offsetCoordinate.m_col;
            int r = offsetCoordinate.m_row - (int)((offsetCoordinate.m_col + (int)Offset * (offsetCoordinate.m_col & 1)) / 2);
            int s = -q - r;

            return(new CubeCoordinate(q, r, s));
        }
Exemplo n.º 2
0
        private CubeCoordinate PointyOffsetToCube(OffsetCoordinate offsetCoordinate)
        {
            int q = offsetCoordinate.m_col - (int)((offsetCoordinate.m_row + (int)Offset * (offsetCoordinate.m_row & 1)) / 2);
            int r = offsetCoordinate.m_row;
            int s = -q - r;

            return(new CubeCoordinate(q, r, s));
        }
Exemplo n.º 3
0
 public CubeCoordinate OffsetToCube(OffsetCoordinate offsetCoordinate)
 {
     if (HexOrientation == HexagonOrientation.Flat)
     {
         return(FlatOffsetToCube(offsetCoordinate));
     }
     else //HexOrientation == HexagonOrientation.Pointy
     {
         return(PointyOffsetToCube(offsetCoordinate));
     }
 }