public void TestEquals() { var a = new Quat(4, 3, 2, 1); var b = new Quat(4, 3, 2, 1); var c = new Quat(2, 3, 4, 1); Assert.AreEqual(true, a.Equals(b)); Assert.AreEqual(false, a.Equals(c)); }
public static Quat Slerp(Quat q1, Quat q2, float t) { // Check for equality and skip operation. if (q1.Equals(q2)) { return(q1); } float scale0 = 1 - t; float scale1 = t; Quat myQuat = Quat.Identity; myQuat.x = (scale0 * q1.x) + (scale1 * q2.x); myQuat.y = (scale0 * q1.y) + (scale1 * q2.y); myQuat.z = (scale0 * q1.z) + (scale1 * q2.z); myQuat.w = (scale0 * q1.w) + (scale1 * q2.w); return(myQuat.Normalize()); }