67AST_CORE_CAPI errc_t aGetGravityParameter(
const Body& body, StringView gravityModel,
double& gm);
77 AST_PROPERT(Orientation)
87 void setJplSpiceId(
int id) { jplSpiceId_ = id; }
91 void setJplIndex(
int index);
94 std::string getDirpath()
const;
115 double getGM()
const {
return gm_; }
124 double getJ2()
const {
return getJn(2); }
127 double getJ3()
const {
return getJn(3); }
130 double getJ4()
const {
return getJn(4); }
133 double getJ5()
const {
return getJn(5); }
136 double getJ6()
const {
return getJn(6); }
148 errc_t getPosICRF(
const TimePoint& tp, Vector3d& pos)
const;
156 errc_t getPosVelICRF(
const TimePoint& tp, Vector3d& pos, Vector3d& vel)
const;
161 errc_t getPos(const
TimePoint& tp, Vector3d& pos) const final;
162 errc_t getPosVel(const
TimePoint& tp, Vector3d& pos, Vector3d& vel) const final;
167 BodyShape* getShape()
const {
return shape_.get(); }
168 BodyShape* shape()
const {
return shape_.get(); }
178 BodyEphemeris* getEphemeris(EEphemerisSource ephemerisSource)
const;
182 const GravityField& gravityField()
const {
return gravityField_; }
192 Axes* axesInertial()
const {
return axesInertial_.get(); }
196 Axes* axesFixed()
const {
return axesFixed_.get(); }
200 Axes* axesMOD()
const {
return axesMOD_.get(); }
204 Axes* axesTOD()
const {
return axesTOD_.get(); }
210 Axes* getAxes(StringView name)
const;
273 HFrame makeFrameInertial()
const;
276 HFrame makeFrameFixed()
const;
279 HFrame makeFrameMOD()
const;
282 HFrame makeFrameTOD()
const;
285 HFrame makeFrameJ2000()
const;
288 HFrame makeFrameICRF()
const;
291 Frame* getFrameInertial()
const;
292 Frame* frameInertial()
const {
return getFrameInertial();}
295 Frame* getFrameFixed()
const;
296 Frame* frameFixed()
const {
return getFrameFixed();}
301 Axes* getEpochAxesReference()
const;
304 double getJn(
int n)
const {
return gravityField_.getJn(n); }
312 errc_t loadAstroDefinition(
BKVParser& parser);
318 errc_t loadEphemerisData(
BKVParser& parser);
327 errc_t loadMeanEarthDefinition(
BKVParser& parser);
334 double systemGM_{0.0};
338 GravityField gravityField_;
339 SharedPtr<BodyShape> shape_;
340 SharedPtr<BodyOrientation> orientation_;
341 SharedPtr<BodyEphemeris> ephemeris_;
343 SharedPtr<AxesBodyInertial> axesInertial_;
344 SharedPtr<AxesBodyFixed> axesFixed_;
345 SharedPtr<AxesBodyMOD> axesMOD_;
346 SharedPtr<AxesBodyTOD> axesTOD_;
348 mutable WeakPtr<Frame> frameInertial_;
349 mutable WeakPtr<Frame> frameFixed_;
351 mutable SharedPtr<BodyEphemeris> ephemerisDE_;
352 mutable SharedPtr<BodyEphemeris> ephemerisSpice_;
353 mutable SharedPtr<BodyEphemeris> ephemerisSpiceBarycenter_;
天体姿态/指向
定义 BodyOrientation.hpp:39
HAxes makeEpochAxes(Axes *sourceAxes, const TimePoint &tp, Axes *reference) const
创建新的历元轴系
定义 CelestialBody.hpp:219
double getJn(int n) const
获取Jn项
定义 CelestialBody.hpp:304
const std::string & getGravityModel() const
获取重力模型名称
定义 CelestialBody.hpp:104
BodyEphemeris * getEphemeris() const
获取天体星历
定义 CelestialBody.hpp:171
CelestialBody * getParent() const
获取父天体
定义 CelestialBody.hpp:100
Axes * getAxesTOD() const
获取天体TOD轴系
定义 CelestialBody.hpp:203
HAxes makeEpochAxes(Axes *sourceAxes, EventTime *time, Axes *reference) const
创建新的历元轴系
定义 CelestialBody.hpp:226
Axes * getAxesMOD() const
获取天体MOD轴系
定义 CelestialBody.hpp:199
Point * getPointCenter() const
获取天体中心
定义 CelestialBody.hpp:187
Axes * getAxesFixed() const
获取天体固定轴系
定义 CelestialBody.hpp:195
double getSystemGM() const
获取天体系引力常数(考虑天体的卫星)
定义 CelestialBody.hpp:118
BodyOrientation * getOrientation() const
获取天体姿态
定义 CelestialBody.hpp:175
const GravityField & getGravityField() const
获取天体重力场
定义 CelestialBody.hpp:181
Axes * getAxesInertial() const
获取天体惯性轴系
定义 CelestialBody.hpp:191
int getJplSpiceId() const
获取JPL SPICE ID
定义 CelestialBody.hpp:86