🛰️航天仿真算法库 SpaceAST 0.3.1
载入中...
搜索中...
未找到
Access.hpp
浏览该文件的文档.
1
20
21#pragma once
22
23#include "AstGlobal.h"
24#include "AstUtil/ObjectNamed.hpp"
25#include "AstCore/BodyPosition.hpp"
26#include "AstCore/TimeIntervalList.hpp"
27
28AST_NAMESPACE_BEGIN
29
36struct AST_SIM_API AccessConfig
37{
38 bool useLightTimeDelay_{true};
39 EClockHost clockHost_{EClockHost::eFirstObject};
40 ETimeSense timeSense_{ETimeSense::eTransmit};
41 EAberrationType aberrationType_{EAberrationType::eAnnual};
42 double maxTimeStep_{360.0};
43 double minTimeStep_{0.01};
44 double timeConvergence_{0.005};
45 double absValueConvergence_{1e-14};
46 double relValueConvergence_{1e-08};
47};
48
51class AST_SIM_API Access : public ObjectNamed
52{
53public:
54 AST_OBJECT(Access)
55
56 Access() = default;
57 ~Access() override = default;
58
59public: // 相关配置
60
63 void setBaseObject(Object* obj) { baseObject_ = obj; }
64 Object* baseObject() const { return baseObject_.get(); }
66
69 void setTargetObject(Object* obj) { targetObject_ = obj; }
70 Object* targetObject() const { return targetObject_.get(); }
72
75 void setConfig(const AccessConfig& config) { config_ = config; }
76 const AccessConfig& config() const { return config_; }
78
86 void setSearchIntervals(const TimeIntervalList& intervals) { searchIntervals_ = intervals; }
87 const TimeIntervalList& searchIntervals() const { return searchIntervals_; }
89
90public: // 计算结果
91
94 const TimeIntervalList& accessIntervals() const { return accessIntervals_; }
95
96public:
100 errc_t compute();
101
102private:
103 WeakPtr<Object> baseObject_{};
104 WeakPtr<Object> targetObject_{};
105 AccessConfig config_{};
106 TimeIntervalList searchIntervals_{};
107 TimeIntervalList accessIntervals_{};
108};
109
111
112
119AST_SIM_API Access* aFindAccess(Scenario& scenario, Object& object1, Object& object2);
120
121
122
125AST_NAMESPACE_END
访问对象
定义 Access.hpp:52
const TimeIntervalList & accessIntervals() const
获取访问时段计算结果
定义 Access.hpp:94
命名对象
定义 ObjectNamed.hpp:36
对象基类,继承自该类的对象可以使用运行时类型信息相关功能,实现强弱引用计数、运行时元信息(属性访问、序列化等)等基础功能
定义 Object.hpp:95
场景类
定义 Scenario.hpp:44
共享指针
定义 SharedPtr.hpp:33
绝对时段列表
定义 TimeIntervalList.hpp:59
弱引用指针
定义 WeakPtr.hpp:35
ETimeSense
信号传输方向(定义光行时差计算中信号的传输方向)
定义 BodyPosition.hpp:93
EClockHost
时钟主体(用于光时计算中选择时间参考对象)
定义 BodyPosition.hpp:86
Access * aFindAccess(Scenario &scenario, Object &object1, Object &object2)
查找访问对象
定义 Access.cpp:139
EAberrationType
像差类型
定义 BodyPosition.hpp:100
访问计算算法配置
定义 Access.hpp:37