Quaternion.hpp 598 B

1234567891011121314151617181920212223
  1. #ifndef CORE_QUATERNION_HPP
  2. #define CORE_QUATERNION_HPP
  3. #include "core/math/Vector.hpp"
  4. #include "core/utils/ArrayString.hpp"
  5. namespace Core {
  6. class Quaternion final {
  7. Vector3 xyz;
  8. float w;
  9. public:
  10. Quaternion();
  11. Quaternion(const Vector3& axis, float angle);
  12. Quaternion lerp(float f, const Quaternion& other) const;
  13. Quaternion& operator*=(const Quaternion& other);
  14. Quaternion operator*(const Quaternion& other) const;
  15. Vector3 operator*(const Vector3& v) const;
  16. void toString(BufferString& s) const;
  17. };
  18. }
  19. #endif