Ejemplo n.º 1
0
        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));
        }
Ejemplo n.º 2
0
    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());
    }