1 /* 2 SPDX-FileCopyrightText: 2008 Akarsh Simha <akarshsimha@gmail.com> 3 4 SPDX-License-Identifier: GPL-2.0-or-later 5 */ 6 7 #include <QDebug> 8 9 #include "starblock.h" 10 #include "skyobjects/starobject.h" 11 #include "starcomponent.h" 12 #include "skyobjects/stardata.h" 13 #include "skyobjects/deepstardata.h" 14 15 #ifdef KSTARS_LITE 16 #include "skymaplite.h" 17 #include "kstarslite/skyitems/skynodes/pointsourcenode.h" 18 StarNode()19StarNode::StarNode() : starNode(0) 20 { 21 } 22 ~StarNode()23StarNode::~StarNode() 24 { 25 if (starNode) 26 { 27 SkyMapLite::Instance()->deleteSkyNode(starNode); 28 qDebug() << "REAL NODE DESTRUCTOR"; 29 } 30 } 31 #endif 32 StarBlock(int nstars)33StarBlock::StarBlock(int nstars) 34 : faintMag(-5), brightMag(35), parent(nullptr), prev(nullptr), next(nullptr), drawID(0), nStars(0), 35 #ifdef KSTARS_LITE 36 stars(nstars, StarNode()) 37 #else 38 stars(nstars, StarObject()) 39 #endif 40 { 41 } 42 reset()43void StarBlock::reset() 44 { 45 if (parent) 46 parent->releaseBlock(this); 47 48 parent = nullptr; 49 faintMag = -5.0; 50 brightMag = 35.0; 51 nStars = 0; 52 } 53 54 #ifdef KSTARS_LITE addStar(const StarData & data)55StarNode *StarBlock::addStar(const StarData &data) 56 { 57 if (isFull()) 58 return 0; 59 StarNode &node = stars[nStars++]; 60 StarObject &star = node.star; 61 62 star.init(&data); 63 if (star.mag() > faintMag) 64 faintMag = star.mag(); 65 if (star.mag() < brightMag) 66 brightMag = star.mag(); 67 return &node; 68 } 69 addStar(const DeepStarData & data)70StarNode *StarBlock::addStar(const DeepStarData &data) 71 { 72 if (isFull()) 73 return 0; 74 StarNode &node = stars[nStars++]; 75 StarObject &star = node.star; 76 77 star.init(&data); 78 if (star.mag() > faintMag) 79 faintMag = star.mag(); 80 if (star.mag() < brightMag) 81 brightMag = star.mag(); 82 return &node; 83 } 84 #else addStar(const StarData & data)85StarObject *StarBlock::addStar(const StarData &data) 86 { 87 if (isFull()) 88 return nullptr; 89 StarObject &star = stars[nStars++]; 90 91 star.init(&data); 92 if (star.mag() > faintMag) 93 faintMag = star.mag(); 94 if (star.mag() < brightMag) 95 brightMag = star.mag(); 96 return ☆ 97 } 98 addStar(const DeepStarData & data)99StarObject *StarBlock::addStar(const DeepStarData &data) 100 { 101 if (isFull()) 102 return nullptr; 103 StarObject &star = stars[nStars++]; 104 105 star.init(&data); 106 if (star.mag() > faintMag) 107 faintMag = star.mag(); 108 if (star.mag() < brightMag) 109 brightMag = star.mag(); 110 return ☆ 111 } 112 #endif 113