|
Janus 2.0.0
High-performance C++20 dual-mode numerical framework
|
Quaternion class for rotation representation. More...
#include <Quaternion.hpp>
Public Member Functions | |
| Quaternion () | |
| Default constructor: Identity quaternion (1, 0, 0, 0). | |
| Quaternion (Scalar w, Scalar x, Scalar y, Scalar z) | |
| Component constructor. | |
| Quaternion (const Vec4< Scalar > &v) | |
| Construct from Vec4 [w, x, y, z]. | |
| Quaternion | operator* (const Quaternion &other) const |
| Hamilton product. | |
| Quaternion | operator* (const Scalar &s) const |
| Scalar multiplication. | |
| Quaternion | operator+ (const Quaternion &other) const |
| Quaternion addition. | |
| Quaternion | conjugate () const |
| Conjugate (w, -x, -y, -z). | |
| Quaternion | inverse () const |
| Inverse (conjugate / norm_sq). | |
| Scalar | squared_norm () const |
| Squared norm (w^2 + x^2 + y^2 + z^2). | |
| Scalar | norm () const |
| Quaternion norm. | |
| Quaternion | normalized () const |
| Return unit quaternion. | |
| Vec3< Scalar > | rotate (const Vec3< Scalar > &v) const |
| Rotate a 3D vector: v_rot = q * v * q_conj. | |
| Mat3< Scalar > | to_rotation_matrix () const |
| Convert to 3x3 rotation matrix. | |
| Vec4< Scalar > | coeffs () const |
| Export as vector [w, x, y, z]. | |
| Vec3< Scalar > | to_euler () const |
| Extract Euler angles (Roll-Pitch-Yaw / XYZ). | |
Static Public Member Functions | |
| static Quaternion | from_euler (Scalar roll, Scalar pitch, Scalar yaw) |
| Create from Euler Angles (Yaw-Pitch-Roll / Z-Y-X sequence). | |
| static Quaternion | from_axis_angle (const Vec3< Scalar > &axis, Scalar angle) |
| Create from axis-angle representation. | |
| static Quaternion | from_rotation_vector (const Vec3< Scalar > &rot_vec) |
| Create from rotation vector (axis * angle). | |
| static Quaternion | from_rotation_matrix (const Mat3< Scalar > &mat) |
| Create from 3x3 rotation matrix. | |
Public Attributes | |
| Scalar | w |
| Scalar | x |
| Scalar | y |
| Scalar | z |
Quaternion class for rotation representation.
Stores quaternion in (w, x, y, z) convention where w is the scalar part. All operations support both numeric and symbolic types.
| Scalar | Scalar type (NumericScalar or SymbolicScalar) |
|
inline |
Default constructor: Identity quaternion (1, 0, 0, 0).
|
inline |
Component constructor.
|
inlineexplicit |
Construct from Vec4 [w, x, y, z].
|
inline |
Export as vector [w, x, y, z].
|
inline |
Conjugate (w, -x, -y, -z).
|
inlinestatic |
Create from axis-angle representation.
| axis | Rotation axis (will be normalized) |
| angle | Rotation angle (radians) |
|
inlinestatic |
Create from Euler Angles (Yaw-Pitch-Roll / Z-Y-X sequence).
| roll | Roll angle (radians) |
| pitch | Pitch angle (radians) |
| yaw | Yaw angle (radians) |
|
inlinestatic |
|
inlinestatic |
|
inline |
Inverse (conjugate / norm_sq).
|
inline |
Quaternion norm.
|
inline |
Return unit quaternion.
|
inline |
Hamilton product.
| other | Right-hand quaternion |
|
inline |
Scalar multiplication.
| s | Scalar factor |
|
inline |
|
inline |
Rotate a 3D vector: v_rot = q * v * q_conj.
| v | Input vector |
|
inline |
Squared norm (w^2 + x^2 + y^2 + z^2).
|
inline |
Extract Euler angles (Roll-Pitch-Yaw / XYZ).
|
inline |
Convert to 3x3 rotation matrix.
| Scalar janus::Quaternion< Scalar >::w |
| Scalar janus::Quaternion< Scalar >::x |
| Scalar janus::Quaternion< Scalar >::y |
| Scalar janus::Quaternion< Scalar >::z |