Ejemplo n.º 1
0
 public static void Multiplication3x3Test()
 => TrafoTesting.GenericMatrixMultiplicationTest <Euclidean3d, M33d, M34d>(
     rnd => TrafoTesting.GetRandomEuclidean(rnd, false),
     Euclidean.TransformPos,
     Mat.Transform,
     Mat.TransformPos,
     (a, v) => (a * new V4d(v, 1)).XYZ,
     (m, v) => m * v,
     (m, v) => m * new V4d(v, 1));
Ejemplo n.º 2
0
        public static void FromM33dAndV3d()
        => TrafoTesting.GenericTest(rnd =>
        {
            var a = TrafoTesting.GetRandomEuclidean(rnd);
            var m = (M33d)a.Rot;
            var t = a.Trans;

            var restored = Euclidean3d.FromM33dAndV3d(m, t);
            TrafoTesting.AreEqual(a, restored);
        });
Ejemplo n.º 3
0
        public static void InverseTest()
        => TrafoTesting.GenericTest(rnd =>
        {
            var e = TrafoTesting.GetRandomEuclidean(rnd);

            var p = rnd.UniformV3d() * rnd.UniformInt(1000);
            var q = e.TransformPos(p);

            // Inverse property
            var res = e.Inverse.TransformPos(q);

            // Invert method
            Euclidean.Invert(ref e);
            var res2 = e.TransformPos(q);

            TrafoTesting.AreEqual(p, res);
            TrafoTesting.AreEqual(p, res2);
        });