Beispiel #1
0
    //Operators
    public static MyQuaternion operator *(MyQuaternion q, MyQuaternion p)
    {
        MyQuaternion m = new MyQuaternion();

        m.w = (p.w * q.w - p.x * q.x - p.y * q.y - p.z * q.z);
        m.x = (p.w * q.x + p.x * q.w - p.y * q.z + p.z * q.y);
        m.y = (p.w * q.y + p.x * q.z + p.y * q.w - p.z * q.x);
        m.z = (p.w * q.z - p.x * q.y + p.y * q.x + p.z * q.w);
        m.Normalize();

        return(m);
    }
Beispiel #2
0
    public static MyQuaternion FromAxisAngle(axisAngle axis)
    {
        MyQuaternion q = new MyQuaternion();

        q.w = Mathf.Cos(axis.w / 2);
        q.x = axis.x * Mathf.Sin(axis.w / 2);
        q.y = axis.y * Mathf.Sin(axis.w / 2);
        q.z = axis.z * Mathf.Sin(axis.w / 2);
        q.Normalize();

        return(q);
    }