|
| Quaternion () |
| 默认构造函数,初始化为单位四元数 / Default constructor initializing to an identity quaternion
|
|
| Quaternion (Scalar w, Scalar x, Scalar y, Scalar z) |
| 通过四个分量初始化四元数 / Construct a quaternion using four components
|
|
| Quaternion (const Eigen::Quaternion< Scalar > &q) |
| 复制构造函数 / Copy constructor
|
|
| Quaternion (const RotationMatrix< Scalar > &R) |
| 通过旋转矩阵构造四元数 / Construct a quaternion from a rotation matrix
|
|
| Quaternion (const Eigen::Matrix< Scalar, 3, 3 > R) |
| 通过 3x3 旋转矩阵构造四元数 / Construct a quaternion from a 3x3 rotation matrix
|
|
template<typename T , std::enable_if_t< std::is_same< T, Scalar >::value||std::is_same< T, float >::value||std::is_same< T, double >::value, int > = 0> |
| Quaternion (const T(&data)[4]) |
| 通过四维数组初始化四元数 / Construct a quaternion from a 4-element array
|
|
Scalar | operator() (int i) const |
| 获取四元数的分量 / Retrieve a specific component of the quaternion
|
|
Quaternion & | operator= (const Eigen::Quaternion< Scalar > &q) |
| 赋值运算符 / Assignment operator
|
|
Quaternion | operator- () const |
| 取共轭四元数 / Get the conjugate quaternion
|
|
Quaternion | operator+ (const Quaternion &q) const |
| 四元数加法 / Quaternion addition
|
|
Quaternion | operator+ (const Eigen::Quaternion< Scalar > &q) const |
|
Quaternion | operator- (const Quaternion &q) const |
|
Quaternion | operator- (const Eigen::Quaternion< Scalar > &q) const |
|
Quaternion | operator* (const Quaternion &q) const |
| 四元数乘法 / Quaternion multiplication
|
|
Quaternion | operator* (const Eigen::Quaternion< Scalar > &q) const |
|
Quaternion | operator/ (const Quaternion &q) const |
| 四元数除法(即左乘其共轭) / Quaternion division (multiplication by its conjugate)
|
|
Quaternion | operator/ (const Eigen::Quaternion< Scalar > &q) const |
|
template<typename Q , std::enable_if_t< std::is_same< Q, Quaternion >::value||std::is_same< Q, Eigen::Quaternion< Scalar > >::value, int > = 0> |
const Quaternion & | operator+= (const Q &q) |
|
template<typename Q , std::enable_if_t< std::is_same< Q, Quaternion >::value||std::is_same< Q, Eigen::Quaternion< Scalar > >::value, int > = 0> |
const Quaternion & | operator-= (const Q &q) |
|
Position< Scalar > | operator* (const Position< Scalar > &p) const |
| 旋转三维向量 / Rotate a 3D vector
|
|
Eigen::Matrix< Scalar, 3, 1 > | ToEulerAngle () const |
| 获取四元数的欧拉角表示(默认使用 ZYX 旋转顺序) Get the Euler angles representation of the quaternion (default ZYX order)
|
|
Eigen::Matrix< Scalar, 3, 1 > | ToEulerAngleYZX () const |
|
Eigen::Matrix< Scalar, 3, 1 > | ToEulerAngleZYX () const |
|
Eigen::Matrix< Scalar, 3, 1 > | ToEulerAngleYXZ () const |
|
Eigen::Matrix< Scalar, 3, 1 > | ToEulerAngleZXY () const |
|
Eigen::Matrix< Scalar, 3, 1 > | ToEulerAngleXZY () const |
|
Eigen::Matrix< Scalar, 3, 1 > | ToEulerAngleXYZ () const |
|
Eigen::Matrix< Scalar, 3, 3 > | ToRotationMatrix () const |
| 将四元数转换为 3x3 旋转矩阵 / Convert the quaternion to a 3x3 rotation matrix
|
|
template<typename Scalar>
class LibXR::Quaternion< Scalar >
四元数表示与运算,继承自 Eigen::Quaternion / Quaternion representation and operations, inheriting from Eigen::Quaternion
该类提供了对四元数的基本运算,如加法、减法、乘法、除法,以及与旋转矩阵和欧拉角的转换等。 This class provides fundamental quaternion operations, such as addition, subtraction, multiplication, and division, along with conversions to rotation matrices and Euler angles.
- Template Parameters
-
Scalar | 数值类型(默认使用 DefaultScalar) / Numeric type (default: DefaultScalar) |
Definition at line 811 of file transform.hpp.
template<typename Scalar >
template<typename T , std::enable_if_t< std::is_same< T, Scalar >::value||std::is_same< T, float >::value||std::is_same< T, double >::value, int > = 0>
通过四维数组初始化四元数 / Construct a quaternion from a 4-element array
- Parameters
-
data | 4 维数组,表示 (w, x, y, z) / A 4-element array representing (w, x, y, z) |
Definition at line 867 of file transform.hpp.
867 : Eigen::Quaternion<Scalar>(data)
868 {
869 }
template<typename Scalar >
获取四元数的欧拉角表示(默认使用 ZYX 旋转顺序) Get the Euler angles representation of the quaternion (default ZYX order)
该方法将四元数转换为欧拉角,表示旋转顺序为 ZYX(即先绕 Z 轴旋转,再绕 Y 轴,最后绕 X 轴)。 This method converts the quaternion into Euler angles using the ZYX rotation order (first rotate around the Z-axis, then Y-axis, and finally the X-axis).
- Returns
- 计算得到的欧拉角向量 (roll, pitch, yaw) / Computed Euler angles vector (roll, pitch, yaw)
Definition at line 1008 of file transform.hpp.
1008{ return ToEulerAngleZYX(); }