🛰️航天仿真算法库 SpaceAST 0.0.1
载入中...
搜索中...
未找到
MotionSimpleAscent.hpp
浏览该文件的文档.
1
20
21#pragma once
22
23#include "AstGlobal.h"
24#include "AstSim/MotionWithIntervalStep.hpp"
25#include "AstCore/Time.hpp"
26#include "AstCore/Object.hpp"
27#include "AstSim/MotionProfile.hpp"
28
29AST_NAMESPACE_BEGIN
30
39class AST_SIM_API MotionSimpleAscent: public MotionProfile
40{
41public:
42 AST_OBJECT(MotionSimpleAscent)
43 static MotionSimpleAscent* New();
45 ~MotionSimpleAscent() override = default;
46
50 errc_t makeEphemerisSpec(ScopedPtr<Ephemeris>& eph) const override;
51
55 errc_t makeEphemerisSimple(ScopedPtr<Ephemeris>& eph) const override;
56
59 void accept(MotionProfileVisitor& visitor) override;
60
63 void setLaunchTime(const TimePoint& time) { launchTime_ = time; }
64
67 const TimePoint& getLaunchTime() const { return launchTime_; }
68
71 void setUseScenTime(bool useScenTime) { useScenTime_ = useScenTime; }
72
75 bool getUseScenTime() const { return useScenTime_; }
76
79 void setBurnoutTime(const TimePoint& time) { burnoutTime_ = time; }
80
83 const TimePoint& getBurnoutTime() const { return burnoutTime_; }
84
89 void setLaunchPosition(double latitude, double longitude, double altitude)
90 {
91 launchLatitude_ = latitude;
92 launchLongitude_ = longitude;
93 launchAltitude_ = altitude;
94 }
95
98 double getLaunchLatitude() const { return launchLatitude_; }
99
102 double getLaunchLongitude() const { return launchLongitude_; }
103
106 double getLaunchAltitude() const { return launchAltitude_; }
107
112 void setBurnoutPosition(double latitude, double longitude, double altitude)
113 {
114 burnoutLatitude_ = latitude;
115 burnoutLongitude_ = longitude;
116 burnoutAltitude_ = altitude;
117 }
118
121 double getBurnoutLatitude() const { return burnoutLatitude_; }
122
125 double getBurnoutLongitude() const { return burnoutLongitude_; }
126
129 double getBurnoutAltitude() const { return burnoutAltitude_; }
130
133 void setBurnoutVelocity(double velocity) { burnoutVelocity_ = velocity; }
134
137 double getBurnoutVelocity() const { return burnoutVelocity_; }
138
141 void setGranularity(double granularity) { granularity_ = granularity; }
142
145 double getGranularity() const { return granularity_; }
146
147private:
148 TimePoint launchTime_;
149 bool useScenTime_;
150 TimePoint burnoutTime_;
151 double launchLatitude_;
152 double launchLongitude_;
153 double launchAltitude_;
154 double burnoutLatitude_;
155 double burnoutLongitude_;
156 double burnoutAltitude_;
157 double burnoutVelocity_;
158 double granularity_;
159
160};
161
164AST_NAMESPACE_END
定义 MotionProfileVisitor.hpp:44
运动定义接口
定义 MotionProfile.hpp:51
virtual errc_t makeEphemerisSpec(ScopedPtr< Ephemeris > &eph) const =0
生成特定星历
virtual errc_t makeEphemerisSimple(ScopedPtr< Ephemeris > &eph) const =0
生成简单星历
virtual void accept(MotionProfileVisitor &visitor)=0
接受访问者
简单上升运动模型,用于模拟运载火箭的上升阶段运动
定义 MotionSimpleAscent.hpp:40
void setLaunchPosition(double latitude, double longitude, double altitude)
设置发射位置
定义 MotionSimpleAscent.hpp:89
const TimePoint & getLaunchTime() const
获取发射时间
定义 MotionSimpleAscent.hpp:67
double getBurnoutAltitude() const
获取关机高度
定义 MotionSimpleAscent.hpp:129
void setUseScenTime(bool useScenTime)
设置是否使用场景时间
定义 MotionSimpleAscent.hpp:71
double getLaunchLatitude() const
获取发射纬度
定义 MotionSimpleAscent.hpp:98
double getBurnoutLatitude() const
获取关机纬度
定义 MotionSimpleAscent.hpp:121
double getLaunchLongitude() const
获取发射经度
定义 MotionSimpleAscent.hpp:102
void setBurnoutPosition(double latitude, double longitude, double altitude)
设置关机位置
定义 MotionSimpleAscent.hpp:112
void setBurnoutVelocity(double velocity)
设置关机速度
定义 MotionSimpleAscent.hpp:133
void setBurnoutTime(const TimePoint &time)
设置关机时间
定义 MotionSimpleAscent.hpp:79
double getLaunchAltitude() const
获取发射高度
定义 MotionSimpleAscent.hpp:106
const TimePoint & getBurnoutTime() const
获取关机时间
定义 MotionSimpleAscent.hpp:83
double getBurnoutLongitude() const
获取关机经度
定义 MotionSimpleAscent.hpp:125
bool getUseScenTime() const
获取是否使用场景时间
定义 MotionSimpleAscent.hpp:75
double getGranularity() const
获取时间粒度
定义 MotionSimpleAscent.hpp:145
void setLaunchTime(const TimePoint &time)
设置发射时间
定义 MotionSimpleAscent.hpp:63
double getBurnoutVelocity() const
获取关机速度
定义 MotionSimpleAscent.hpp:137
void setGranularity(double granularity)
设置时间粒度
定义 MotionSimpleAscent.hpp:141
作用域指针类
定义 ScopedPtr.hpp:65
绝对时间点
定义 TimePoint.hpp:106