2#ifdef StevEngine_PHYSICS
9namespace StevEngine::Utilities {
32 Quaternion(
double w,
double x,
double y,
double z);
111 explicit operator std::string()
const;
112 explicit operator Vector4()
const;
114 #ifdef StevEngine_PHYSICS
115 operator JPH::Quat()
const;
Vector3 Right() const
Get right direction.
Definition Quaternion.cpp:23
Quaternion operator-(const Quaternion &other) const
Subtraction.
Definition Quaternion.cpp:92
Quaternion operator*(const Quaternion &other) const
Quaternion multiplication.
Definition Quaternion.cpp:95
Vector3 Forward() const
Get forward direction.
Definition Quaternion.cpp:20
double Magnitude() const
Get magnitude.
Definition Quaternion.cpp:54
Quaternion Normalized() const
Get normalized copy.
Definition Quaternion.cpp:67
static Quaternion FromToRotation(Vector3 fromDirection, Vector3 toDirection)
Create rotation from start to end direction.
Definition Quaternion.cpp:185
Quaternion & Normalize()
Normalize this quaternion.
Definition Quaternion.cpp:57
Quaternion & operator*=(const Quaternion &other)
Quaternion multiply-assign.
Definition Quaternion.cpp:119
Quaternion(double w, double x, double y, double z)
Create quaternion from components.
Definition Quaternion.cpp:11
static Quaternion LookRotation(Vector3 forward, const Vector3 &upwards=Vector3::up)
Create rotation looking in direction.
Definition Quaternion.cpp:199
static double DegreesToRadians(double degrees)
Convert degrees to radians.
Definition Quaternion.cpp:222
Quaternion & Inverse()
Invert this quaternion.
Definition Quaternion.cpp:35
Quaternion & Conjugate()
Conjugate this quaternion.
Definition Quaternion.cpp:29
double Z
Quaternion components (w + xi + yj + zk)
Definition Quaternion.hpp:22
static double RadiansToDegrees(double radians)
Convert radians to degrees.
Definition Quaternion.cpp:225
static Quaternion Lerp(const Quaternion &a, const Quaternion &b, double t)
Linear interpolation between quaternions.
Definition Quaternion.cpp:177
static double Dot(const Quaternion &a, const Quaternion &b)
Calculate dot product.
Definition Quaternion.cpp:219
static Quaternion FromAngleAxis(double angle, Vector3 axis)
Create quaternion from angle and axis.
Definition Quaternion.cpp:165
std::tuple< double, Vector3 > GetAngleAxis() const
Get angle and axis representation.
Definition Quaternion.cpp:70
Quaternion operator+(const Quaternion &other) const
Addition.
Definition Quaternion.cpp:89
bool operator==(const Quaternion &other) const
Equality comparison.
Definition Quaternion.cpp:132
Quaternion Get() const
Get copy of this quaternion.
Definition Quaternion.cpp:51
static Quaternion Slerp(const Quaternion &a, const Quaternion &b, double t)
Spherical interpolation between quaternions.
Definition Quaternion.cpp:180
Quaternion & operator=(const JPH::Quat &other)
Assign from Jolt quaternion.
Definition Quaternion.cpp:150
Vector3 Up() const
Get up direction.
Definition Quaternion.cpp:26
static double Angle(const Quaternion &a, const Quaternion &b)
Get angle between quaternions.
Definition Quaternion.cpp:174
Quaternion()
Create identity quaternion.
Definition Quaternion.cpp:17
Quaternion operator/(const double &other) const
Scalar division.
Definition Quaternion.cpp:111
3D vector class
Definition Vector3.hpp:19
static const Vector3 up
Up vector (0,1,0)
Definition Vector3.hpp:85
4D vector class
Definition Vector4.hpp:14