module; export module Core.Quaternion; import Core.Vector; import Core.Types; export namespace Core { class Quaternion final { Vector4 v; public: Quaternion(); Quaternion(const Vector3& axis, float angle); Quaternion lerp(float f, const Quaternion& other) const; Quaternion& operator*=(const Quaternion& other); Quaternion operator*(const Quaternion& other) const; Vector3 operator*(const Vector3& v) const; size_t toString(char* s, size_t n) const; }; }