public void TestDualQuaternionRotationPosition() { var r = (RIJK) new RIJK((I)1, (J)2, (K)3, (R)4).Normalized; var p = new Vector3(10, 20, 30); var dq = RIJKD.From(r, p); var p2 = dq.Position; var delta = 1e-4f; Assert.AreEqual(p.x, p2.x, delta); Assert.AreEqual(p.y, p2.y, delta); Assert.AreEqual(p.z, p2.z, delta); }
public void TestDualQuaternionAddition() { var d1 = new RIJKD((R)1, (I)2, (J)3, (K)4, (D)5, (DI)6, (DJ)7, (DK)8); var d2 = new RIJKD((R)10, (I)11, (J)12, (K)13, (D)14, (DI)15, (DJ)16, (DK)17); var d = d1 + d2; Debug.Log(d); Assert.AreEqual((R)11, d.r); Assert.AreEqual((I)13, d.i); Assert.AreEqual((J)15, d.j); Assert.AreEqual((K)17, d.k); Assert.AreEqual((D)19, d.d); Assert.AreEqual((DI)21, d.di); Assert.AreEqual((DJ)23, d.dj); Assert.AreEqual((DK)25, d.dk); }