🛰️航天仿真算法库 SpaceAST 0.0.1
载入中...
搜索中...
未找到
Euler.hpp
浏览该文件的文档.
1
20
21#pragma once
22
23#include "AstGlobal.h"
24#include "AstMath/AttitudeConvertProto.hpp"
25
26AST_NAMESPACE_BEGIN
27
30class Euler
31{
32public:
33 // 欧拉角转序
34 enum ERotationOrder
35 {
36 eX = 1,
37 eY = 2,
38 eZ = 3,
39 eXYZ = 123,
40 eXZY = 132,
41 eYXZ = 213,
42 eYZX = 231,
43 eZXY = 312,
44 eZYX = 321,
45 eXYX = 121,
46 eXZX = 131,
47 eYXY = 212,
48 eYZY = 232,
49 eZXZ = 313,
50 eZYZ = 323
51 };
52
57 errc_t toMatrix(int seq, Matrix3d& mtx) const{return aEulerToMatrix(*this, seq,mtx); }
58
63 errc_t toQuat(int seq, Quaternion& quat) const{return aEulerToQuat(*this, seq, quat); }
64
69 errc_t fromMatrix(const Matrix3d& mtx, int seq){return aMatrixToEuler(mtx, seq, *this); }
70
75 errc_t fromQuat(const Quaternion& quat, int seq){return aQuatToEuler(quat, seq, *this); }
76
77 double angle1() const{return angle1_;}
78 double angle2() const{return angle2_;}
79 double angle3() const{return angle3_;}
80 double& angle1(){return angle1_;}
81 double& angle2(){return angle2_;}
82 double& angle3(){return angle3_;}
83
84 A_DEF_POD_ITERABLE(double)
85
86public:
87 // 设置为public只是为了聚合初始化,不要直接访问成员变量
88 double angle1_;
89 double angle2_;
90 double angle3_;
91};
92
93
94AST_NAMESPACE_END
95
96AST_DECL_TYPE_ALIAS(Euler)
欧拉角
定义 Euler.hpp:31
errc_t toMatrix(int seq, Matrix3d &mtx) const
转换为旋转矩阵
定义 Euler.hpp:57
errc_t toQuat(int seq, Quaternion &quat) const
转换为四元数
定义 Euler.hpp:63
double angle3_
第三个角
定义 Euler.hpp:90
double angle2_
第二个角
定义 Euler.hpp:89
errc_t fromMatrix(const Matrix3d &mtx, int seq)
从旋转矩阵转换
定义 Euler.hpp:69
double angle1_
第一个角
定义 Euler.hpp:88
errc_t fromQuat(const Quaternion &quat, int seq)
从四元数转换
定义 Euler.hpp:75
四元数
定义 Quaternion.hpp:47
errc_t aQuatToEuler(const Quaternion &quat, int seq, Euler &euler)
四元数转欧拉角
定义 AttitudeConvert.cpp:676
errc_t aEulerToMatrix(const Euler &euler, int seq, Matrix3d &mtx)
欧拉角转矩阵
定义 AttitudeConvert.cpp:204
errc_t aEulerToQuat(const Euler &euler, int seq, Quaternion &quat)
欧拉角转四元数
定义 AttitudeConvert.cpp:668
errc_t aMatrixToEuler(const Matrix3d &mtx, int seq, Euler &euler)
矩阵转欧拉角
定义 AttitudeConvert.cpp:157