🛰️航天仿真算法库 SpaceAST 0.0.1
载入中...
搜索中...
未找到
LocalHorizonalFrame.hpp
浏览该文件的文档.
1
20
21#pragma once
22
23#include "AstGlobal.h"
24#include "AstCore/GeodeticPoint.hpp"
25#include "AstMath/Vector.hpp"
26
27AST_NAMESPACE_BEGIN
28
35AST_CORE_CAPI void aGeodeticToNEDTransform(const GeodeticPoint& origin, Rotation& rot);
36
38AST_CORE_CAPI void aGeodeticToENUTransform(const GeodeticPoint& origin, Rotation& rot);
39
40
46AST_CORE_API void aGeodeticToBodyFixed(const GeodeticPoint& point, Vector3d& bodyFixed, double radius, double flatFact);
47
53AST_CORE_API void aBodyFixedToGeodetic(const Vector3d& bodyFixed, GeodeticPoint& point, double radius, double flatFact);
54
55
60AST_CORE_API void aGeodeticToBodyFixed(const GeodeticPoint& point, Vector3d& bodyFixed, double radius);
61
62
67AST_CORE_API void aBodyFixedToGeodetic(const Vector3d& bodyFixed, GeodeticPoint& point, double radius);
68
69
76AST_CORE_API void aGeodeticToBodyFixed(const GeodeticPoint& point, Vector3d& bodyFixed, double xRadius, double yRadius, double zRadius);
77
78
85AST_CORE_API void aBodyFixedToGeodetic(const Vector3d& bodyFixed, GeodeticPoint& point, double xRadius, double yRadius, double zRadius);
86
87
92AST_CORE_API void aGeodeticToNED(const Vector3d& posInBodyFixed, const GeodeticPoint& origin, Vector3d& ned, BodyShape* bodyShape);
93
98AST_CORE_API void aGeodeticToNED(const GeodeticPoint& point, const GeodeticPoint& origin, Vector3d& ned, BodyShape* bodyShape);
99
104AST_CORE_API void aNEDToGeodetic(const Vector3d& ned, const GeodeticPoint& origin, GeodeticPoint& point, BodyShape* bodyShape);
105
110AST_CORE_API void aGeodeticToENU(const Vector3d& posInBodyFixed, const GeodeticPoint& origin, Vector3d& enu, BodyShape* bodyShape);
111
116AST_CORE_API void aGeodeticToENU(const GeodeticPoint& point, const GeodeticPoint& origin, Vector3d& enu, BodyShape* bodyShape);
117
122AST_CORE_API void aENUToGeodetic(const Vector3d& enu, const GeodeticPoint& origin, GeodeticPoint& point, BodyShape* bodyShape);
123
124
125// ----------------------------------
126// MATLAB Navigation Toolbox 同名函数
127// ----------------------------------
128
129
130A_ALWAYS_INLINE Vector3d lla2ned(const GeodeticPoint& lla, const GeodeticPoint& lla0, BodyShape* bodyShape)
131{
132 Vector3d ned;
133 aGeodeticToNED(lla, lla0, ned, bodyShape);
134 return ned;
135}
136
137A_ALWAYS_INLINE GeodeticPoint ned2lla(const Vector3d& ned, const GeodeticPoint& lla0, BodyShape* bodyShape)
138{
139 GeodeticPoint target;
140 aNEDToGeodetic(ned, lla0, target, bodyShape);
141 return target;
142}
143
144A_ALWAYS_INLINE Vector3d lla2enu(const GeodeticPoint& lla, const GeodeticPoint& lla0, BodyShape* bodyShape)
145{
146 Vector3d enu;
147 aGeodeticToENU(lla, lla0, enu, bodyShape);
148 return enu;
149}
150
151A_ALWAYS_INLINE GeodeticPoint enu2lla(const Vector3d& enu, const GeodeticPoint& lla0, BodyShape* bodyShape)
152{
153 GeodeticPoint target;
154 aENUToGeodetic(enu, lla0, target, bodyShape);
155 return target;
156}
157
158
161AST_NAMESPACE_END
void aENUToGeodetic(const Vector3d &enu, const GeodeticPoint &origin, GeodeticPoint &point, BodyShape *bodyShape)
ENU坐标转大地坐标
定义 LocalHorizonalFrame.cpp:291
void aGeodeticToBodyFixed(const GeodeticPoint &lla, Vector3d &cart, double radius, double flatFact)
大地坐标转天体固连系坐标
定义 LocalHorizonalFrame.cpp:94
void aGeodeticToNED(const Vector3d &posInBodyFixed, const GeodeticPoint &origin, Vector3d &ned, BodyShape *bodyShape)
天体固连系坐标转NED坐标
定义 LocalHorizonalFrame.cpp:246
void aGeodeticToNEDTransform(const GeodeticPoint &origin, Rotation &rot)
大地坐标(天体固连系)转NED坐标系的旋转变换
定义 LocalHorizonalFrame.cpp:35
void aBodyFixedToGeodetic(const Vector3d &cart, GeodeticPoint &lla, double radius, double flatFact)
天体固连系坐标转大地坐标
定义 LocalHorizonalFrame.cpp:48
void aNEDToGeodetic(const Vector3d &ned, const GeodeticPoint &origin, GeodeticPoint &point, BodyShape *bodyShape)
NED坐标转大地坐标
定义 LocalHorizonalFrame.cpp:264
void aGeodeticToENUTransform(const GeodeticPoint &origin, Rotation &rot)
大地坐标(天体固连系)转ENU坐标系的旋转变换
定义 LocalHorizonalFrame.cpp:41
void aGeodeticToENU(const Vector3d &posInBodyFixed, const GeodeticPoint &origin, Vector3d &enu, BodyShape *bodyShape)
天体固连系坐标转ENU坐标
定义 LocalHorizonalFrame.cpp:273