示例#1
0
    public static Vector3G Rotate(QuaternionG rotation, Vector3G vector)
    {
        Vector3G vectorg;

        QuaternionG.Mult(ref rotation, ref vector, out vectorg);
        return(vectorg);
    }
示例#2
0
 private void Update()
 {
     if ((this.R == null) || (this.R.Length == 0))
     {
         this.unity = Quaternion.identity;
         this.facep = QuaternionG.identity;
     }
     else if (this.revMul)
     {
         int index = this.R.Length - 1;
         this.unity = Quaternion.Euler(this.R[index]);
         Vector3G deg = new Vector3G(this.R[index]);
         QuaternionG.Euler(ref deg, out this.facep);
         index--;
         while (index >= 0)
         {
             QuaternionG ng;
             this.unity = Quaternion.Euler(this.R[index]) * this.unity;
             deg.f      = this.R[index];
             QuaternionG.Euler(ref deg, out ng);
             QuaternionG.Mult(ref ng, ref this.facep, out this.facep);
             index--;
         }
     }
     else
     {
         int num2 = 0;
         this.unity = Quaternion.Euler(this.R[num2]);
         Vector3G vectorg2 = new Vector3G(this.R[num2]);
         QuaternionG.Euler(ref vectorg2, out this.facep);
         num2++;
         while (num2 < this.R.Length)
         {
             QuaternionG ng2;
             this.unity *= Quaternion.Euler(this.R[num2]);
             vectorg2.f  = this.R[num2];
             QuaternionG.Euler(ref vectorg2, out ng2);
             QuaternionG.Mult(ref this.facep, ref ng2, out this.facep);
             num2++;
         }
     }
 }
示例#3
0
    private void Update()
    {
        QuaternionG quaternionG;
        QuaternionG quaternionG1;

        if (this.R == null || (int)this.R.Length == 0)
        {
            this.unity = Quaternion.identity;
            this.facep = QuaternionG.identity;
        }
        else if (!this.revMul)
        {
            int i = 0;
            this.unity = Quaternion.Euler(this.R[i]);
            Vector3G vector3G = new Vector3G(this.R[i]);
            QuaternionG.Euler(ref vector3G, out this.facep);
            for (i++; i < (int)this.R.Length; i++)
            {
                QuaternionTest quaternionTest = this;
                quaternionTest.unity = quaternionTest.unity * Quaternion.Euler(this.R[i]);
                vector3G.f           = this.R[i];
                QuaternionG.Euler(ref vector3G, out quaternionG1);
                QuaternionG quaternionG2 = this.facep;
                QuaternionG.Mult(ref quaternionG2, ref quaternionG1, out this.facep);
            }
        }
        else
        {
            int length = (int)this.R.Length - 1;
            this.unity = Quaternion.Euler(this.R[length]);
            Vector3G r = new Vector3G(this.R[length]);
            QuaternionG.Euler(ref r, out this.facep);
            for (length--; length >= 0; length--)
            {
                this.unity = Quaternion.Euler(this.R[length]) * this.unity;
                r.f        = this.R[length];
                QuaternionG.Euler(ref r, out quaternionG);
                QuaternionG.Mult(ref quaternionG, ref this.facep, out this.facep);
            }
        }
    }
示例#4
0
 // Token: 0x06003DEB RID: 15851 RVA: 0x000DF8D0 File Offset: 0x000DDAD0
 private void Update()
 {
     if (this.R == null || this.R.Length == 0)
     {
         this.unity = Quaternion.identity;
         this.facep = QuaternionG.identity;
     }
     else if (this.revMul)
     {
         int i = this.R.Length - 1;
         this.unity = Quaternion.Euler(this.R[i]);
         Vector3G vector3G;
         vector3G..ctor(this.R[i]);
         QuaternionG.Euler(ref vector3G, ref this.facep);
         for (i--; i >= 0; i--)
         {
             this.unity = Quaternion.Euler(this.R[i]) * this.unity;
             vector3G.f = this.R[i];
             QuaternionG quaternionG;
             QuaternionG.Euler(ref vector3G, ref quaternionG);
             QuaternionG.Mult(ref quaternionG, ref this.facep, ref this.facep);
         }
     }
     else
     {
         int j = 0;
         this.unity = Quaternion.Euler(this.R[j]);
         Vector3G vector3G2;
         vector3G2..ctor(this.R[j]);
         QuaternionG.Euler(ref vector3G2, ref this.facep);
         for (j++; j < this.R.Length; j++)
         {
             this.unity *= Quaternion.Euler(this.R[j]);
             vector3G2.f = this.R[j];
             QuaternionG quaternionG2;
             QuaternionG.Euler(ref vector3G2, ref quaternionG2);
             QuaternionG quaternionG3 = this.facep;
             QuaternionG.Mult(ref quaternionG3, ref quaternionG2, ref this.facep);
         }
     }
 }