Пример #1
0
        public void ShouldConvertQuaternionAndPointToMatrixTransform3D()
        {
            var point      = new Point3D(Random.Next(1000), Random.Next(1000), Random.Next(1000));
            var quaternion = new Quaternion(Random.Next(1000), Random.Next(1000), Random.Next(1000), Random.Next(1000));

            quaternion.Normalize();

            var expected = new Transform3DGroup
            {
                Children = new Transform3DCollection
                {
                    new TranslateTransform3D(point.X, point.Y, point.Z),
                    new RotateTransform3D(new QuaternionRotation3D(quaternion), point)
                }
            }.Value;
            var test = Converter.Convert(
                new object[] { point.Convert(), quaternion.Convert() },
                typeof(MatrixTransform3D)) as MatrixTransform3D;

            Assert.IsNotNull(test);
            GeometryAssert.AreEqual(expected, test.Value);
        }