🛰️航天仿真算法库 SpaceAST 0.0.1
载入中...
搜索中...
未找到
EclipseCalculator.hpp
浏览该文件的文档.
1
20
21#pragma once
22
23#include "AstGlobal.h"
24#include "AstCore/CelestialBody.hpp"
25#include <vector>
26
27AST_NAMESPACE_BEGIN
28
36class AST_CORE_API EclipseCalculator
37{
38public:
39 EclipseCalculator() = default;
40 explicit EclipseCalculator(CelestialBody* lightSource)
41 : lightSource_(lightSource)
42 {
43 }
44 virtual ~EclipseCalculator() = default;
45
51 virtual double getLightingRatio(const TimePoint& time, const Vector3d& position, Frame* frame) = 0;
52
54 CelestialBody* lightSource() const {return lightSource_;}
55
57 void setLightSource(CelestialBody* lightSource) {lightSource_ = lightSource;}
58
60 void setOccultingBodies(const std::vector<HCelestialBody>& occultingBodies) {occultingBodies_ = occultingBodies;}
61
63 void addOccultingBody(HCelestialBody occultingBody) {occultingBodies_.push_back(occultingBody);}
64protected:
65 HCelestialBody lightSource_{nullptr};
66 std::vector<HCelestialBody> occultingBodies_;
67};
68
69
70
73AST_NAMESPACE_END
天体
定义 CelestialBody.hpp:72
阴影光照计算器
定义 EclipseCalculator.hpp:37
std::vector< HCelestialBody > occultingBodies_
阴影体列表
定义 EclipseCalculator.hpp:66
virtual double getLightingRatio(const TimePoint &time, const Vector3d &position, Frame *frame)=0
计算光照强度
void setLightSource(CelestialBody *lightSource)
设置光源体
定义 EclipseCalculator.hpp:57
void addOccultingBody(HCelestialBody occultingBody)
添加遮挡体
定义 EclipseCalculator.hpp:63
CelestialBody * lightSource() const
获取光源体
定义 EclipseCalculator.hpp:54
void setOccultingBodies(const std::vector< HCelestialBody > &occultingBodies)
设置遮挡体列表
定义 EclipseCalculator.hpp:60
坐标系类
定义 Frame.hpp:60
绝对时间点
定义 TimePoint.hpp:107