3#include "structure/math/spk_vector3.hpp"
41 Quaternion(
float p_x,
float p_y,
float p_z,
float p_w);
51 p_os << L
"(" << p_vec.
x << L
", " << p_vec.
y << L
", " << p_vec.
z << L
", " << p_vec.
w << L
")";
63 p_os <<
"(" << p_vec.
x <<
", " << p_vec.
y <<
", " << p_vec.
z <<
", " << p_vec.
w <<
")";
121 Vector3
operator*(
const Vector3 &p_rhs)
const;
128 Vector3
rotate(
const Vector3 &p_v)
const;
137 static Quaternion lookAt(
const Vector3 &p_eye,
const Vector3 &p_target,
const Vector3 &p_up);
Represents a rotation using (x, y, z, w) and offers common conversions.
Definition spk_quaternion.hpp:19
std::wstring toWstring() const
Converts the quaternion to a wide string.
Definition spk_quaternion.cpp:24
std::string toString() const
Converts the quaternion to a string.
Definition spk_quaternion.cpp:31
Quaternion normalize() const
Returns a normalized copy.
Definition spk_quaternion.cpp:113
Quaternion operator*(const Quaternion &p_rhs) const
Concatenates two rotations.
Definition spk_quaternion.cpp:136
static Quaternion fromAxisAngle(const Vector3 &p_axis, float p_angle)
Builds from axis and angle in degrees.
Definition spk_quaternion.cpp:99
static Quaternion lookAt(const Vector3 &p_eye, const Vector3 &p_target, const Vector3 &p_up)
Builds a quaternion looking from eye to target with an up vector.
Definition spk_quaternion.cpp:159
Vector3 rotate(const Vector3 &p_v) const
Rotates a vector by this quaternion.
Definition spk_quaternion.cpp:154
Quaternion()
Builds an identity quaternion.
Definition spk_quaternion.cpp:9
float x
X component of the quaternion vector part.
Definition spk_quaternion.hpp:22
float w
W component representing the scalar part.
Definition spk_quaternion.hpp:28
float z
Z component of the quaternion vector part.
Definition spk_quaternion.hpp:26
friend std::ostream & operator<<(std::ostream &p_os, const Quaternion &p_vec)
Streams the quaternion to a narrow output stream.
Definition spk_quaternion.hpp:61
friend std::wostream & operator<<(std::wostream &p_os, const Quaternion &p_vec)
Streams the quaternion to a wide output stream.
Definition spk_quaternion.hpp:49
static Quaternion fromEuler(const Vector3 &p_euler)
Builds from Euler angles in degrees.
Definition spk_quaternion.cpp:43
static Quaternion identity()
Returns the identity quaternion.
Definition spk_quaternion.cpp:38
float y
Y component of the quaternion vector part.
Definition spk_quaternion.hpp:24
Vector3 toEuler() const
Converts to Euler angles in degrees.
Definition spk_quaternion.cpp:65