Пример #1
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);
        });
Пример #2
0
        public static void ConsistentWithMatrixRotationAndShiftTest()
        => TrafoTesting.GenericTest(rnd =>
        {
            var trans = rnd.UniformV3d() * 10;

            var axis  = rnd.UniformV3dDirection();
            var angle = rnd.UniformDouble() * Constant.PiTimesTwo;

            var m = M44d.Translation(trans) * M44d.Rotation(axis, angle);
            var e = new Euclidean3d(Rot3d.Rotation(axis, angle), trans);

            var p    = rnd.UniformV3d() * rnd.UniformInt(1000);
            var res  = m.TransformPos(p);
            var res2 = e.TransformPos(p);

            TrafoTesting.AreEqual(res, res2);
        });
Пример #3
0
 public static void FromTrafo3d()
 => TrafoTesting.GenericConversionTest(TrafoTesting.GetRandomEuclidean, a => (Trafo3d)a, b => Euclidean3d.FromTrafo3d(b));
Пример #4
0
 public void Write(Euclidean3d t)
 {
     Write(t.Rot); Write(t.Trans);
 }