🛰️航天仿真算法库 SpaceAST
0.0.1
载入中...
搜索中...
未找到
EphemerisTwoBody.hpp
浏览该文件的文档.
1
20
21
#pragma once
22
23
#include "AstGlobal.h"
24
#include "AstCore/Ephemeris.hpp"
25
#include "AstCore/TimePoint.hpp"
26
#include "AstCore/BuiltinFrame.hpp"
27
#include "AstCore/OrbitElement.hpp"
28
#include "AstMath/Vector.hpp"
29
30
AST_NAMESPACE_BEGIN
31
39
class
AST_CORE_API
EphemerisTwoBody
final:
public
Ephemeris
40
{
41
public
:
42
static
EphemerisTwoBody
* New(
Frame
* frame,
const
TimePoint
& epoch,
const
CartState
& initstate);
43
static
EphemerisTwoBody
* New(
Frame
* frame,
double
gm,
const
TimePoint
& epoch,
const
CartState
& initstate);
44
45
EphemerisTwoBody
();
46
EphemerisTwoBody
(
Frame
* frame,
double
gm,
const
TimePoint
& epoch,
const
CartState
& initstate);
47
~EphemerisTwoBody
()
override
=
default
;
48
void
setFrame(
Frame
* frame){ frame_ = frame; }
49
void
setGM(
double
gm){ gm_ = gm; }
50
double
getGM()
const
{
return
gm_; }
51
void
setEpoch(
const
TimePoint
& epoch){ epoch_ = epoch; }
52
const
TimePoint
& getEpoch()
const
{
return
epoch_; }
53
void
setOrbitState(
const
CartState
& initstate){ initstate_ = initstate; }
54
void
getOrbitState(
CartState
& initstate)
const
{ initstate = initstate_; }
55
public
:
56
Frame
*
getFrame
()
const override
;
57
errc_t
getPos
(
const
TimePoint
& tp, Vector3d& pos)
const override
;
58
errc_t
getPosVel
(
const
TimePoint
& tp, Vector3d& pos, Vector3d& vel)
const override
;
59
errc_t getInterval(
TimeInterval
& interval)
const override
;
60
protected
:
61
SharedPtr<Frame>
frame_{
aFrameECI
()};
62
double
gm_{0.0};
63
TimePoint
epoch_{};
64
CartState
initstate_{};
65
};
66
69
AST_NAMESPACE_END
ast::CartState
直角坐标
定义
OrbitElement.hpp:46
ast::EphemerisTwoBody
二体星历
定义
EphemerisTwoBody.hpp:40
ast::Ephemeris
星历接口
定义
Ephemeris.hpp:43
ast::Ephemeris::getPos
virtual errc_t getPos(const TimePoint &tp, Vector3d &pos) const override=0
获取点在指定时间点的位置,相对于点的参考坐标系
ast::Ephemeris::getPosVel
virtual errc_t getPosVel(const TimePoint &tp, Vector3d &pos, Vector3d &vel) const override=0
获取点在指定时间点的位置和速度,相对于点的参考坐标系
ast::Ephemeris::getFrame
virtual Frame * getFrame() const override=0
获取点所在的参考坐标系
ast::Frame
坐标系类
定义
Frame.hpp:59
ast::SharedPtr
共享指针
定义
SharedPtr.hpp:33
ast::TimeInterval
时间区间
定义
TimeInterval.hpp:59
ast::TimePoint
绝对时间点
定义
TimePoint.hpp:106
ast::aFrameECI
Frame * aFrameECI()
地球惯性系
定义
BuiltinFrame.cpp:28
src
AstCore
Orbit
Ephemeris
EphemerisTwoBody.hpp
制作者
1.12.0