24#include "AstCore/Ephemeris.hpp"
25#include "AstCore/TimePoint.hpp"
26#include "AstCore/Frame.hpp"
27#include "AstMath/Vector.hpp"
49 errc_t getInterval(
TimeInterval& interval)
const override;
51 void setFrame(
Frame* frame){frame_ = frame;}
52 void setTimes(
const std::vector<double>& times);
53 void setTimes(std::vector<double>&& times);
54 void setPositions(
const std::vector<Vector3d>& positions){positions_ = positions;}
55 void setPositions(std::vector<Vector3d>&& positions){positions_ = std::move(positions);}
56 void setVelocities(
const std::vector<Vector3d>& velocities){velocities_ = velocities;}
57 void setVelocities(std::vector<Vector3d>&& velocities){velocities_ = std::move(velocities);}
58 void setEpoch(
const TimePoint& epoch){epoch_ = epoch;}
59 void setInterpolateOrder(
int order){interpolateOrder_ = order;}
61 size_t size()
const{
return times_.size();}
63 int findIndex(
double delta)
const;
70 double averageStep_{60};
71 int interpolateOrder_{5};
可变步长拉格朗日插值星历
定义 EphemerisLagrangeVar.hpp:40
SharedPtr< Frame > frame_
参考坐标系
定义 EphemerisLagrangeVar.hpp:65
std::vector< double > times_
时间(单位:秒)
定义 EphemerisLagrangeVar.hpp:66
std::vector< Vector3d > velocities_
速度(单位:米/秒)
定义 EphemerisLagrangeVar.hpp:68
std::vector< Vector3d > positions_
位置(单位:米)
定义 EphemerisLagrangeVar.hpp:67
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:59
绝对时间点
定义 TimePoint.hpp:106