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)); }
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)); }
public CubeCoordinate OffsetToCube(OffsetCoordinate offsetCoordinate) { if (HexOrientation == HexagonOrientation.Flat) { return(FlatOffsetToCube(offsetCoordinate)); } else //HexOrientation == HexagonOrientation.Pointy { return(PointyOffsetToCube(offsetCoordinate)); } }