Quaternion.pkg 2.1 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. $#include "Math/Quaternion.h"
  2. class Quaternion
  3. {
  4. Quaternion();
  5. Quaternion(const Quaternion& quat);
  6. Quaternion(float w, float x, float y, float z);
  7. Quaternion(float angle, const Vector3& axis);
  8. Quaternion(float angle);
  9. Quaternion(float x, float y, float z);
  10. Quaternion(const Vector3& start, const Vector3& end);
  11. Quaternion(const Vector3& xAxis, const Vector3& yAxis, const Vector3& zAxis);
  12. Quaternion(const Matrix3& matrix);
  13. ~Quaternion();
  14. bool operator ==(const Quaternion& rhs) const;
  15. Quaternion operator * (float rhs) const;
  16. Quaternion operator - () const;
  17. bool operator ==(const Quaternion& rhs) const;
  18. Quaternion operator * (float rhs) const;
  19. Quaternion operator - () const;
  20. Quaternion operator + (const Quaternion& rhs) const;
  21. Quaternion operator - (const Quaternion& rhs) const;
  22. Quaternion operator * (const Quaternion& rhs) const;
  23. Vector3 operator * (const Vector3& rhs) const;
  24. void FromAngleAxis(float angle, const Vector3& axis);
  25. void FromEulerAngles(float x, float y, float z);
  26. void FromRotationTo(const Vector3& start, const Vector3& end);
  27. void FromAxes(const Vector3& xAxis, const Vector3& yAxis, const Vector3& zAxis);
  28. void FromRotationMatrix(const Matrix3& matrix);
  29. bool FromLookRotation(const Vector3& direction, const Vector3& up);
  30. void Normalize();
  31. Quaternion Normalized() const;
  32. Quaternion Inverse() const;
  33. float LengthSquared() const;
  34. float DotProduct(const Quaternion& rhs) const;
  35. bool Equals(const Quaternion& rhs) const;
  36. bool IsNaN() const;
  37. Quaternion Conjugate() const;
  38. Vector3 EulerAngles() const;
  39. float YawAngle() const;
  40. float PitchAngle() const;
  41. float RollAngle() const;
  42. Vector3 Axis() const;
  43. float Angle() const;
  44. Matrix3 RotationMatrix() const;
  45. Quaternion Slerp(const Quaternion& rhs, float t) const;
  46. Quaternion Nlerp(const Quaternion& rhs, float t, bool shortestPath) const;
  47. String ToString() const;
  48. float w_ @ w;
  49. float x_ @ x;
  50. float y_ @ y;
  51. float z_ @ z;
  52. static const Quaternion IDENTITY;
  53. };