Quaternion representation of rotations, based on double precision Eigen::Quaterniond.
More...
#include <Quaternion.h>
|
| Quaternion () |
| Default constructor (qw,qx,qy,qz) = (1,0,0,0) , no rotation, equivalent to 3x3 identity rotation matrix.
|
|
| Quaternion (double w, double x, double y, double z) |
| Constructor from qw, qx, qy, qz.
|
|
| Quaternion (const Eigen::Vector4d &qvec) |
| Constructor from Eigen 4-element unit quaternion vector.
|
|
| Quaternion (const Eigen::Vector3d &vec) |
| Constructor from Eigen 3D unit vector.
|
|
| Quaternion (const Eigen::Matrix3d &rotmat) |
| Constructor from an Eigen 3D Rotation matrix Throw exception for non-uniary matrix within 1e-6 precision.
|
|
| Quaternion (const Eigen::AngleAxisd &aa) |
| Constructor from an Eigen AngleAxis object.
|
|
| Quaternion (double angle, const Eigen::Vector3d &axis) |
| Constructor from an angle and 3-D vector axis.
|
|
| Quaternion (double yaw, double pitch, double roll) |
| Constructor from Euler Angles yaw, pitch, roll.
|
|
| Quaternion (const EulerAngles &ypr) |
| Constructor from isce3 EulerAngle Object.
|
|
| Quaternion (const Eigen::Quaternion< double > &other) |
| Copy constructor from other Quaternion obj.
|
|
Eigen::Vector3d | rotate (const Eigen::Vector3d &vec) const |
| Rotate a 3-D vector by self quaternion object.
|
|
Vec3 | toYPR () const |
| Convert quaternion to an Eigen vector of Euler angles (yaw, pitch, roll) , all in radians.
|
|
EulerAngles | toEulerAngles () const |
| Build isce3 EulerAngles Object from Quaternion object.
|
|
Eigen::AngleAxisd | toAngleAxis () const |
| Convert from Eigen Quaternion to Eigen AngleAxis object.
|
|
Quaternion representation of rotations, based on double precision Eigen::Quaterniond.
Element names correspond to q = w + xi + yj + zk. Uses Hamilton convention, same as SPICE toolikt (https://naif.jpl.nasa.gov/pub/naif/toolkit_docs/C/cspice/qxq_c.html). See https://arxiv.org/pdf/1801.07478.pdf for details of conventions.
◆ Quaternion() [1/9]
isce3::core::Quaternion::Quaternion |
( |
double | w, |
|
|
double | x, |
|
|
double | y, |
|
|
double | z ) |
|
inline |
Constructor from qw, qx, qy, qz.
- Parameters
-
[in] | w | : double scalar , real part |
[in] | x | : double scalar, imag part along x axis |
[in] | y | : double scalar, imag part along y axis |
[in] | z | : double scalar, imag part along z axis |
◆ Quaternion() [2/9]
isce3::core::Quaternion::Quaternion |
( |
const Eigen::Vector4d & | qvec | ) |
|
|
inlineexplicit |
Constructor from Eigen 4-element unit quaternion vector.
- Parameters
-
[in] | qvec | : quaternion 4-element Eigen vector or isce3 Vec4 representing qw, qx, qy, qz. |
◆ Quaternion() [3/9]
isce3::core::Quaternion::Quaternion |
( |
const Eigen::Vector3d & | vec | ) |
|
|
inlineexplicit |
Constructor from Eigen 3D unit vector.
- Parameters
-
[in] | vec | : 3-D . 3-element Eigen vector or isce3 Vec3 representing qx, qy, qz. |
◆ Quaternion() [4/9]
isce3::core::Quaternion::Quaternion |
( |
const Eigen::Matrix3d & | rotmat | ) |
|
|
inline |
Constructor from an Eigen 3D Rotation matrix Throw exception for non-uniary matrix within 1e-6 precision.
- Parameters
-
[in] | rotmat | : 3-by-3 rotation Eigen matrix or isce3 Mat3. |
- Exceptions
-
◆ Quaternion() [5/9]
isce3::core::Quaternion::Quaternion |
( |
const Eigen::AngleAxisd & | aa | ) |
|
|
inline |
Constructor from an Eigen AngleAxis object.
- Parameters
-
[in] | aa | : Eigen AngleAxisd object |
◆ Quaternion() [6/9]
isce3::core::Quaternion::Quaternion |
( |
double | angle, |
|
|
const Eigen::Vector3d & | axis ) |
|
inline |
Constructor from an angle and 3-D vector axis.
- Parameters
-
[in] | angle | : scalar in radians |
[in] | axis | : Eigen 3-D double unit vector |
◆ Quaternion() [7/9]
isce3::core::Quaternion::Quaternion |
( |
double | yaw, |
|
|
double | pitch, |
|
|
double | roll ) |
|
inline |
Constructor from Euler Angles yaw, pitch, roll.
- Parameters
-
[in] | yaw | : scalar in radians |
[in] | pitch | : scalar in radians |
[in] | roll | : scalar in radians |
◆ Quaternion() [8/9]
isce3::core::Quaternion::Quaternion |
( |
const EulerAngles & | ypr | ) |
|
|
explicit |
Constructor from isce3 EulerAngle Object.
- Parameters
-
[in] | ypr | : isce3 EulerAngle object |
◆ Quaternion() [9/9]
isce3::core::Quaternion::Quaternion |
( |
const Eigen::Quaternion< double > & | other | ) |
|
|
inline |
Copy constructor from other Quaternion obj.
- Parameters
-
[in] | other | : another Eigen quaternion object |
◆ rotate()
Eigen::Vector3d isce3::core::Quaternion::rotate |
( |
const Eigen::Vector3d & | vec | ) |
const |
|
inline |
Rotate a 3-D vector by self quaternion object.
- Parameters
-
[in] | vec | : Eigen Vector3 or isce3 Vec3 |
- Returns
- rotated Eigen Vector3 or isce3 Vec3
◆ toAngleAxis()
Eigen::AngleAxisd isce3::core::Quaternion::toAngleAxis |
( |
| ) |
const |
|
inline |
Convert from Eigen Quaternion to Eigen AngleAxis object.
- Returns
- Eigen AngleAxis object
◆ toEulerAngles()
EulerAngles isce3::core::Quaternion::toEulerAngles |
( |
| ) |
const |
◆ toYPR()
Vec3 isce3::core::Quaternion::toYPR |
( |
| ) |
const |
Convert quaternion to an Eigen vector of Euler angles (yaw, pitch, roll) , all in radians.
- Returns
- Eigen:Vector3 or isce3 Vec3 of Yaw,Pitch,Roll angles all in radians.
The documentation for this class was generated from the following files:
- /home/runner/work/isce3/isce3/cxx/isce3/core/Quaternion.h
- /home/runner/work/isce3/isce3/cxx/isce3/core/Quaternion.cpp
1.13.2.