Abacus.DoublePrecision.Matrix44Tests.TestStaticFn_Decompose_i C# (CSharp) Method

TestStaticFn_Decompose_i() private method

private TestStaticFn_Decompose_i ( ) : void
return void
        public void TestStaticFn_Decompose_i ()
        {
            Double a1 = 4;
            Double a2 = 2;
            Double a3 = 3;

            Matrix44 scale;
            Matrix44.CreateScale(ref a1, ref a2, ref a3, out scale);

            Matrix44 rotation;
            Double pi; Maths.Pi(out pi);
            Matrix44.CreateRotationY(ref pi, out rotation);


            Double b1 = 100;
            Double b2 = 5;
            Double b3 = 3;

            Matrix44 translation;
            Matrix44.CreateTranslation(ref b1, ref b2, ref b3, out translation);

            Matrix44 m = rotation * scale;
            //m = translation * m;
            m.Translation = new Vector3(100, 5, 3);

            Vector3 outScale;
            Quaternion outRotation;
            Vector3 outTranslation;

            Boolean decomposeOk;
            Matrix44.Decompose(ref m, out outScale, out outRotation, out outTranslation, out decomposeOk);

            Matrix44 mat;
            Matrix44.CreateFromQuaternion(ref outRotation, out mat);

            Assert.That(outScale, Is.EqualTo(new Vector3(4, 2, 3)));
            Assert.That(mat, Is.EqualTo(rotation));
            Assert.That(outTranslation, Is.EqualTo(new Vector3(100, 5, 3)));
        }
Matrix44Tests