Пример #1
0
        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 ) );
        }
Пример #2
0
        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));
        }
Пример #3
0
        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 ) );
        }
Пример #4
0
        public void ConstructorQR()
        {
            OffsetHexCoord offset = new OffsetHexCoord( 1, 2 );

            Assert.That( offset.q, Is.EqualTo( 1 ) );
            Assert.That( offset.r, Is.EqualTo( 2 ) );
        }
Пример #5
0
        public void ConstructorParameterless()
        {
            OffsetHexCoord offset = new OffsetHexCoord();

            Assert.That( offset.q, Is.EqualTo( 0 ) );
            Assert.That( offset.r, Is.EqualTo( 0 ) );
        }
Пример #6
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 ) );
        }
Пример #7
0
        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 );
        }
Пример #8
0
        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 );
        }
Пример #9
0
        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));
        }
Пример #10
0
        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 ) );
        }
Пример #11
0
        /// <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 );
        }