public static OffsetCoordinates FromAxial(AxialCoordinates axial) { // Bitwise AND (& 1) to get 0 for even or 1 for odd column offset var col = axial.X + (axial.Z - (axial.Z & 1)) / 2; var row = axial.Z; return(new OffsetCoordinates(col: col, row: row)); }
public static CubicCoordinates FromAxial(AxialCoordinates axial) { var y = -1 * (axial.X + axial.Z); return(new CubicCoordinates( x: axial.X, y: y, z: axial.Z )); }
public bool Equals(AxialCoordinates value) { if (value == null) { return(false); } return( X == value.X && Z == value.Z ); }
public bool EqualsCubic(CubicCoordinates cubic) => AxialCoordinates .FromCubic(cubic) .Equals(this);
public static AxialCoordinates FromOffset(OffsetCoordinates offset) => AxialCoordinates.FromCubic( CubicCoordinates.FromOffset(offset) );
public AxialCoordinates ToAxial() => AxialCoordinates.FromOffset(this);
public static OffsetCoordinates FromCubic(CubicCoordinates cubic) => OffsetCoordinates.FromAxial( AxialCoordinates.FromCubic(cubic) );
public AxialCoordinates ToAxial() => AxialCoordinates.FromCubic(this);
public bool EqualsAxial(AxialCoordinates axial) => CubicCoordinates .FromAxial(axial) .Equals(this);