🛰️航天仿真算法库 SpaceAST 0.3.1
载入中...
搜索中...
未找到
StateMixedSpherical.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 StateMixedSpherical;
35using PStateMixedSpherical = StateMixedSpherical*;
36using HStateMixedSpherical = SharedPtr<StateMixedSpherical>;
37
47class AST_CORE_API StateMixedSpherical final: public State
48{
49public:
50 AST_OBJECT(StateMixedSpherical)
51 AST_PROPERT(Lon)
52 AST_PROPERT(Lat)
53 AST_PROPERT(Alt)
54 AST_PROPERT(FltPathAng)
55 AST_PROPERT(VertFltPathAng)
56 AST_PROPERT(FltPathAzi)
57 AST_PROPERT(Vel)
60 static PStateMixedSpherical New(const MixedSphericalElem& mixedSphericalElem);
61 static HStateMixedSpherical MakeShared(const MixedSphericalElem& mixedSphericalElem);
62
63 StateMixedSpherical() = default;
64 StateMixedSpherical(const MixedSphericalElem& mixedSphericalElem);
65 StateMixedSpherical(const State& state);
66 ~StateMixedSpherical() override = default;
67public:
69 errc_t getState(CartState& state) const override;
70 errc_t getState(ModOrbElem& orbElem) const override;
71 errc_t setState(const CartState& state) override;
72 errc_t setState(const ModOrbElem& orbElem) override;
73public:
76 void getState(MixedSphericalElem& mixedSphericalElem) const { mixedSphericalElem = mixedSphericalElem_; }
77
81 errc_t setState(const MixedSphericalElem& mixedSphericalElem);
82protected:
86 BodyShape* getShape() const;
87
91 errc_t getInertialToFixed(Rotation& inertialToFixed) const;
92PROPERTIES:
94 angle_d getLon() const { return mixedSphericalElem_.lon_; }
96 void setLon(angle_d lon) { mixedSphericalElem_.lon_ = lon; }
97
99 angle_d getLat() const { return mixedSphericalElem_.lat_; }
101 void setLat(angle_d lat) { mixedSphericalElem_.lat_ = lat; }
102
104 length_d getAlt() const { return mixedSphericalElem_.alt_; }
106 void setAlt(length_d alt) { mixedSphericalElem_.alt_ = alt; }
107
109 angle_d getFltPathAng() const { return mixedSphericalElem_.fpa_; }
111 void setFltPathAng(angle_d fpa) { mixedSphericalElem_.fpa_ = fpa; }
112
114 angle_d getVertFltPathAng() const { return mixedSphericalElem_.getVertFltPathAng(); }
116 void setVertFltPathAng(angle_d vfpa) { mixedSphericalElem_.fpa_ = kHalfPI - vfpa; }
117
119 angle_d getFltPathAzi() const { return mixedSphericalElem_.azi_; }
121 void setFltPathAzi(angle_d azi) { mixedSphericalElem_.azi_ = azi; }
122
124 speed_d getVel() const { return mixedSphericalElem_.v_; }
126 void setVel(speed_d v) { mixedSphericalElem_.v_ = v; }
127protected:
128 MixedSphericalElem mixedSphericalElem_{};
129};
130
131
132
135AST_NAMESPACE_END
天体形状基类
定义 BodyShape.hpp:33
直角坐标
定义 OrbitElement.hpp:53
混合球坐标轨道根数
定义 OrbitElement.hpp:442
修正轨道根数
定义 OrbitElement.hpp:154
坐标系旋转类
定义 Rotation.hpp:55
共享指针
定义 SharedPtr.hpp:33
混合球坐标状态
定义 StateMixedSpherical.hpp:48
void setFltPathAng(angle_d fpa)
设置航迹角
定义 StateMixedSpherical.hpp:111
angle_d getFltPathAzi() const
获取航迹方位角
定义 StateMixedSpherical.hpp:119
void setAlt(length_d alt)
设置高度
定义 StateMixedSpherical.hpp:106
void setVel(speed_d v)
设置速度大小
定义 StateMixedSpherical.hpp:126
speed_d getVel() const
获取速度大小
定义 StateMixedSpherical.hpp:124
length_d getAlt() const
获取高度
定义 StateMixedSpherical.hpp:104
void setFltPathAzi(angle_d azi)
设置航迹方位角
定义 StateMixedSpherical.hpp:121
angle_d getFltPathAng() const
获取航迹角(水平航迹角)
定义 StateMixedSpherical.hpp:109
angle_d getLat() const
获取大地纬度
定义 StateMixedSpherical.hpp:99
void getState(MixedSphericalElem &mixedSphericalElem) const
获取混合球坐标根数
定义 StateMixedSpherical.hpp:76
EStateType getStateType() const override
获取状态类型
定义 StateMixedSpherical.hpp:68
void setLat(angle_d lat)
设置大地纬度
定义 StateMixedSpherical.hpp:101
void setLon(angle_d lon)
设置大地经度
定义 StateMixedSpherical.hpp:96
void setVertFltPathAng(angle_d vfpa)
设置垂直航迹角
定义 StateMixedSpherical.hpp:116
angle_d getVertFltPathAng() const
获取垂直航迹角(水平航迹角的余角)
定义 StateMixedSpherical.hpp:114
航天器状态
定义 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
constexpr double kHalfPI
0.5*kAsPI
定义 Constants.hpp:57
EStateType
状态类型
定义 State.hpp:39
@ eMixedSpherical
混合球坐标状态