🛰️航天仿真算法库 SpaceAST 0.0.1
载入中...
搜索中...
未找到
SpatialCondAccessToObjects.hpp
浏览该文件的文档.
1
19
20#pragma once
21
22#include "SpatialCondition.hpp"
23#include "AstCore/WeakPtr.hpp"
24#include "AstCore/BodyPosition.hpp"
25
27
28AST_NAMESPACE_BEGIN
29
30class Object;
31
35class AST_CORE_API SpatialCondAccessToObjects final : public SpatialCondition
36{
37public:
39 ~SpatialCondAccessToObjects() override = default;
40
41 void accept(SpatialConditionVisitor& visitor) override { visitor.visit(*this); }
42 errc_t evaluate(const TimePoint& time, const Vector3d& position, bool& result) const override;
43
46 void setSecondObject(Object* obj);
47 Object* getSecondObject() const { return secondObject_.get(); }
49
52 void setApplyLTDelay(bool apply) { applyLTDelay_ = apply; }
53 bool getApplyLTDelay() const { return applyLTDelay_; }
55
58 void setClockHost(EClockHost host) { clockHost_ = host; }
59 EClockHost getClockHost() const { return clockHost_; }
61
64 void setTimeSense(ETimeSense sense) { timeSense_ = sense; }
65 ETimeSense getTimeSense() const { return timeSense_; }
67
70 void setAberrationType(EAberrationType type) { aberrationType_ = type; }
71 EAberrationType getAberrationType() const { return aberrationType_; }
73
76 void setDifferentiation(const DifferentiationSettings& ds) { diffSettings_ = ds; }
77 const DifferentiationSettings& getDifferentiation() const { return diffSettings_; }
79
80private:
81 WeakPtr<Object> secondObject_;
82 bool applyLTDelay_{true};
83 EClockHost clockHost_{EClockHost::eFirstObject};
84 ETimeSense timeSense_{ETimeSense::eTransmit};
85 EAberrationType aberrationType_{EAberrationType::eAnnual};
86 DifferentiationSettings diffSettings_;
87};
88
89AST_NAMESPACE_END
空间计算的导数/时间差分设置
空间条件基类
对象基类,继承自该类的对象可以使用运行时类型信息相关功能,实现强弱引用计数、运行时元信息(属性访问、序列化等)等基础功能
定义 Object.hpp:95
Class * type() const
获取对象类型
定义 Object.hpp:244
物体可见性空间条件
定义 SpatialCondAccessToObjects.hpp:36
void accept(SpatialConditionVisitor &visitor) override
接受访问者
定义 SpatialCondAccessToObjects.hpp:41
空间条件访问者接口
定义 SpatialConditionVisitor.hpp:39
空间条件基类
定义 SpatialCondition.hpp:33
virtual errc_t evaluate(const TimePoint &time, const Vector3d &position, bool &result) const =0
在指定时间和位置评估条件
绝对时间点
定义 TimePoint.hpp:108
ETimeSense
时间方向(用于光时计算中定义传输/接收方向)
定义 BodyPosition.hpp:93
EClockHost
时钟主机(用于光时计算中选择时间参考对象)
定义 BodyPosition.hpp:86
EAberrationType
光行差类型
定义 BodyPosition.hpp:100