🛰️航天仿真算法库 SpaceAST 0.3.1
载入中...
搜索中...
未找到
SpheroidShape.hpp
浏览该文件的文档.
1
20
21#pragma once
22
23#include "AstGlobal.h"
24#include "BodyShape.hpp"
25
26AST_NAMESPACE_BEGIN
27
30class AST_CORE_API SpheroidShape final : public BodyShape
31{
32public:
33 AST_OBJECT(SpheroidShape)
34 AST_PROPERT(majorAxis)
35 AST_PROPERT(flatfactor)
36 static SpheroidShape* NewFromMajorAxisFlatFactor(double majorAxis, double flatFactor);
37 static SpheroidShape* NewFromMajorMinorAxis(double majorAxis, double minorAxis);
38
39 SpheroidShape() = default;
40 SpheroidShape(double majorAxis, double flatFactor);
41 using BodyShape::transform;
42
43 double majorAxis() const override{return majorAxis_;}
44
45 void transform(const Vector3d& cartesian, GeodeticPoint& detic) const override;
46
47 void transform(const GeodeticPoint& detic, Vector3d& cartesian) const override;
48
49 errc_t transform(const Vector3d& pos, const Vector3d& vel,
50 GeodeticPoint& detic, LatLonAlt& rate) const override;
51
52 errc_t transform(const GeodeticPoint& detic, const LatLonAlt& rate,
53 Vector3d& pos, Vector3d& vel) const override;
54public:
55 double flatFactor() const { return flatFactor_; }
56PROPERTIES:
57 length_d majorAxis_{};
58 double flatFactor_{};
59};
60
61AST_NAMESPACE_END
天体形状基类
定义 BodyShape.hpp:33
virtual void transform(const Vector3d &cartesian, GeodeticPoint &detic) const =0
将笛卡尔坐标(天体固连系)转换为大地坐标
大地坐标
定义 GeodeticPoint.hpp:33
纬度、经度、高度坐标
定义 LatLonAlt.hpp:30
旋转椭球体/扁球体
定义 SpheroidShape.hpp:31