calcQ.cpp 1.1 KB

1234567891011121314151617181920212223242526272829303132333435363738
  1. float t3 = q0*q0;
  2. float t4 = q1*q1;
  3. float t5 = q2*q2;
  4. float t6 = q3*q3;
  5. float t2 = t3+t4+t5+t6;
  6. float t7 = t2*t2;
  7. float t11 = q0*q3*2.0f;
  8. float t12 = q1*q2*2.0f;
  9. float t8 = t11-t12;
  10. float t13 = q0*q2*2.0f;
  11. float t14 = q1*q3*2.0f;
  12. float t9 = t13+t14;
  13. float t10 = t3+t4-t5-t6;
  14. float t15 = q0*q1*2.0f;
  15. float t16 = t11+t12;
  16. float t17 = dvxNoise*t10*t16;
  17. float t18 = t3-t4+t5-t6;
  18. float t19 = q2*q3*2.0f;
  19. float t20 = t15-t19;
  20. float t21 = t15+t19;
  21. float t22 = t3-t4-t5+t6;
  22. float t23 = t13-t14;
  23. float t24 = dvzNoise*t9*t22;
  24. float t25 = t24-dvxNoise*t10*t23-dvyNoise*t8*t21;
  25. float t26 = dvyNoise*t18*t21;
  26. float t27 = t26-dvxNoise*t16*t23-dvzNoise*t20*t22;
  27. A0[0][0] = daxNoise*t7;
  28. A0[1][1] = dayNoise*t7;
  29. A0[2][2] = dazNoise*t7;
  30. A0[3][3] = dvxNoise*(t10*t10)+dvyNoise*(t8*t8)+dvzNoise*(t9*t9);
  31. A0[3][4] = t17-dvzNoise*t9*(t15-q2*q3*2.0f)-dvyNoise*t8*t18;
  32. A0[3][5] = t25;
  33. A0[4][3] = t17-dvyNoise*t8*t18-dvzNoise*t9*t20;
  34. A0[4][4] = dvxNoise*(t16*t16)+dvyNoise*(t18*t18)+dvzNoise*(t20*t20);
  35. A0[4][5] = t27;
  36. A0[5][3] = t25;
  37. A0[5][4] = t27;
  38. A0[5][5] = dvxNoise*(t23*t23)+dvyNoise*(t21*t21)+dvzNoise*(t22*t22);