🛰️航天仿真算法库 SpaceAST 0.0.1
载入中...
搜索中...
未找到
DataGroupLLAState.hpp
浏览该文件的文档.
1
20
21#pragma once
22
23#include "AstGlobal.h"
24#include "AstReport/DataGroupTimeVar.hpp"
25#include "AstCore/Point.hpp"
26#include "AstCore/CelestialBody.hpp"
27#include "AstCore/GeodeticPoint.hpp"
28#include "AstMath/Vector.hpp"
29#include "AstUtil/Span.hpp"
30
31AST_NAMESPACE_BEGIN
32
43{
44public:
45 struct Data
46 {
47 TimePoint time_{};
48 GeodeticPoint detic_{};
49 double centricLat_{};
50 double centricLon_{};
51 double latRate_{};
52 double lonRate_{};
53 double altRate_{};
54
55 const TimePoint& getTime() const { return time_; }
56 double getLat() const { return detic_.latitude(); }
57 double getLon() const { return detic_.longitude(); }
58 double getAlt() const { return detic_.altitude(); }
59 double getLatRate() const { return latRate_; }
60 double getLonRate() const { return lonRate_; }
61 double getAltRate() const { return altRate_; }
62 double getCentricLat() const { return centricLat_; }
63 double getCentricLon() const { return centricLon_; }
64
65 // 以下元素需要额外基础设施支持,暂未实现:
66 // double getAltAGL() const; // 需要地形高程数据
67 // double getTerrainAlt() const; // 需要地形高程数据
68 // double getAltMSL() const; // 需要大地水准面模型
69 // int getUTMZone() const; // 需要 UTM 投影转换
70 // double getUTMEasting() const; // 需要 UTM 投影转换
71 // double getUTMNorthing() const; // 需要 UTM 投影转换
72 // const std::string& getMGRSCell() const; // 需要 MGRS 转换
73 };
74 static DataElements Elements();
75
76 DataGroupLLAState() = default;
77 ~DataGroupLLAState() = default;
78public:
79 errc_t calculate(const TimeList& timeList, VariantVector& result) const override;
80 const DataElements& getElements() const override;
81public:
82 errc_t calculate(const TimeList& timeList, std::vector<Data>& result) const;
83 errc_t calculate(const TimeList& timeList, Span<Data> result) const;
84public:
85 Point* getPoint() const { return point_.get(); }
86 Body* getBody() const { return body_.get(); }
87 void setPoint(Point* p) { point_ = p; }
88 void setBody(Body* b) { body_ = b; }
89private:
90 WeakPtr<Point> point_{};
91 WeakPtr<Body> body_{};
92};
93
94
97AST_NAMESPACE_END
天体
定义 CelestialBody.hpp:72
数据元素容器
定义 DataElements.hpp:90
LLA 状态数据组 — 大地坐标(经纬高)、地心经纬度及变化率
定义 DataGroupLLAState.hpp:43
随时间变化的数据组
定义 DataGroupTimeVar.hpp:37
大地坐标
定义 GeodeticPoint.hpp:33
点抽象基类
定义 Point.hpp:41
非拥有的连续对象序列视图
定义 Span.hpp:71
时间点列表
定义 TimeList.hpp:49
绝对时间点
定义 TimePoint.hpp:108
变类型向量容器
定义 VariantVector.hpp:59
定义 DataGroupLLAState.hpp:46