예제 #1
0
        public void Euler3fCtorDefault()
        {
            var p = new Euler3f();

            Assert.AreEqual(0, p.Pitch);
            Assert.AreEqual(0, p.Yaw);
            Assert.AreEqual(0, p.Roll);
        }
예제 #2
0
        public void Euler3fCtorGeneral()
        {
            var p = new Euler3f(2, 3, 5);

            Assert.AreEqual(2, p.Pitch);
            Assert.AreEqual(3, p.Yaw);
            Assert.AreEqual(5, p.Roll);
        }
예제 #3
0
        public void Euler3fParse()
        {
            var p = Euler3f.Parse("+2.5,-3.75, 0.5875e1 ");

            Assert.AreEqual(2.5f, p.Pitch);
            Assert.AreEqual(-3.75f, p.Yaw);
            Assert.AreEqual(5.875f, p.Roll);
        }
예제 #4
0
        public void Euler3fDivide()
        {
            Euler3f
                p        = new Euler3f(10, 20, 30),
                actual   = p / 2.5f,
                expected = new Euler3f(4, 8, 12);

            Assert.AreEqual(expected, actual);
        }
예제 #5
0
        private static void Euler3fCtorCopyModify(string field, params float[] expected)
        {
            var p = new Euler3f(2, 3, 5);

            p = new Euler3f(p, field, 99);
            Assert.AreEqual(expected[0], p.Pitch);
            Assert.AreEqual(expected[1], p.Yaw);
            Assert.AreEqual(expected[2], p.Roll);
        }
예제 #6
0
        public void Euler3fNegate()
        {
            Euler3f
                p        = new Euler3f(1, 2, 3),
                actual   = -p,
                expected = new Euler3f(-1, -2, -3);

            Assert.AreEqual(expected, actual);
        }
예제 #7
0
        public void Euler3fMultiplyRight()
        {
            Euler3f
                p        = new Euler3f(4, 0, 8),
                actual   = p * 1.25f,
                expected = new Euler3f(5, 0, 10);

            Assert.AreEqual(expected, actual);
        }
예제 #8
0
        public void Euler3fMultiplyLeft()
        {
            Euler3f
                p        = new Euler3f(2, 4, 6),
                actual   = 2.5f * p,
                expected = new Euler3f(5, 10, 15);

            Assert.AreEqual(expected, actual);
        }
예제 #9
0
        public void Euler3fEquality()
        {
            Euler3f
                p = new Euler3f(1, 2, 3),
                q = new Euler3f(1, 2, 3);

            Assert.IsTrue(p.Equals(q));
            Assert.IsTrue(p == q);
            Assert.IsFalse(p != q);
        }
예제 #10
0
        private static void Euler3fInequality(params float[] a)
        {
            Euler3f
                p = new Euler3f(1, 2, 3),
                q = new Euler3f(a[0], a[1], a[2]);

            Assert.IsFalse(p.Equals(q));
            Assert.IsFalse(p == q);
            Assert.IsTrue(p != q);
        }
예제 #11
0
        public void Euler3fSubtract()
        {
            Euler3f
                p        = new Euler3f(1, 2, 3),
                q        = new Euler3f(2, 4, 6),
                actual   = p - q,
                expected = new Euler3f(-1, -2, -3);

            Assert.AreEqual(expected, actual);
        }
예제 #12
0
        public void Euler3fAdd()
        {
            Euler3f
                p        = new Euler3f(1, 2, 3),
                q        = new Euler3f(2, 4, 6),
                actual   = p + q,
                expected = new Euler3f(3, 6, 9);

            Assert.AreEqual(expected, actual);
        }
예제 #13
0
        public void Euler3fCtorCopy()
        {
            Euler3f
                p = new Euler3f(1, 2, 3),
                q = new Euler3f(p);

            Assert.IsTrue(p.Equals(q));
            Assert.IsTrue(p == q);
            Assert.IsFalse(p != q);
            Assert.IsFalse(ReferenceEquals(p, q));
        }
예제 #14
0
 public static Matrix4 CreateTransformation(Vector3f location, Euler3f orientation, Vector3f scale) =>
 Matrix4.CreateScale(scale.X, scale.Y, scale.Z) *
 Matrix4.CreateRotationZ(MathHelper.DegreesToRadians(orientation.Roll)) *
 Matrix4.CreateRotationY(MathHelper.DegreesToRadians(orientation.Yaw)) *
 Matrix4.CreateRotationX(MathHelper.DegreesToRadians(orientation.Pitch)) *
 Matrix4.CreateTranslation(location);