File indexing completed on 2024-04-14 14:11:04

0001 /*
0002     SPDX-FileCopyrightText: 2016 Artem Fedoskin <afedoskin3@gmail.com>
0003     SPDX-License-Identifier: GPL-2.0-or-later
0004 */
0005 
0006 #pragma once
0007 
0008 #include "skyitem.h"
0009 
0010 class KSComet;
0011 class SkyObject;
0012 class SatellitesComponent;
0013 
0014 /**
0015  * @class SatellitesItem
0016  * This class handles representation of satellites in SkyMapLite
0017  *
0018  * @author Artem Fedoskin
0019  * @version 1.0
0020  */
0021 
0022 class SatellitesItem : public SkyItem
0023 {
0024   public:
0025     /**
0026      * @short Constructor
0027      * @param satComp - pointer to SatellitesComponent that handles data
0028      * @param rootNode parent RootNode that instantiates this object
0029      */
0030     explicit SatellitesItem(SatellitesComponent *satComp, RootNode *rootNode = nullptr);
0031 
0032     /**
0033      * @short recreates the node tree (deletes old nodes and appends new ones according to
0034      * SatelliteGroups from SatellitesComponent::groups())
0035      */
0036     void recreateList();
0037 
0038     /** Update positions and visibility of satellites */
0039     virtual void update() override;
0040 
0041   private:
0042     SatellitesComponent *m_satComp { nullptr };
0043 };