File indexing completed on 2024-04-14 03:42:50

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 SupernovaeComponent;
0011 
0012 /**
0013  * @class SupernovaeItem
0014  * This class handles supernovae in SkyMapLite
0015  *
0016  * @author Artem Fedoskin
0017  * @version 1.0
0018  */
0019 class SupernovaeItem : public SkyItem
0020 {
0021   public:
0022     /**
0023      * @short Constructor
0024      * @param snovaComp - pointer to SupernovaeComponent that handles data
0025      * @param rootNode parent RootNode that instantiates this object
0026      */
0027     explicit SupernovaeItem(SupernovaeComponent *snovaComp, RootNode *rootNode = nullptr);
0028 
0029     /**
0030      * @short Recreate the node tree (delete old nodes and append new ones according to
0031      * SupernovaeItem::objectList())
0032      */
0033     void recreateList();
0034 
0035     /** Update positions and visibility of supernovae */
0036     virtual void update() override;
0037 
0038   private:
0039     SupernovaeComponent *m_snovaComp { nullptr };
0040 };