Quaternion.cppm 535 B

123456789101112131415161718192021
  1. module;
  2. export module Core.Quaternion;
  3. import Core.Vector;
  4. import Core.Types;
  5. export namespace Core {
  6. class Quaternion final {
  7. Vector4 v;
  8. public:
  9. Quaternion();
  10. Quaternion(const Vector3& axis, float angle);
  11. Quaternion lerp(float f, const Quaternion& other) const;
  12. Quaternion& operator*=(const Quaternion& other);
  13. Quaternion operator*(const Quaternion& other) const;
  14. Vector3 operator*(const Vector3& v) const;
  15. size_t toString(char* s, size_t n) const;
  16. };
  17. }