|
VisuTwin Canvas
C++ 3D Engine — Metal Backend
|
Unit quaternion for rotation representation with SIMD-accelerated slerp and multiply. More...
#include <core/math/quaternion.h>
Public Member Functions | |
| Quaternion | conjugate () const |
| float | getW () const |
| float | getX () const |
| float | getY () const |
| float | getZ () const |
| Quaternion | invert () const |
| float | length () const |
| float | lengthSquared () const |
| Quaternion | normalized () const |
| Quaternion | operator* (const float scalar) const |
| Quaternion | operator* (const Quaternion &rhs) const |
| Vector3 | operator* (const Vector3 &v) const |
| Quaternion () | |
| Quaternion (float x, float y, float z, float w) | |
| Matrix4 | toRotationMatrix () const |
Static Public Member Functions | |
| static Quaternion | fromAxisAngle (const Vector3 &axis, float angle) |
| static Quaternion | fromEulerAngles (float ax, float ay, float az) |
| static Quaternion | fromMatrix4 (const Matrix4 &m) |
Public Attributes | |
| union { | |
| struct { | |
| float w | |
| float x | |
| float y | |
| float z | |
| } | |
| float q [4] | |
| }; | |
Friends | |
| std::ostream & | operator<< (std::ostream &os, const Quaternion &q) |
Unit quaternion for rotation representation with SIMD-accelerated slerp and multiply.
Definition at line 19 of file quaternion.h.
| visutwin::canvas::Quaternion::Quaternion | ( | ) |
Referenced by conjugate(), fromAxisAngle(), fromEulerAngles(), fromMatrix4(), invert(), normalized(), operator*(), operator*(), and operator<<.
| visutwin::canvas::Quaternion::Quaternion | ( | float | x, |
| float | y, | ||
| float | z, | ||
| float | w ) |
|
nodiscard |
References Quaternion().
|
static |
References Quaternion().
|
static |
|
static |
Converts the specified 4x4 matrix to a quaternion
References Quaternion().
Referenced by visutwin::canvas::GraphNode::rotation().
|
inlinenodiscard |
Definition at line 89 of file quaternion.h.
References w.
|
inlinenodiscard |
Definition at line 50 of file quaternion.h.
References x.
|
inlinenodiscard |
Definition at line 63 of file quaternion.h.
References y.
|
inlinenodiscard |
Definition at line 76 of file quaternion.h.
References z.
| Quaternion visutwin::canvas::Quaternion::invert | ( | ) | const |
Generates the inverse of the specified quaternion
References Quaternion().
| float visutwin::canvas::Quaternion::length | ( | ) | const |
Returns the magnitude of the specified quaternion
| float visutwin::canvas::Quaternion::lengthSquared | ( | ) | const |
|
nodiscard |
| Quaternion visutwin::canvas::Quaternion::operator* | ( | const float | scalar | ) | const |
References Quaternion().
| Quaternion visutwin::canvas::Quaternion::operator* | ( | const Quaternion & | rhs | ) | const |
References Quaternion().
|
nodiscard |
Referenced by visutwin::canvas::GlbParser::parse().
|
friend |
Definition at line 129 of file quaternion.h.
References q, and Quaternion().
| union { ... } visutwin::canvas::Quaternion |
| float visutwin::canvas::Quaternion::q[4] |
Definition at line 34 of file quaternion.h.
Referenced by operator<<.
| float visutwin::canvas::Quaternion::w |
Definition at line 32 of file quaternion.h.
Referenced by getW(), and Quaternion().
| float visutwin::canvas::Quaternion::x |
Definition at line 32 of file quaternion.h.
Referenced by getX(), and Quaternion().
| float visutwin::canvas::Quaternion::y |
Definition at line 32 of file quaternion.h.
Referenced by getY(), and Quaternion().
| float visutwin::canvas::Quaternion::z |
Definition at line 32 of file quaternion.h.
Referenced by getZ(), and Quaternion().