25#include "AstCore/Ephemeris.hpp"
26#include "AstCore/TimePoint.hpp"
27#include "AstCore/Frame.hpp"
28#include "AstCore/Interval.hpp"
29#include "AstMath/Vector.hpp"
71 errc_t saveFrom(
const Ephemeris* source,
const std::string& filepath);
76 errc_t open(
const std::string& filepath);
82 errc_t getInterval(
TimeInterval& interval)
const override;
86 void fillWindow(
size_t idx)
const;
89 int findIndex(
double delta)
const;
91 static constexpr uint32_t MAGIC = 0x41535445;
92 static constexpr uint32_t VERSION = 1;
93 static constexpr size_t WINDOW_SIZE = 256;
94 static constexpr int INTERP_ORDER = 5;
98 double averageStep_{60.0};
99 size_t pointCount_{0};
100 std::string filepath_;
101 std::string frameName_;
105 static constexpr size_t HEADER_BASE = 56;
106 static constexpr size_t POINT_BYTES = 56;
107 mutable std::vector<double> winTimes_;
108 mutable std::vector<Vector3d> winPos_;
109 mutable std::vector<Vector3d> winVel_;
110 mutable size_t winStart_{0};
文件后备星历
定义 EphemerisBinary.hpp:59
virtual errc_t getPos(const TimePoint &tp, Vector3d &pos) const override=0
获取点在指定时间点的位置,相对于点的参考坐标系
virtual errc_t getPosVel(const TimePoint &tp, Vector3d &pos, Vector3d &vel) const override=0
获取点在指定时间点的位置和速度,相对于点的参考坐标系
virtual Frame * getFrame() const override=0
获取点所在的参考坐标系
时间区间
定义 TimeInterval.hpp:60
绝对时间点
定义 TimePoint.hpp:107