52 double intensity_{1.0};
53 std::string currentCondition_{};
54 std::string obstruction_{};
56 const TimePoint& getTime()
const {
return time_; }
57 double getIntensity()
const {
return intensity_; }
58 double getShadowRatio()
const {
return 1.0 - intensity_; }
59 const std::string& getCurrentCondition()
const {
return currentCondition_; }
60 const std::string& getObstruction()
const {
return obstruction_; }
63 static DataElements Elements();
65 DataGroupSolarIntensity() =
default;
66 ~DataGroupSolarIntensity() =
default;
68 errc_t
calculate(
const TimeList& timeList, VariantVector& result)
const override;
69 errc_t
calculate(
const TimeList& timeList, std::vector<Data>& result)
const;
70 errc_t
calculate(
const TimeList& timeList, Span<Data> result)
const;
71 const DataElements& getElements()
const override;
75 Point* getPoint()
const {
return point_.get(); }
76 void setPoint(Point* p) { point_ = p; }
77 void setLightSource(CelestialBody* b) { lightSource_ = b; }
78 CelestialBody* getLightSource()
const {
return lightSource_.get(); }
79 void setOccultingBodies(
const std::vector<HCelestialBody>& bodies) { occultingBodies_ = bodies; }
83 WeakPtr<Point> point_{
nullptr};
84 WeakPtr<CelestialBody> lightSource_{
nullptr};
85 std::vector<HCelestialBody> occultingBodies_{};