molecular
|
4D quaternion class for storing rotation values More...
#include <Quaternion.h>
Public Types | |
using | Real = float |
Default scalar type. More... | |
Public Member Functions | |
Quaternion ()=default | |
Default constructor. More... | |
constexpr | Quaternion (const Real w, const Real x, const Real y, const Real z) |
Construct from individual components. More... | |
constexpr | Quaternion (const Real inQ[4]) |
Construct from array. More... | |
Quaternion (float w, const Vector3 &vec) | |
Create a quaternion out of W and a vector. More... | |
operator Real * () | |
Conversion operator. More... | |
operator const Real * () const | |
Conversion operator. More... | |
Quaternion | operator* (const Quaternion &inQ) const |
Quaternion | operator* (const Real r) const |
Quaternion | operator/ (const Real r) const |
void | operator*= (const Real r) |
Quaternion | operator+ (const Quaternion &inQ) const |
void | operator+= (const Quaternion &inQ) |
Real | Norm () const |
"Length" of the quaternion More... | |
void | Normalise () |
Scale quaternion so that the norm is 1. More... | |
Quaternion | Normalized () const |
Quaternion | Conjugate () const |
Conjugate of the quaternion. More... | |
Quaternion | Inverse () const |
Real | W () const |
Real | X () const |
Real | Y () const |
Real | Z () const |
Static Public Member Functions | |
static Quaternion | FromAngles (float x, float y) |
static Quaternion | FromAngles (float heading, float attitude, float bank) |
static Quaternion | FromAxisAndAngle (const Vector3 &axis, float angle) |
static Quaternion | RotationX (float angle) |
static Quaternion | RotationY (float angle) |
static Quaternion | RotationZ (float angle) |
static Quaternion | Slerp (const Quaternion &p, const Quaternion &q, float beta) |
Spherical Linear Interpolation. More... | |
Public Attributes | |
Real | q [4] |
wxyz More... | |
Static Public Attributes | |
static const Quaternion | kIdentity = Quaternion(1,0,0,0) |
Identity constant. More... | |
4D quaternion class for storing rotation values
using molecular::util::Quaternion::Real = float |
Default scalar type.
|
default |
Default constructor.
Does not initialize the quaternion to identity!
constexpr molecular::util::Quaternion::Quaternion | ( | const Real | w, |
const Real | x, | ||
const Real | y, | ||
const Real | z | ||
) |
Construct from individual components.
constexpr molecular::util::Quaternion::Quaternion | ( | const Real | inQ[4] | ) |
Construct from array.
Order WXYZ.
|
inline |
Create a quaternion out of W and a vector.
|
inline |
Conjugate of the quaternion.
For normalised quaternions (like most rotation quaternions), this is equal to the inverse, but calculation is faster.
|
inlinestatic |
|
static |
|
inlinestatic |
|
inline |
The inverse of a quaternion represents the opposite rotation (like an inverse matrix). For quaternions known to be normalised consider using Conjugate() instead, since it yields the same results but calculation is faster.
|
inline |
"Length" of the quaternion
|
inline |
Scale quaternion so that the norm is 1.
|
inline |
|
inline |
Conversion operator.
|
inline |
Conversion operator.
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inline |
|
inlinestatic |
|
inlinestatic |
|
inlinestatic |
|
static |
Spherical Linear Interpolation.
|
inline |
|
inline |
|
inline |
|
inline |
|
static |
Identity constant.
Real molecular::util::Quaternion::q[4] |
wxyz