🛰️航天仿真算法库 SpaceAST 0.0.1
载入中...
搜索中...
未找到
ThirdBodyForce.hpp
浏览该文件的文档.
1
20
21#pragma once
22
23#include "AstGlobal.h"
24#include "BodyAttraction.hpp"
25#include "AstCore/CelestialBody.hpp"
26#include "AstCore/PointMassForce.hpp"
27#include "AstCore/GravityForce.hpp"
28#include "AstUtil/ClonePtr.hpp"
29
30AST_NAMESPACE_BEGIN
31
39{
41 eJplDE,
42 eJplSpice,
43};
44
45
47class AST_CORE_API ThirdBodyForce: public ForceModel
48{
49public:
50 ThirdBodyForce() = default;
51
53 : body_(body)
54 {}
55
58 GravityForce& gravity(){return gravity_;}
59 const GravityForce& gravity() const {return gravity_;}
60
63 PointMassForce& pointMass(){return pointMass_;}
64 const PointMassForce& pointMass() const {return pointMass_;}
65
68 BodyAttraction& bodyAttraction();
69
72 const BodyAttraction& bodyAttraction() const;
73
76 EBodyAttractionType bodyAttractionType() const;
77
80 void setAttractionType(EBodyAttractionType type);
81
83 CelestialBody* body() const;
84
86 void setBody(CelestialBody* body);
87
89 EEphemerisSource ephemerisSource() const{return ephemerisSource_;}
90
92 void setEphemerisSource(EEphemerisSource source){ephemerisSource_ = source;}
93private:
94 HCelestialBody body_;
95 EEphemerisSource ephemerisSource_{EEphemerisSource::eBodyEphemeris};
96 EBodyAttractionType attractionType_{EBodyAttractionType::ePointMass};
97 PointMassForce pointMass_{};
98 GravityForce gravity_{};
99};
100
101
104AST_NAMESPACE_END
天体
定义 CelestialBody.hpp:52
力模型
定义 ForceModel.hpp:54
定义 GravityForce.hpp:43
点质量引力模型/
定义 PointMassForce.hpp:35
三体引力模型
定义 ThirdBodyForce.hpp:48
EEphemerisSource ephemerisSource() const
获取星历来源
定义 ThirdBodyForce.hpp:89
PointMassForce & pointMass()
获取点质量引力模型
定义 ThirdBodyForce.hpp:63
GravityForce & gravity()
获取引力场模型
定义 ThirdBodyForce.hpp:58
void setEphemerisSource(EEphemerisSource source)
设置星历来源
定义 ThirdBodyForce.hpp:92
@ eJplDE
来自JPL DE文件
EEphemerisSource
星历来源
定义 ThirdBodyForce.hpp:39
@ eJplSpice
JPL SPICE 星历
@ eBodyEphemeris
天体星历