🛰️航天仿真算法库 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
40class AST_CORE_API ThirdBodyForce: public ForceModel
41{
42public:
43 AST_OBJECT(ThirdBodyForce)
44
45 ThirdBodyForce() = default;
46
48 : body_(body)
49 {}
50
53 GravityForce& gravity(){return gravity_;}
54 const GravityForce& gravity() const {return gravity_;}
55
58 PointMassForce& pointMass(){return pointMass_;}
59 const PointMassForce& pointMass() const {return pointMass_;}
60
63 BodyAttraction& bodyAttraction();
64
67 const BodyAttraction& bodyAttraction() const;
68
71 EBodyAttractionType bodyAttractionType() const;
72
75 void setAttractionType(EBodyAttractionType type);
76
78 CelestialBody* body() const;
79
81 void setBody(CelestialBody* body);
82
84 EEphemerisSource ephemerisSource() const{return ephemerisSource_;}
85
87 void setEphemerisSource(EEphemerisSource source){ephemerisSource_ = source;}
88private:
89 HCelestialBody body_;
90 EEphemerisSource ephemerisSource_{EEphemerisSource::eBodyEphemeris};
91 EBodyAttractionType attractionType_{EBodyAttractionType::ePointMass};
92 PointMassForce pointMass_{};
93 GravityForce gravity_{};
94};
95
96
99AST_NAMESPACE_END
天体
定义 CelestialBody.hpp:72
力模型
定义 ForceModel.hpp:50
定义 GravityForce.hpp:43
点质量引力模型/
定义 PointMassForce.hpp:35
三体引力模型
定义 ThirdBodyForce.hpp:41
EEphemerisSource ephemerisSource() const
获取星历来源
定义 ThirdBodyForce.hpp:84
PointMassForce & pointMass()
获取点质量引力模型
定义 ThirdBodyForce.hpp:58
GravityForce & gravity()
获取引力场模型
定义 ThirdBodyForce.hpp:53
void setEphemerisSource(EEphemerisSource source)
设置星历来源
定义 ThirdBodyForce.hpp:87
EEphemerisSource
星历来源
定义 CelestialBody.hpp:53