🛰️航天仿真算法库 SpaceAST 0.0.1
载入中...
搜索中...
未找到
SpatialCondLighting.hpp
浏览该文件的文档.
1
19
20#pragma once
21
22#include "SpatialCondition.hpp"
23#include "AstCore/SharedPtr.hpp"
24#include "AstCore/CelestialBody.hpp"
25#include "AstCore/Eclipse.hpp" // for ELightingType
26
27#include <vector>
28
29AST_NAMESPACE_BEGIN
30
34class AST_CORE_API SpatialCondLighting final : public SpatialCondition
35{
36public:
37 SpatialCondLighting() = default;
38 ~SpatialCondLighting() override = default;
39
40 void accept(SpatialConditionVisitor& visitor) override { visitor.visit(*this); }
41 errc_t evaluate(const TimePoint& time, const Vector3d& position, bool& result) const override;
42
45 void setLightingType(ELightingType type) { lightingType_ = type; }
46 ELightingType getLightingType() const { return lightingType_; }
48
51 void addEclipsingBody(const SharedPtr<CelestialBody>& body) { eclipsingBodies_.push_back(body); }
52 size_t getEclipsingBodyCount() const { return eclipsingBodies_.size(); }
53 const std::vector<SharedPtr<CelestialBody>>& getEclipsingBodies() const { return eclipsingBodies_; }
55
56private:
57 ELightingType lightingType_{ELightingType::eSunlight};
58 std::vector<SharedPtr<CelestialBody>> eclipsingBodies_;
59};
60
61AST_NAMESPACE_END
空间条件基类
Class * type() const
获取对象类型
定义 Object.hpp:244
光照空间条件
定义 SpatialCondLighting.hpp:35
void accept(SpatialConditionVisitor &visitor) override
接受访问者
定义 SpatialCondLighting.hpp:40
空间条件访问者接口
定义 SpatialConditionVisitor.hpp:39
空间条件基类
定义 SpatialCondition.hpp:33
virtual errc_t evaluate(const TimePoint &time, const Vector3d &position, bool &result) const =0
在指定时间和位置评估条件
绝对时间点
定义 TimePoint.hpp:108
ELightingType
光照类型
定义 Eclipse.hpp:35