public void OperatorOverloadPlus() { OffsetHexCoord offset = new OffsetHexCoord( 1, 2 ) + new OffsetHexCoord( 3, 4 ); Assert.That( offset.q, Is.EqualTo( 4 ) ); Assert.That( offset.r, Is.EqualTo( 6 ) ); }
OffsetToPoint(OffsetHexCoord hex) { float x = HexRadius * SQRT_3 * (hex.q + 0.5f * (float)hex.RowParity); float y = HexRadius * 1.5f * hex.r; return(new Vec2D(x, y)); }
public void OperatorOverloadMinus() { OffsetHexCoord offset = new OffsetHexCoord( 4, 3 ) - new OffsetHexCoord( 1, 2 ); Assert.That( offset.q, Is.EqualTo( 3 ) ); Assert.That( offset.r, Is.EqualTo( 1 ) ); }
public void ConstructorQR() { OffsetHexCoord offset = new OffsetHexCoord( 1, 2 ); Assert.That( offset.q, Is.EqualTo( 1 ) ); Assert.That( offset.r, Is.EqualTo( 2 ) ); }
public void ConstructorParameterless() { OffsetHexCoord offset = new OffsetHexCoord(); Assert.That( offset.q, Is.EqualTo( 0 ) ); Assert.That( offset.r, Is.EqualTo( 0 ) ); }
public void PropertyRowParity() { ParityEnum odd = new OffsetHexCoord( 2, 3 ).RowParity; ParityEnum even = new OffsetHexCoord( 1, 2 ).RowParity; Assert.That( odd, Is.EqualTo( ParityEnum.Odd ) ); Assert.That( even, Is.EqualTo( ParityEnum.Even ) ); }
public void PropertyIsOddRow() { bool isTrue = new OffsetHexCoord( 2, 3 ).IsOddRow; bool isFalse = new OffsetHexCoord( 1, 2 ).IsOddRow; Assert.That( isTrue, Is.True ); Assert.That( isFalse, Is.False ); }
public void OperatorOverloadNotEquals() { bool isTrue = new OffsetHexCoord( 1, 2 ) != new OffsetHexCoord( 3, 4 ); bool isFalse = new OffsetHexCoord( 1, 2 ) != new OffsetHexCoord( 1, 2 ); Assert.That( isTrue, Is.True ); Assert.That( isFalse, Is.False ); }
Equals(object obj) { if (obj == null) { return(false); } if (GetType() != obj.GetType()) { return(false); } OffsetHexCoord other = (OffsetHexCoord)obj; return((this.q == other.q) && (this.r == other.r)); }
public void ToCubic() { // Odd row CubicHexCoord cubic = new OffsetHexCoord( 1, 2 ).ToCubic(); Assert.That( cubic.x, Is.EqualTo( 0 ) ); Assert.That( cubic.y, Is.EqualTo( -2 ) ); Assert.That( cubic.z, Is.EqualTo( 2 ) ); // Even row cubic = new OffsetHexCoord( 2, 3 ).ToCubic(); Assert.That( cubic.x, Is.EqualTo( 1 ) ); Assert.That( cubic.y, Is.EqualTo( -4 ) ); Assert.That( cubic.z, Is.EqualTo( 3 ) ); }
/// <summary> /// Get the point on the x-z cartesian plane where the center of the given hex is located. /// </summary> /// <param name="hex">A hex position, represented by an OffsetHexCoord.</param> /// <returns>A Vec2D point of the hex's position on the x-y cartesian plane.</returns> public Vec2D OffsetToPoint( OffsetHexCoord hex ) { float x = HexRadius * SQRT_3 * ( hex.q + 0.5f * (float)hex.RowParity ); float y = HexRadius * 1.5f * hex.r; return new Vec2D( x, y ); }