🛰️航天仿真算法库 SpaceAST 0.0.1
载入中...
搜索中...
未找到
DataGroupModOrbElem.hpp
浏览该文件的文档.
1
20
21#pragma once
22
23#include "AstGlobal.h"
24#include "AstReport/DataGroupTimeVar.hpp"
25#include "AstCore/Frame.hpp"
26#include "AstCore/Point.hpp"
27#include "AstCore/OrbitElement.hpp"
28
29AST_NAMESPACE_BEGIN
30
37{
38public:
39 struct Data
40 {
41 ModOrbElem modOrbElem_{};
42 double bodyRadius_{};
43 double gm_{};
44 TimePoint time_{};
45
46 const TimePoint& getTime() const { return time_; }
47 double getSMA() const { return modOrbElem_.getSMA(); }
48 double getEcc() const { return modOrbElem_.getEcc(); }
49 double getInc() const { return modOrbElem_.getInc(); }
50 double getRAAN() const { return modOrbElem_.getRAAN(); }
51 double getArgPeri() const { return modOrbElem_.getArgPeri(); }
52 double getTrueAnomaly() const { return modOrbElem_.getTrueAnomaly(); }
53 double getMeanAnomaly() const { return modOrbElem_.getMeanAnomaly(); }
54 double getEccAnomaly() const { return modOrbElem_.getEccAnomaly(); }
55 double getArgLat() const { return modOrbElem_.getArgLat(); }
56 double getApoAlt() const { return modOrbElem_.getApoAlt(bodyRadius_); }
57 double getApoRad() const { return modOrbElem_.getApoRad(); }
58 double getPeriAlt() const { return modOrbElem_.getPeriAlt(bodyRadius_); }
59 double getPeriRad() const { return modOrbElem_.getPeriRad(); }
60 double getMeanMotion() const { return modOrbElem_.getMeanMotion(gm_); }
61 // double getLAN() const { return modOrbElem_.getLAN(); }
62 double getTimePastAscNode() const { return modOrbElem_.getTimePastAscNode(gm_); }
63 double getTimePastPeri() const { return modOrbElem_.getTimePastPeri(gm_); }
64 double getPeriod() const { return modOrbElem_.getPeriod(gm_); }
65 double getLongitudeOfPeri() const { return modOrbElem_.getLongitudeOfPeri(); }
66 double getMeanLongitude() const { return modOrbElem_.getMeanLongitude(); }
67 };
68 static DataElements Elements();
69 DataGroupModOrbElem() = default;
70 ~DataGroupModOrbElem() = default;
71public:
72 const DataElements &getElements() const override;
73 errc_t calculate(const TimeList& timeList, VariantVector& result) const override;
74public:
75 errc_t calculate(const TimeList& timeList, std::vector<Data>& result) const;
76 errc_t calculate(const TimeList& timeList, Span<Data> result) const;
77public:
78 Point* getPoint() const { return point_.get(); }
79 Frame* getFrame() const { return frame_.get(); }
80 void setPoint(Point* p) { point_ = p; }
81 void setFrame(Frame* f) { frame_ = f; }
82private:
83 WeakPtr<Point> point_{};
84 WeakPtr<Frame> frame_{};
85};
86
87
90AST_NAMESPACE_END
数据元素容器
定义 DataElements.hpp:90
定义 DataGroupModOrbElem.hpp:37
随时间变化的数据组
定义 DataGroupTimeVar.hpp:37
坐标系抽象基类
定义 Frame.hpp:62
修正轨道根数
定义 OrbitElement.hpp:136
点抽象基类
定义 Point.hpp:41
非拥有的连续对象序列视图
定义 Span.hpp:71
时间点列表
定义 TimeList.hpp:49
绝对时间点
定义 TimePoint.hpp:108
变类型向量容器
定义 VariantVector.hpp:59
定义 DataGroupModOrbElem.hpp:40