🛰️航天仿真算法库 SpaceAST 0.0.1
载入中...
搜索中...
未找到
DataGroupBetaAngle.hpp
浏览该文件的文档.
1
20
21#pragma once
22
23#include "AstGlobal.h"
24#include "AstReport/DataGroupTimeVar.hpp"
25#include "AstCore/Point.hpp"
26#include "AstCore/Frame.hpp"
27#include "AstMath/Vector.hpp"
28#include "AstUtil/Span.hpp"
29
30AST_NAMESPACE_BEGIN
31
43{
44public:
45 struct Data
46 {
47 TimePoint time_;
48 double betaAngle_;
49 double lunarBetaAngle_;
50
51 const TimePoint& getTime() const { return time_; }
52 double getBetaAngle() const { return betaAngle_; }
53 double getLunarBetaAngle() const { return lunarBetaAngle_; }
54 };
55 static DataElements Elements();
56
57 DataGroupBetaAngle() = default;
58 ~DataGroupBetaAngle() = default;
59public:
60 errc_t calculate(const TimeList& timeList, VariantVector& result) const override;
61 const DataElements& getElements() const override;
62public:
63 errc_t calculate(const TimeList& timeList, std::vector<Data>& result) const;
64 errc_t calculate(const TimeList& timeList, Span<Data> result) const;
65public:
66 Point* getPoint() const { return point_.get(); }
67 Frame* getFrame() const { return frame_.get(); }
68 Point* getSunPoint() const { return sunPoint_.get(); }
69 Point* getMoonPoint() const { return moonPoint_.get(); }
70 void setPoint(Point* p) { point_ = p; }
71 void setFrame(Frame* f) { frame_ = f; }
72 void setSunPoint(Point* p) { sunPoint_ = p; }
73 void setMoonPoint(Point* p) { moonPoint_ = p; }
74private:
75 WeakPtr<Point> point_{};
76 WeakPtr<Frame> frame_{};
77 WeakPtr<Point> sunPoint_{};
78 WeakPtr<Point> moonPoint_{};
79};
80
81
84AST_NAMESPACE_END
数据元素容器
定义 DataElements.hpp:90
贝塔角数据组 — 太阳贝塔角及月球贝塔角
定义 DataGroupBetaAngle.hpp:43
随时间变化的数据组
定义 DataGroupTimeVar.hpp:37
坐标系抽象基类
定义 Frame.hpp:62
点抽象基类
定义 Point.hpp:41
非拥有的连续对象序列视图
定义 Span.hpp:71
时间点列表
定义 TimeList.hpp:49
绝对时间点
定义 TimePoint.hpp:108
变类型向量容器
定义 VariantVector.hpp:59
定义 DataGroupBetaAngle.hpp:46