🛰️航天仿真算法库 SpaceAST 0.3.1
载入中...
搜索中...
未找到
BodyShape.hpp
浏览该文件的文档.
1
20
21#pragma once
22
23#include "AstGlobal.h"
24#include "AstUtil/Object.hpp"
25#include "AstUtil/ObjectNamed.hpp"
26#include "AstCore/GeodeticPoint.hpp"
27#include "AstMath/Vector.hpp"
28
29AST_NAMESPACE_BEGIN
30
32class AST_CORE_API BodyShape : public ObjectNamed
33{
34public:
35 AST_OBJECT(BodyShape)
36
37 BodyShape();
38
39 virtual double majorAxis() const = 0;
40
44 virtual void transform(const Vector3d& cartesian, GeodeticPoint& detic) const = 0;
45
49 virtual void transform(const GeodeticPoint& detic, Vector3d& cartesian) const = 0;
50
62 virtual errc_t transform(const Vector3d& pos, const Vector3d& vel,
63 GeodeticPoint& detic, LatLonAlt& rate) const;
64
72 virtual errc_t transform(const GeodeticPoint& detic, const LatLonAlt& rate,
73 Vector3d& pos, Vector3d& vel) const;
74
78 A_ALWAYS_INLINE GeodeticPoint transform(const Vector3d& cartesian) const
79 {
80 GeodeticPoint detic;
81 this->transform(cartesian, detic);
82 return detic;
83 }
84
88 A_ALWAYS_INLINE Vector3d transform(const GeodeticPoint& point) const
89 {
90 Vector3d cartesian;
91 this->transform(point, cartesian);
92 return cartesian;
93 }
94};
95
96
98AST_CORE_CAPI BodyShape* aWGS84Spheroid();
99
101AST_CORE_CAPI BodyShape* aCGCS2000Spheroid();
102
103
104
105AST_NAMESPACE_END
天体形状基类
定义 BodyShape.hpp:33
A_ALWAYS_INLINE GeodeticPoint transform(const Vector3d &cartesian) const
将笛卡尔坐标(天体固连系)转换为大地坐标
定义 BodyShape.hpp:78
virtual void transform(const GeodeticPoint &detic, Vector3d &cartesian) const =0
将大地坐标转换为笛卡尔坐标(天体固连系)
A_ALWAYS_INLINE Vector3d transform(const GeodeticPoint &point) const
将大地坐标转换为笛卡尔坐标(天体固连系)
定义 BodyShape.hpp:88
virtual void transform(const Vector3d &cartesian, GeodeticPoint &detic) const =0
将笛卡尔坐标(天体固连系)转换为大地坐标
大地坐标
定义 GeodeticPoint.hpp:33
纬度、经度、高度坐标
定义 LatLonAlt.hpp:30
命名对象
定义 ObjectNamed.hpp:36