🛰️航天仿真算法库 SpaceAST 0.0.1
载入中...
搜索中...
未找到
BodyEphemerisDE.hpp
1
20
21#pragma once
22
23#include "AstGlobal.h"
24#include "AstCore/BodyEphemeris.hpp"
25#include "AstCore/CelestialBody.hpp"
26
27AST_NAMESPACE_BEGIN
28
35class AST_CORE_API BodyEphemerisDE : public BodyEphemeris
36{
37public:
38 AST_OBJECT(BodyEphemerisDE)
39 AST_PROPERT(JplIndex)
40 BodyEphemerisDE() = default;
41
42 BodyEphemerisDE(const BodyEphemerisDE&) = delete;
43 BodyEphemerisDE& operator=(const BodyEphemerisDE&) = delete;
44
45 BodyEphemerisDE(int jplIndex)
46 : jplIndex_(jplIndex)
47 {}
49 : body_(body)
50 , jplIndex_(body->getJplIndex())
51 {}
52
53 ~BodyEphemerisDE() override = default;
54
55 errc_t getPosICRF(const TimePoint& tp, Vector3d& pos) const override;
56
57 errc_t getPosVelICRF(const TimePoint& tp, Vector3d& pos, Vector3d& vel) const override;
58
59 errc_t getInterval(TimeInterval& interval) const override;
60
61PROPERTIES:
62 int getJplIndex() const;
63
64 void setJplIndex(int jplIndex){jplIndex_ = jplIndex;}
65protected:
66 CelestialBody* body_{nullptr};
67 int jplIndex_{-1};
68};
69
70
73AST_NAMESPACE_END
定义 BodyEphemerisDE.hpp:36
天体星历接口
定义 BodyEphemeris.hpp:38
virtual errc_t getPosVelICRF(const TimePoint &tp, Vector3d &pos, Vector3d &vel) const =0
获取天体在ICRF坐标系下的位置和速度
virtual errc_t getPosICRF(const TimePoint &tp, Vector3d &pos) const =0
获取天体在ICRF坐标系下的位置
天体
定义 CelestialBody.hpp:72
int getJplIndex() const
获取JPL索引
定义 CelestialBody.hpp:90
时间区间
定义 TimeInterval.hpp:64
绝对时间点
定义 TimePoint.hpp:108