🛰️航天仿真算法库 SpaceAST 0.3.1
载入中...
搜索中...
未找到
StateGeodetic.hpp
浏览该文件的文档.
1
20
21#pragma once
22
23#include "AstGlobal.h"
24#include "AstCore/State.hpp"
25#include "AstMath/Vector.hpp"
26#include "AstCore/OrbitElement.hpp"
27
28AST_NAMESPACE_BEGIN
29
34class StateGeodetic;
35using PStateGeodetic = StateGeodetic*;
36using HStateGeodetic = SharedPtr<StateGeodetic>;
37
49class AST_CORE_API StateGeodetic final: public State
50{
51public:
52 AST_OBJECT(StateGeodetic)
53 AST_PROPERT(Lon)
54 AST_PROPERT(Lat)
55 AST_PROPERT(Alt)
56 AST_PROPERT(LonRate)
57 AST_PROPERT(LatRate)
58 AST_PROPERT(AltRate)
59 static PStateGeodetic New();
61 static PStateGeodetic New(const GeodeticElem& geodeticElem);
62 static HStateGeodetic MakeShared(const GeodeticElem& geodeticElem);
63
64 StateGeodetic() = default;
65 StateGeodetic(const GeodeticElem& geodeticElem);
66 StateGeodetic(const State& state);
67 ~StateGeodetic() override = default;
68public:
69 EStateType getStateType() const override { return EStateType::eGeodetic; }
70 errc_t getState(CartState& state) const override;
71 errc_t getState(ModOrbElem& orbElem) const override;
72 errc_t setState(const CartState& state) override;
73 errc_t setState(const ModOrbElem& orbElem) override;
74public:
77 void getState(GeodeticElem& geodeticElem) const { geodeticElem = geodeticElem_; }
78
82 errc_t setState(const GeodeticElem& geodeticElem);
83protected:
86 BodyShape* getShape() const;
87
90 Frame* getFixedFrame() const;
91
95 errc_t getFrameToFixed(KinematicTransform& frameToFixed) const;
96
100 errc_t getFixedToFrame(KinematicTransform& fixedToFrame) const;
101PROPERTIES:
103 angle_d getLon() const { return geodeticElem_.lon_; }
105 void setLon(angle_d lon) { geodeticElem_.lon_ = lon; }
106
108 angle_d getLat() const { return geodeticElem_.lat_; }
110 void setLat(angle_d lat) { geodeticElem_.lat_ = lat; }
111
113 length_d getAlt() const { return geodeticElem_.alt_; }
115 void setAlt(length_d alt) { geodeticElem_.alt_ = alt; }
116
118 angle_d getLonRate() const { return geodeticElem_.lonRate_; }
120 void setLonRate(angle_d lonRate) { geodeticElem_.lonRate_ = lonRate; }
121
123 angle_d getLatRate() const { return geodeticElem_.latRate_; }
125 void setLatRate(angle_d latRate) { geodeticElem_.latRate_ = latRate; }
126
128 speed_d getAltRate() const { return geodeticElem_.altRate_; }
130 void setAltRate(speed_d altRate) { geodeticElem_.altRate_ = altRate; }
131protected:
132 GeodeticElem geodeticElem_{};
133};
134
135
136
139AST_NAMESPACE_END
天体形状基类
定义 BodyShape.hpp:33
直角坐标
定义 OrbitElement.hpp:53
坐标系抽象基类
定义 Frame.hpp:74
大地坐标根数
定义 OrbitElement.hpp:504
运动学变换
定义 KinematicTransform.hpp:49
修正轨道根数
定义 OrbitElement.hpp:154
共享指针
定义 SharedPtr.hpp:33
大地坐标状态
定义 StateGeodetic.hpp:50
angle_d getLonRate() const
获取大地经度变化率
定义 StateGeodetic.hpp:118
angle_d getLat() const
获取大地纬度
定义 StateGeodetic.hpp:108
void setAltRate(speed_d altRate)
设置高度变化率
定义 StateGeodetic.hpp:130
angle_d getLatRate() const
获取大地纬度变化率
定义 StateGeodetic.hpp:123
void getState(GeodeticElem &geodeticElem) const
获取大地坐标根数
定义 StateGeodetic.hpp:77
EStateType getStateType() const override
获取状态类型
定义 StateGeodetic.hpp:69
void setLat(angle_d lat)
设置大地纬度
定义 StateGeodetic.hpp:110
length_d getAlt() const
获取高度
定义 StateGeodetic.hpp:113
void setLon(angle_d lon)
设置大地经度
定义 StateGeodetic.hpp:105
void setLonRate(angle_d lonRate)
设置大地经度变化率
定义 StateGeodetic.hpp:120
void setAlt(length_d alt)
设置高度
定义 StateGeodetic.hpp:115
void setLatRate(angle_d latRate)
设置大地纬度变化率
定义 StateGeodetic.hpp:125
speed_d getAltRate() const
获取高度变化率
定义 StateGeodetic.hpp:128
航天器状态
定义 State.hpp:57
static HState MakeShared(EStateType type)
创建状态
定义 State.cpp:46
virtual errc_t getState(CartState &state) const =0
获取状态
virtual errc_t setState(const CartState &state)=0
设置状态
static PState New(EStateType type)
创建状态
定义 State.cpp:56
EStateType
状态类型
定义 State.hpp:39
@ eGeodetic
大地坐标状态(固连系下的位置与速度)