File indexing completed on 2024-03-24 15:17:45

0001 /*
0002     SPDX-FileCopyrightText: 2018 Valentin Boettcher <valentin@boettcher.cf (do not hesitate to contact)>
0003     matrix               : @hiro98@tchncs.de
0004 
0005     SPDX-License-Identifier: GPL-2.0-or-later
0006 */
0007 
0008 #pragma once
0009 #include "skycomponent.h"
0010 #include "ksearthshadow.h" // in here for inline definitions
0011 
0012 class SkyComposite;
0013 class SkyPainter;
0014 
0015 /**
0016  * @brief The EarthShadowComponent class
0017  * @short A simple skycomponent for the KSEarthShadow.
0018  */
0019 class EarthShadowComponent : public SkyComponent
0020 {
0021 public:
0022     EarthShadowComponent(SkyComposite * parent, KSEarthShadow * shadow);
0023 
0024     void update(KSNumbers *num) override;
0025     void updateSolarSystemBodies(KSNumbers *num) override;
0026     bool selected() override { return m_shadow->shouldUpdate(); }
0027     void draw(SkyPainter *skyp) override;
0028 
0029 private:
0030     KSEarthShadow * m_shadow;
0031     bool m_up_to_date;
0032 };