File indexing completed on 2024-04-21 03:44:18

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 #include <memory>
0011 
0012 class DeepStarComponent;
0013 class SkyMesh;
0014 class StarBlockFactory;
0015 class StarBlockList;
0016 
0017 /**
0018  * @class DeepStarItem
0019  *
0020  * @short This class handles representation of unnamed stars in SkyMapLite
0021  *
0022  * @author Artem Fedoskin
0023  * @version 1.0
0024  */
0025 class DeepStarItem : public SkyItem
0026 {
0027   public:
0028     /**
0029      * @short Constructor. Instantiates nodes for static stars
0030      * @param deepStarComp - pointer to DeepStarComponent that handles data
0031      * @param rootNode - parent RootNode that instantiated this object
0032      */
0033     DeepStarItem(DeepStarComponent *deepStarComp, RootNode *rootNode);
0034 
0035     /**
0036      * @short updates all trixels that contain stars
0037      */
0038     virtual void update();
0039 
0040   private:
0041     SkyMesh *m_skyMesh { nullptr };
0042     StarBlockFactory *m_StarBlockFactory { nullptr };
0043 
0044     DeepStarComponent *m_deepStarComp { nullptr };
0045     QVector<std::shared_ptr<StarBlockList>> *m_starBlockList { nullptr };
0046     bool m_staticStars { false };
0047 };