🛰️航天仿真算法库 SpaceAST 0.0.1
载入中...
搜索中...
未找到
DataGroupEuler.hpp
浏览该文件的文档.
1
20
21#pragma once
22
23#include "AstGlobal.h"
24#include "AstReport/DataGroupTimeVar.hpp"
25#include "AstUtil/Span.hpp"
26#include "AstCore/Axes.hpp"
27#include "AstMath/Euler.hpp"
28#include "AstMath/Quaternion.hpp"
29#include "AstMath/Vector.hpp"
30
31AST_NAMESPACE_BEGIN
32
39void aQuatAngvelToEuler(const Quaternion& quat, const Vector3d& angvel, int seq, Euler& angles, Euler& rates);
40
41
44{
45public:
46 struct Data
47 {
48 TimePoint time_;
51
52 const TimePoint& getTime() const { return time_; }
53
54 double getA() const { return angles_.angle1(); }
55 double getB() const { return angles_.angle2(); }
56 double getC() const { return angles_.angle3(); }
57
58 double getADot() const { return rates_.angle1(); }
59 double getBDot() const { return rates_.angle2(); }
60 double getCDot() const { return rates_.angle3(); }
61 };
62 static DataElements Elements();
63
64 DataGroupEuler() = default;
65 ~DataGroupEuler() = default;
66public:
67 errc_t calculate(const TimeList& timeList, VariantVector& result) const override;
68 const DataElements& getElements() const override;
69public:
70 errc_t calculate(const TimeList& timeList, std::vector<Data>& result) const;
71 errc_t calculate(const TimeList& timeList, Span<Data> result) const;
72public:
73 Axes* getAxes() const { return axes_.get(); }
74 Axes* getReferenceAxes() const { return referenceAxes_.get(); }
75 void setAxes(Axes* a) { axes_ = a; }
76 void setReferenceAxes(Axes* a) { referenceAxes_ = a; }
77
78 int getRotationOrder() const { return rotationOrder_; }
79 void setRotationOrder(int order) { rotationOrder_ = order; }
80private:
81 WeakPtr<Axes> axes_{};
82 WeakPtr<Axes> referenceAxes_{};
83 int rotationOrder_{Euler::eXYX};
84};
85
86
89AST_NAMESPACE_END
欧拉角姿态数据组 — 欧拉角 A, B, C 及角速率 (转序 121)
定义 DataGroupEuler.hpp:44
随时间变化的数据组
定义 DataGroupTimeVar.hpp:37
欧拉角
定义 Euler.hpp:31
绝对时间点
定义 TimePoint.hpp:108
void aQuatAngvelToEuler(const Quaternion &quat, const Vector3d &angvel, int rotationOrder, Euler &angles, Euler &rates)
将四元数和体轴角速度转换为欧拉角及欧拉角速率
定义 DataGroupEuler.cpp:67
定义 DataGroupEuler.hpp:47
Euler angles_
欧拉角 A, B, C
定义 DataGroupEuler.hpp:49
Euler rates_
欧拉角速率 A dot, B dot, C dot
定义 DataGroupEuler.hpp:50