🛰️航天仿真算法库 SpaceAST 0.0.1
载入中...
搜索中...
未找到
BodyPosition.hpp
浏览该文件的文档.
1
20
21#pragma once
22
23#include "AstGlobal.h"
24
25AST_NAMESPACE_BEGIN
26
37AST_CORE_CAPI errc_t aBodyInBodyInertial(const TimePoint& time, Body* body, Body* referenceBody, Vector3d& posInReferenceBodyInertial);
38
39
45AST_CORE_CAPI errc_t aBodyInBodyFixed(const TimePoint& time, Body* body, Body* referenceBody, Vector3d& posInReferenceBodyFixed);
46
47
54AST_CORE_CAPI errc_t aBodyAERInTopocentric(const TimePoint& time, Body* body, Body* referenceBody, const GeodeticPoint& observerPosition, AER& aer);
55
56
62AST_CORE_CAPI errc_t aSunAERInTopocentric(const TimePoint& time, Body* referenceBody, const GeodeticPoint& observerPosition, AER& aer);
63
64
67{
68 eReception = 1, // 接收模式(观察者接收数据)
69 eTransmission = 1<<1, // 传输模式(观察者发送数据)
70 eStellarAberration = 1<<2, // 考虑像差
71 eNoStellarAberration = 1<<3, // 不考虑像差
72
73 // 下面是与SPICE库兼容的标志
74 eNone = 0, // 不考虑光行差和像差
75 eCN = eReception | eNoStellarAberration, // 接收模式,且不考虑像差
76 eCN_S = eReception | eStellarAberration, // 接收模式,且考虑像差
77 eXCN = eTransmission | eNoStellarAberration, // 传输模式,且不考虑像差
78 eXCN_S = eTransmission | eStellarAberration, // 传输模式,且考虑像差
79};
80
81A_ENUM_CLASS_FLAGS(EAberrationFlags)
82
83
84
89AST_CORE_CAPI errc_t aStellarAberration(const Vector3d& relPosition, const Vector3d& velObserver, EAberrationFlags aberrationFlags, Vector3d& relPositionCorrected);
90
91
101AST_CORE_CAPI errc_t aApparentPositionICRF(
102 Point* point, const TimePoint& time, const Vector3d& observerPosInSSBICRF, const Vector3d& observerVelInSSBICRF, EAberrationFlags aberrationFlags,
103 Vector3d& apparentRelPosition, double* lightTime
104);
105
106
118AST_CORE_CAPI errc_t aApparentPositionInFrame(
119 Point* point, const TimePoint& time, Frame* frame, const Vector3d& observerPos, const Vector3d& observerVel, EAberrationFlags aberrationFlags,
120 Vector3d& apparentRelPosition, double* lightTime
121);
122
123
130AST_CORE_CAPI void aVectorRotation(const Vector3d& v, const Vector3d& axis, double theta, Vector3d& r);
131
132
135AST_NAMESPACE_END
errc_t aBodyInBodyFixed(const TimePoint &time, Body *body, Body *referenceBody, Vector3d &posInReferenceBodyFixed)
计算天体在参考天体的固连系中的位置,不考虑光行差和像差
定义 BodyPosition.cpp:39
errc_t aSunAERInTopocentric(const TimePoint &time, Body *observerBody, const GeodeticPoint &observerPosition, AER &aer)
计算太阳在站心坐标系下的方位角、仰角和距离
定义 BodyPosition.cpp:64
errc_t aBodyInBodyInertial(const TimePoint &time, Body *body, Body *referenceBody, Vector3d &posInReferenceBodyInertial)
计算天体在参考天体的惯性坐标系中的位置,不考虑光行差和像差
定义 BodyPosition.cpp:32
errc_t aBodyAERInTopocentric(const TimePoint &time, Body *body, Body *referenceBody, const GeodeticPoint &observerPosition, AER &aer)
计算天体在站心坐标系下的方位角、仰角和距离
定义 BodyPosition.cpp:47
EAberrationFlags
光行差和像差标志位
定义 BodyPosition.hpp:67