• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

Stellarium / stellarium / 15670918640

16 Jun 2025 02:08AM UTC coverage: 11.775% (-0.2%) from 11.931%
15670918640

push

github

alex-w
Updated data

14700 of 124846 relevant lines covered (11.77%)

18324.52 hits per line

Source File
Press 'n' to go to next uncovered line, 'b' for previous

0.0
/src/core/modules/GridLinesMgr.hpp
1
/*
2
 * Stellarium
3
 * Copyright (C) 2007 Fabien Chereau
4
 * Copyright (C) 2015 Georg Zotti (more grids to illustrate precession issues)
5
 *
6
 * This program is free software; you can redistribute it and/or
7
 * modify it under the terms of the GNU General Public License
8
 * as published by the Free Software Foundation; either version 2
9
 * of the License, or (at your option) any later version.
10
 *
11
 * This program is distributed in the hope that it will be useful,
12
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
13
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
14
 * GNU General Public License for more details.
15
 *
16
 * You should have received a copy of the GNU General Public License
17
 * along with this program; if not, write to the Free Software
18
 * Foundation, Inc., 51 Franklin Street, Suite 500, Boston, MA  02110-1335, USA.
19
 */
20

21
#ifndef GRIDLINESMGR_HPP
22
#define GRIDLINESMGR_HPP
23

24
#include <QFont>
25
#include "VecMath.hpp"
26
#include "StelModule.hpp"
27
#include "Planet.hpp"
28
#include "StelCore.hpp"
29

30
class SkyGrid;
31
class SkyPoint;
32

33
//! @class SkyLine
34
//! Class which manages a line to display around the sky like the ecliptic line.
35
class SkyLine
36
{
37
public:
38
        enum SKY_LINE_TYPE
39
        {
40
                EQUATOR_J2000,
41
                EQUATOR_OF_DATE,
42
                FIXED_EQUATOR,
43
                ECLIPTIC_J2000,
44
                ECLIPTIC_OF_DATE,
45
                ECLIPTIC_WITH_DATE,
46
                PRECESSIONCIRCLE_N,
47
                PRECESSIONCIRCLE_S,
48
                MERIDIAN,
49
                HORIZON,
50
                GALACTICEQUATOR,
51
                SUPERGALACTICEQUATOR,
52
                LONGITUDE,
53
                QUADRATURE,
54
                PRIME_VERTICAL,
55
                CURRENT_VERTICAL,
56
                COLURE_1,
57
                COLURE_2,
58
                CIRCUMPOLARCIRCLE_N,
59
                CIRCUMPOLARCIRCLE_S,
60
                INVARIABLEPLANE,
61
                SOLAR_EQUATOR,
62
                EARTH_UMBRA,
63
                EARTH_PENUMBRA,
64
                ECLIPTIC_CULTURAL,
65
                EQUATORIAL_CULTURAL
66
        };
67
        // Create and precompute positions of a SkyGrid
68
        SkyLine(SKY_LINE_TYPE _line_type = EQUATOR_J2000);
69
        virtual ~SkyLine();
70
        static void init(); //! call once before creating the first line.
71
        static void deinit(); //! call once after deleting all lines.
72
        void draw(StelCore* core) const;       // set up a painter and draw
73
        void draw(StelPainter &painter, const float oldLineWidth) const; // draw with given painter
74
        void setColor(const Vec3f& c) {color = c;}
×
75
        void setPartitions(bool visible) {showPartitions = visible;}
×
76
        bool showsPartitions() const {return showPartitions;}
×
77
        const Vec3f& getColor() const {return color;}
×
78
        void update(double deltaTime) {fader.update(static_cast<int>(deltaTime*1000));}
×
79
        void setFadeDuration(float duration) {fader.setDuration(static_cast<int>(duration*1000.f));}
80
        void setDisplayed(const bool displayed){fader = displayed;}
×
81
        bool isDisplayed() const {return fader;}
×
82
        void setLabeled(const bool displayed){showLabel = displayed;}
×
83
        bool isLabeled() const {return showLabel;}
×
84
        void setFontSize(int newSize);
85
        void setLineThickness(const float thickness) {lineThickness = thickness;}
×
86
        float getLineThickness() const {return lineThickness;}
87
        void setPartThickness(const float thickness) {partThickness = thickness;}
×
88
        float getPartThickness() const {return partThickness;}
×
89
        //! Re-translates the label and sets the frameType. Must be called in the constructor!
90
        void updateLabel();
91
        //! setup the small partitions in a ECLIPTIC_CULTURAL or EQUATORIAL_CULTURAL line, in degrees.
92
        //! Element nr.0 is a vector of the major divisions. It is not used directly, just here for completion.
93
        //! Element nr.1 is a vector of all main divisions of all major divisions. This may be 10-degrees in a 12x30 degree zodiac, or the quarter-lines in the Indian 27-part nakshatras.
94
        //! Element nr.2 is a vector of all minor divisions, like the 5-degrees in a 12x30 degrees zodiac defined as [12 3 2 5].
95
        //! Element nr.3 is a vector of all sub-minor divisions, like the 1-degrees in a 12x30 degrees zodiac  defined as [12 3 2 5].
96
        //! Up to these 4 lists is supported with drawing ever-smaller sub-ticks
97
        //! @todo: Currently the partitions are falsely plotted extending the wrong axis.
98
        void setCulturalPartitions(QList<QList<double>>cParts){culturalPartitions=cParts;}
×
99
        void setCulturalOffset(const double offset){culturalOffset=offset;}
×
100
        static void setSolarSystem(SolarSystem* ss);
101
        //! Compute eclipticOnDatePartitions for @param year. Trigger a call to this from a signal StelCore::dateChangedByYear()
102
        static void computeEclipticDatePartitions(int year = std::numeric_limits<int>::min());
103
private:
104
        static QSharedPointer<Planet> earth, sun, moon;
105
        SKY_LINE_TYPE line_type;
106
        Vec3f color;
107
        StelCore::FrameType frameType;
108
        LinearFader fader;
109
        QFont font;
110
        QString label;
111
        float lineThickness;
112
        float partThickness;
113
        bool showPartitions;
114
        bool showLabel;
115
        QList<QList<double>>culturalPartitions; //!< only in ECLIPTIC_CULTURAL and EQUATORIAL_CULTURAL lines.
116
        double culturalOffset;  //!< the origin of cultural partitions can be rotated from the first point of Aries.
117
        static QMap<int, double> precessionPartitions;
118
        static std::vector<QPair<Vec3d, QString>> eclipticOnDatePartitions; //!< Collection of up to 366 entries Vec3d={eclLongitude, aberration, nutation}, QString label
119
};
120

121

122
//! @class GridLinesMgr
123
//! The GridLinesMgr controls the drawing of the Azimuthal, Equatorial, Ecliptical and Galactic Grids,
124
//! as well as the great circles: Meridian Line, Ecliptic Lines of J2000.0 and date, Equator Line (of J2000.0 and date),
125
//! Solar Equator and Invariable Plane of the Solar System,
126
//! Precession Circles, and a special line marking conjunction or opposition in ecliptical longitude (of date).
127
class GridLinesMgr : public StelModule
128
{
129
        Q_OBJECT
130
        Q_PROPERTY(bool gridlinesDisplayed                 READ getFlagGridlines                WRITE setFlagGridlines                        NOTIFY gridlinesDisplayedChanged)
131

132
        Q_PROPERTY(bool azimuthalGridDisplayed                READ getFlagAzimuthalGrid        WRITE setFlagAzimuthalGrid                NOTIFY azimuthalGridDisplayedChanged)
133
        Q_PROPERTY(Vec3f azimuthalGridColor                READ getColorAzimuthalGrid        WRITE setColorAzimuthalGrid                NOTIFY azimuthalGridColorChanged)
134

135
        Q_PROPERTY(bool equatorGridDisplayed                READ getFlagEquatorGrid                WRITE setFlagEquatorGrid                NOTIFY equatorGridDisplayedChanged)
136
        Q_PROPERTY(Vec3f equatorGridColor                READ getColorEquatorGrid        WRITE setColorEquatorGrid                NOTIFY equatorGridColorChanged)
137

138
        Q_PROPERTY(bool fixedEquatorGridDisplayed        READ getFlagFixedEquatorGrid        WRITE setFlagFixedEquatorGrid                NOTIFY fixedEquatorGridDisplayedChanged)
139
        Q_PROPERTY(Vec3f fixedEquatorGridColor                READ getColorFixedEquatorGrid        WRITE setColorFixedEquatorGrid                NOTIFY fixedEquatorGridColorChanged)
140

141
        Q_PROPERTY(bool equatorJ2000GridDisplayed        READ getFlagEquatorJ2000Grid        WRITE setFlagEquatorJ2000Grid                NOTIFY equatorJ2000GridDisplayedChanged)
142
        Q_PROPERTY(Vec3f equatorJ2000GridColor                READ getColorEquatorJ2000Grid        WRITE setColorEquatorJ2000Grid                NOTIFY equatorJ2000GridColorChanged)
143

144
        Q_PROPERTY(bool eclipticJ2000GridDisplayed        READ getFlagEclipticJ2000Grid        WRITE setFlagEclipticJ2000Grid                NOTIFY eclipticJ2000GridDisplayedChanged)
145
        Q_PROPERTY(Vec3f eclipticJ2000GridColor                READ getColorEclipticJ2000Grid        WRITE setColorEclipticJ2000Grid                NOTIFY eclipticJ2000GridColorChanged)
146

147
        Q_PROPERTY(bool eclipticGridDisplayed                READ getFlagEclipticGrid        WRITE setFlagEclipticGrid                NOTIFY eclipticGridDisplayedChanged)
148
        Q_PROPERTY(Vec3f eclipticGridColor                READ getColorEclipticGrid        WRITE setColorEclipticGrid                NOTIFY eclipticGridColorChanged)
149

150
        Q_PROPERTY(bool galacticGridDisplayed                READ getFlagGalacticGrid        WRITE setFlagGalacticGrid                NOTIFY galacticGridDisplayedChanged)
151
        Q_PROPERTY(Vec3f galacticGridColor                READ getColorGalacticGrid        WRITE setColorGalacticGrid                NOTIFY galacticGridColorChanged)
152

153
        Q_PROPERTY(bool supergalacticGridDisplayed        READ getFlagSupergalacticGrid        WRITE setFlagSupergalacticGrid                NOTIFY supergalacticGridDisplayedChanged)
154
        Q_PROPERTY(Vec3f supergalacticGridColor                READ getColorSupergalacticGrid        WRITE setColorSupergalacticGrid                NOTIFY supergalacticGridColorChanged)
155

156
        Q_PROPERTY(bool equatorLineDisplayed                READ getFlagEquatorLine                WRITE setFlagEquatorLine                NOTIFY equatorLineDisplayedChanged)
157
        Q_PROPERTY(bool equatorPartsDisplayed                READ getFlagEquatorParts        WRITE setFlagEquatorParts                NOTIFY equatorPartsDisplayedChanged)
158
        Q_PROPERTY(bool equatorPartsLabeled                READ getFlagEquatorLabeled        WRITE setFlagEquatorLabeled                NOTIFY equatorPartsLabeledChanged)
159
        Q_PROPERTY(Vec3f equatorLineColor                READ getColorEquatorLine        WRITE setColorEquatorLine                NOTIFY equatorLineColorChanged)
160

161
        Q_PROPERTY(bool equatorJ2000LineDisplayed        READ getFlagEquatorJ2000Line        WRITE setFlagEquatorJ2000Line                NOTIFY equatorJ2000LineDisplayedChanged)
162
        Q_PROPERTY(bool equatorJ2000PartsDisplayed        READ getFlagEquatorJ2000Parts        WRITE setFlagEquatorJ2000Parts                NOTIFY equatorJ2000PartsDisplayedChanged)
163
        Q_PROPERTY(bool equatorJ2000PartsLabeled        READ getFlagEquatorJ2000Labeled        WRITE setFlagEquatorJ2000Labeled        NOTIFY equatorJ2000PartsLabeledChanged)
164
        Q_PROPERTY(Vec3f equatorJ2000LineColor                READ getColorEquatorJ2000Line        WRITE setColorEquatorJ2000Line                NOTIFY equatorJ2000LineColorChanged)
165

166
        Q_PROPERTY(bool fixedEquatorLineDisplayed        READ getFlagFixedEquatorLine        WRITE setFlagFixedEquatorLine                NOTIFY fixedEquatorLineDisplayedChanged)
167
        Q_PROPERTY(bool fixedEquatorPartsDisplayed        READ getFlagFixedEquatorParts        WRITE setFlagFixedEquatorParts                NOTIFY fixedEquatorPartsDisplayedChanged)
168
        Q_PROPERTY(bool fixedEquatorPartsLabeled        READ getFlagFixedEquatorLabeled        WRITE setFlagFixedEquatorLabeled        NOTIFY fixedEquatorPartsLabeledChanged)
169
        Q_PROPERTY(Vec3f fixedEquatorLineColor                READ getColorFixedEquatorLine        WRITE setColorFixedEquatorLine                NOTIFY fixedEquatorLineColorChanged)
170

171
        Q_PROPERTY(bool eclipticLineDisplayed                READ getFlagEclipticLine        WRITE setFlagEclipticLine                NOTIFY eclipticLineDisplayedChanged)
172
        Q_PROPERTY(bool eclipticPartsDisplayed                READ getFlagEclipticParts        WRITE setFlagEclipticParts                NOTIFY eclipticPartsDisplayedChanged)
173
        Q_PROPERTY(bool eclipticPartsLabeled                READ getFlagEclipticLabeled        WRITE setFlagEclipticLabeled                NOTIFY eclipticPartsLabeledChanged)
174
        Q_PROPERTY(bool eclipticDatesLabeled           READ getFlagEclipticDatesLabeled WRITE setFlagEclipticDatesLabeled        NOTIFY eclipticDatesLabeledChanged)
175
        Q_PROPERTY(Vec3f eclipticLineColor                READ getColorEclipticLine        WRITE setColorEclipticLine                NOTIFY eclipticLineColorChanged)
176

177
        Q_PROPERTY(bool eclipticJ2000LineDisplayed        READ getFlagEclipticJ2000Line         WRITE setFlagEclipticJ2000Line                NOTIFY eclipticJ2000LineDisplayedChanged)
178
        Q_PROPERTY(bool eclipticJ2000PartsDisplayed        READ getFlagEclipticJ2000Parts         WRITE setFlagEclipticJ2000Parts        NOTIFY eclipticJ2000PartsDisplayedChanged)
179
        Q_PROPERTY(bool eclipticJ2000PartsLabeled        READ getFlagEclipticJ2000Labeled WRITE setFlagEclipticJ2000Labeled        NOTIFY eclipticJ2000PartsLabeledChanged)
180
        Q_PROPERTY(Vec3f eclipticJ2000LineColor                READ getColorEclipticJ2000Line         WRITE setColorEclipticJ2000Line        NOTIFY eclipticJ2000LineColorChanged)
181

182
        Q_PROPERTY(bool invariablePlaneLineDisplayed        READ getFlagInvariablePlaneLine         WRITE setFlagInvariablePlaneLine        NOTIFY invariablePlaneLineDisplayedChanged)
183
        Q_PROPERTY(Vec3f invariablePlaneLineColor        READ getColorInvariablePlaneLine WRITE setColorInvariablePlaneLine        NOTIFY invariablePlaneLineColorChanged)
184

185
        Q_PROPERTY(bool solarEquatorLineDisplayed        READ getFlagSolarEquatorLine         WRITE setFlagSolarEquatorLine                NOTIFY solarEquatorLineDisplayedChanged)
186
        Q_PROPERTY(bool solarEquatorPartsDisplayed        READ getFlagSolarEquatorParts         WRITE setFlagSolarEquatorParts                NOTIFY solarEquatorPartsDisplayedChanged)
187
        Q_PROPERTY(bool solarEquatorPartsLabeled        READ getFlagSolarEquatorLabeled  WRITE setFlagSolarEquatorLabeled        NOTIFY solarEquatorPartsLabeledChanged)
188
        Q_PROPERTY(Vec3f solarEquatorLineColor                READ getColorSolarEquatorLine         WRITE setColorSolarEquatorLine                NOTIFY solarEquatorLineColorChanged)
189

190
        Q_PROPERTY(bool precessionCirclesDisplayed        READ getFlagPrecessionCircles        WRITE setFlagPrecessionCircles                NOTIFY precessionCirclesDisplayedChanged)
191
        Q_PROPERTY(bool precessionPartsDisplayed        READ getFlagPrecessionParts        WRITE setFlagPrecessionParts                NOTIFY precessionPartsDisplayedChanged)
192
        Q_PROPERTY(bool precessionPartsLabeled                READ getFlagPrecessionLabeled        WRITE setFlagPrecessionLabeled                NOTIFY precessionPartsLabeledChanged)
193
        Q_PROPERTY(Vec3f precessionCirclesColor                READ getColorPrecessionCircles        WRITE setColorPrecessionCircles                NOTIFY precessionCirclesColorChanged)
194

195
        Q_PROPERTY(bool meridianLineDisplayed                READ getFlagMeridianLine        WRITE setFlagMeridianLine                NOTIFY meridianLineDisplayedChanged)
196
        Q_PROPERTY(bool meridianPartsDisplayed                READ getFlagMeridianParts        WRITE setFlagMeridianParts                NOTIFY meridianPartsDisplayedChanged)
197
        Q_PROPERTY(bool meridianPartsLabeled                READ getFlagMeridianLabeled        WRITE setFlagMeridianLabeled                NOTIFY meridianPartsLabeledChanged)
198
        Q_PROPERTY(Vec3f meridianLineColor                READ getColorMeridianLine        WRITE setColorMeridianLine                NOTIFY meridianLineColorChanged)
199

200
        Q_PROPERTY(bool longitudeLineDisplayed        READ getFlagLongitudeLine        WRITE setFlagLongitudeLine                NOTIFY longitudeLineDisplayedChanged)
201
        Q_PROPERTY(bool longitudePartsDisplayed        READ getFlagLongitudeParts        WRITE setFlagLongitudeParts                NOTIFY longitudePartsDisplayedChanged)
202
        Q_PROPERTY(bool longitudePartsLabeled        READ getFlagLongitudeLabeled        WRITE setFlagLongitudeLabeled                NOTIFY longitudePartsLabeledChanged)
203
        Q_PROPERTY(Vec3f longitudeLineColor                READ getColorLongitudeLine        WRITE setColorLongitudeLine                NOTIFY longitudeLineColorChanged)
204

205
        Q_PROPERTY(bool quadratureLineDisplayed                READ getFlagQuadratureLine        WRITE setFlagQuadratureLine                NOTIFY quadratureLineDisplayedChanged)
206
        Q_PROPERTY(Vec3f quadratureLineColor                READ getColorQuadratureLine        WRITE setColorQuadratureLine                NOTIFY quadratureLineColorChanged)
207

208
        Q_PROPERTY(bool horizonLineDisplayed                READ getFlagHorizonLine                WRITE setFlagHorizonLine                NOTIFY horizonLineDisplayedChanged)
209
        Q_PROPERTY(bool horizonPartsDisplayed        READ getFlagHorizonParts        WRITE setFlagHorizonParts                NOTIFY horizonPartsDisplayedChanged)
210
        Q_PROPERTY(bool horizonPartsLabeled                READ getFlagHorizonLabeled        WRITE setFlagHorizonLabeled                NOTIFY horizonPartsLabeledChanged)
211
        Q_PROPERTY(Vec3f horizonLineColor                READ getColorHorizonLine        WRITE setColorHorizonLine                NOTIFY horizonLineColorChanged)
212

213
        Q_PROPERTY(bool galacticEquatorLineDisplayed        READ getFlagGalacticEquatorLine                WRITE setFlagGalacticEquatorLine        NOTIFY galacticEquatorLineDisplayedChanged)
214
        Q_PROPERTY(bool galacticEquatorPartsDisplayed        READ getFlagGalacticEquatorParts        WRITE setFlagGalacticEquatorParts        NOTIFY galacticEquatorPartsDisplayedChanged)
215
        Q_PROPERTY(bool galacticEquatorPartsLabeled        READ getFlagGalacticEquatorLabeled        WRITE setFlagGalacticEquatorLabeled        NOTIFY galacticEquatorPartsLabeledChanged)
216
        Q_PROPERTY(Vec3f galacticEquatorLineColor        READ getColorGalacticEquatorLine        WRITE setColorGalacticEquatorLine        NOTIFY galacticEquatorLineColorChanged)
217

218
        Q_PROPERTY(bool supergalacticEquatorLineDisplayed        READ getFlagSupergalacticEquatorLine        WRITE setFlagSupergalacticEquatorLine         NOTIFY supergalacticEquatorLineDisplayedChanged)
219
        Q_PROPERTY(bool supergalacticEquatorPartsDisplayed        READ getFlagSupergalacticEquatorParts        WRITE setFlagSupergalacticEquatorParts         NOTIFY supergalacticEquatorPartsDisplayedChanged)
220
        Q_PROPERTY(bool supergalacticEquatorPartsLabeled        READ getFlagSupergalacticEquatorLabeled        WRITE setFlagSupergalacticEquatorLabeled NOTIFY supergalacticEquatorPartsLabeledChanged)
221
        Q_PROPERTY(Vec3f supergalacticEquatorLineColor                READ getColorSupergalacticEquatorLine        WRITE setColorSupergalacticEquatorLine         NOTIFY supergalacticEquatorLineColorChanged)
222

223
        Q_PROPERTY(bool primeVerticalLineDisplayed        READ getFlagPrimeVerticalLine         WRITE setFlagPrimeVerticalLine                NOTIFY primeVerticalLineDisplayedChanged)
224
        Q_PROPERTY(bool primeVerticalPartsDisplayed        READ getFlagPrimeVerticalParts         WRITE setFlagPrimeVerticalParts        NOTIFY primeVerticalPartsDisplayedChanged)
225
        Q_PROPERTY(bool primeVerticalPartsLabeled        READ getFlagPrimeVerticalLabeled WRITE setFlagPrimeVerticalLabeled        NOTIFY primeVerticalPartsLabeledChanged)
226
        Q_PROPERTY(Vec3f primeVerticalLineColor                READ getColorPrimeVerticalLine         WRITE setColorPrimeVerticalLine        NOTIFY primeVerticalLineColorChanged)
227

228
        Q_PROPERTY(bool currentVerticalLineDisplayed        READ getFlagCurrentVerticalLine           WRITE setFlagCurrentVerticalLine        NOTIFY currentVerticalLineDisplayedChanged)
229
        Q_PROPERTY(bool currentVerticalPartsDisplayed        READ getFlagCurrentVerticalParts   WRITE setFlagCurrentVerticalParts        NOTIFY currentVerticalPartsDisplayedChanged)
230
        Q_PROPERTY(bool currentVerticalPartsLabeled        READ getFlagCurrentVerticalLabeled WRITE setFlagCurrentVerticalLabeled        NOTIFY currentVerticalPartsLabeledChanged)
231
        Q_PROPERTY(Vec3f currentVerticalLineColor        READ getColorCurrentVerticalLine   WRITE setColorCurrentVerticalLine        NOTIFY currentVerticalLineColorChanged)
232

233
        Q_PROPERTY(bool colureLinesDisplayed                READ getFlagColureLines                WRITE setFlagColureLines                NOTIFY colureLinesDisplayedChanged)
234
        Q_PROPERTY(bool colurePartsDisplayed                READ getFlagColureParts                WRITE setFlagColureParts                NOTIFY colurePartsDisplayedChanged)
235
        Q_PROPERTY(bool colurePartsLabeled                READ getFlagColureLabeled        WRITE setFlagColureLabeled                NOTIFY colurePartsLabeledChanged)
236
        Q_PROPERTY(Vec3f colureLinesColor                READ getColorColureLines        WRITE setColorColureLines                NOTIFY colureLinesColorChanged)
237

238
        Q_PROPERTY(bool circumpolarCirclesDisplayed        READ getFlagCircumpolarCircles        WRITE setFlagCircumpolarCircles                NOTIFY circumpolarCirclesDisplayedChanged)
239
        Q_PROPERTY(Vec3f circumpolarCirclesColor        READ getColorCircumpolarCircles        WRITE setColorCircumpolarCircles        NOTIFY circumpolarCirclesColorChanged)
240

241
        Q_PROPERTY(bool umbraCircleDisplayed                READ getFlagUmbraCircle                WRITE setFlagUmbraCircle                NOTIFY umbraCircleDisplayedChanged)
242
        Q_PROPERTY(Vec3f umbraCircleColor                READ getColorUmbraCircle        WRITE setColorUmbraCircle                NOTIFY umbraCircleColorChanged)
243
        Q_PROPERTY(bool penumbraCircleDisplayed                READ getFlagPenumbraCircle        WRITE setFlagPenumbraCircle                NOTIFY penumbraCircleDisplayedChanged)
244
        Q_PROPERTY(Vec3f penumbraCircleColor                READ getColorPenumbraCircle        WRITE setColorPenumbraCircle                NOTIFY penumbraCircleColorChanged)
245

246
        Q_PROPERTY(bool celestialJ2000PolesDisplayed        READ getFlagCelestialJ2000Poles                WRITE setFlagCelestialJ2000Poles        NOTIFY celestialJ2000PolesDisplayedChanged)
247
        Q_PROPERTY(Vec3f celestialJ2000PolesColor        READ getColorCelestialJ2000Poles        WRITE setColorCelestialJ2000Poles        NOTIFY celestialJ2000PolesColorChanged)
248

249
        Q_PROPERTY(bool celestialPolesDisplayed                READ getFlagCelestialPoles        WRITE setFlagCelestialPoles                NOTIFY celestialPolesDisplayedChanged)
250
        Q_PROPERTY(Vec3f celestialPolesColor                READ getColorCelestialPoles        WRITE setColorCelestialPoles                NOTIFY celestialPolesColorChanged)
251

252
        Q_PROPERTY(bool zenithNadirDisplayed                READ getFlagZenithNadir                WRITE setFlagZenithNadir                NOTIFY zenithNadirDisplayedChanged)
253
        Q_PROPERTY(Vec3f zenithNadirColor                READ getColorZenithNadir        WRITE setColorZenithNadir                NOTIFY zenithNadirColorChanged)
254

255
        Q_PROPERTY(bool eclipticJ2000PolesDisplayed        READ getFlagEclipticJ2000Poles        WRITE setFlagEclipticJ2000Poles                NOTIFY eclipticJ2000PolesDisplayedChanged)
256
        Q_PROPERTY(Vec3f eclipticJ2000PolesColor        READ getColorEclipticJ2000Poles        WRITE setColorEclipticJ2000Poles        NOTIFY eclipticJ2000PolesColorChanged)
257

258
        Q_PROPERTY(bool eclipticPolesDisplayed                READ getFlagEclipticPoles                WRITE setFlagEclipticPoles                NOTIFY eclipticPolesDisplayedChanged)
259
        Q_PROPERTY(Vec3f eclipticPolesColor                READ getColorEclipticPoles        WRITE setColorEclipticPoles                NOTIFY eclipticPolesColorChanged)
260

261
        Q_PROPERTY(bool galacticPolesDisplayed                READ getFlagGalacticPoles        WRITE setFlagGalacticPoles                NOTIFY galacticPolesDisplayedChanged)
262
        Q_PROPERTY(Vec3f galacticPolesColor                READ getColorGalacticPoles        WRITE setColorGalacticPoles                NOTIFY galacticPolesColorChanged)
263

264
        Q_PROPERTY(bool galacticCenterDisplayed                READ getFlagGalacticCenter        WRITE setFlagGalacticCenter                NOTIFY galacticCenterDisplayedChanged)
265
        Q_PROPERTY(Vec3f galacticCenterColor                READ getColorGalacticCenter        WRITE setColorGalacticCenter                NOTIFY galacticCenterColorChanged)
266

267
        Q_PROPERTY(bool supergalacticPolesDisplayed        READ getFlagSupergalacticPoles        WRITE setFlagSupergalacticPoles                NOTIFY supergalacticPolesDisplayedChanged)
268
        Q_PROPERTY(Vec3f supergalacticPolesColor        READ getColorSupergalacticPoles        WRITE setColorSupergalacticPoles        NOTIFY supergalacticPolesColorChanged)
269

270
        Q_PROPERTY(bool equinoxJ2000PointsDisplayed        READ getFlagEquinoxJ2000Points        WRITE setFlagEquinoxJ2000Points                NOTIFY equinoxJ2000PointsDisplayedChanged)
271
        Q_PROPERTY(Vec3f equinoxJ2000PointsColor        READ getColorEquinoxJ2000Points        WRITE setColorEquinoxJ2000Points        NOTIFY equinoxJ2000PointsColorChanged)
272

273
        Q_PROPERTY(bool equinoxPointsDisplayed                READ getFlagEquinoxPoints        WRITE setFlagEquinoxPoints                NOTIFY equinoxPointsDisplayedChanged)
274
        Q_PROPERTY(Vec3f equinoxPointsColor                READ getColorEquinoxPoints        WRITE setColorEquinoxPoints                NOTIFY equinoxPointsColorChanged)
275

276
        Q_PROPERTY(bool solsticeJ2000PointsDisplayed        READ getFlagSolsticeJ2000Points        WRITE setFlagSolsticeJ2000Points        NOTIFY solsticeJ2000PointsDisplayedChanged)
277
        Q_PROPERTY(Vec3f solsticeJ2000PointsColor        READ getColorSolsticeJ2000Points        WRITE setColorSolsticeJ2000Points        NOTIFY solsticeJ2000PointsColorChanged)
278

279
        Q_PROPERTY(bool solsticePointsDisplayed                READ getFlagSolsticePoints        WRITE setFlagSolsticePoints                NOTIFY solsticePointsDisplayedChanged)
280
        Q_PROPERTY(Vec3f solsticePointsColor                READ getColorSolsticePoints        WRITE setColorSolsticePoints                NOTIFY solsticePointsColorChanged)
281

282
        Q_PROPERTY(bool antisolarPointDisplayed                READ getFlagAntisolarPoint        WRITE setFlagAntisolarPoint                NOTIFY antisolarPointDisplayedChanged)
283
        Q_PROPERTY(Vec3f antisolarPointColor                READ getColorAntisolarPoint        WRITE setColorAntisolarPoint                NOTIFY antisolarPointColorChanged)
284

285
        Q_PROPERTY(bool umbraCenterPointDisplayed        READ getFlagUmbraCenterPoint        WRITE setFlagUmbraCenterPoint                NOTIFY umbraCenterPointDisplayedChanged)
286

287
        Q_PROPERTY(bool apexPointsDisplayed                READ getFlagApexPoints                WRITE setFlagApexPoints                        NOTIFY apexPointsDisplayedChanged)
288
        Q_PROPERTY(Vec3f apexPointsColor                READ getColorApexPoints                WRITE setColorApexPoints                NOTIFY apexPointsColorChanged)
289

290
        Q_PROPERTY(float lineThickness                        READ getLineThickness                WRITE setLineThickness                        NOTIFY lineThicknessChanged)
291
        Q_PROPERTY(float partThickness                        READ getPartThickness                WRITE setPartThickness                        NOTIFY partThicknessChanged)
292
public:
293
        GridLinesMgr();
294
        ~GridLinesMgr() override;
295

296
        ///////////////////////////////////////////////////////////////////////////
297
        // Methods defined in the StelModule class
298
        //! Initialize the GridLinesMgr. This process checks the values in the
299
        //! application settings, and according to the settings there
300
        //! sets the visibility of the Equatorial Grids, Ecliptical Grids, Azimuthal Grid, Meridian Line,
301
        //! Equator Line and Ecliptic Lines.
302
        void init() override;
303

304
        //! Get the module ID, returns "GridLinesMgr".
305
        virtual QString getModuleID() const {return "GridLinesMgr";}
×
306

307
        //! Draw the grids and great circle lines.
308
        //! Draws the Equatorial Grids, Ecliptical Grids, Azimuthal Grid, Meridian Line, Equator Line,
309
        //! Ecliptic Lines, Precession Circles, Conjunction-Opposition Line, east-west vertical and colures according to the
310
        //! various flags which control their visibility.
311
        void draw(StelCore* core) override;
312

313
        //! Update time-dependent features.
314
        //! Used to control fading when turning on and off the grid lines and great circles.
315
        void update(double deltaTime) override;
316

317
        //! Used to determine the order in which the various modules are drawn.
318
        double getCallOrder(StelModuleActionName actionName) const override;
319

320
        ///////////////////////////////////////////////////////////////////////////////////////
321
        // Setter and getters
322
public slots:
323
        //! Setter ("master switch") for displaying any grid/line.
324
        void setFlagGridlines(const bool displayed);
325
        //! Accessor ("master switch") for displaying any grid/line.
326
        bool getFlagGridlines() const;
327

328
        //! Setter ("master switch by type") for displaying all grids.
329
        void setFlagAllGrids(const bool displayed);
330
        //! Setter ("master switch by type") for displaying all lines.
331
        void setFlagAllLines(const bool displayed);
332
        //! Setter ("master switch by type") for displaying all points.
333
        void setFlagAllPoints(const bool displayed);
334

335
        //! Setter for displaying Azimuthal Grid.
336
        void setFlagAzimuthalGrid(const bool displayed);
337
        //! Accessor for displaying Azimuthal Grid.
338
        bool getFlagAzimuthalGrid() const;
339
        //! Get the current color of the Azimuthal Grid.
340
        Vec3f getColorAzimuthalGrid() const;
341
        //! Set the color of the Azimuthal Grid.
342
        //! @param newColor The color of azimuthal grid
343
        //! @code
344
        //! // example of usage in scripts (Qt6-based Stellarium)
345
        //! var c = new Color(1.0, 0.0, 0.0);
346
        //! GridLinesMgr.setColorAzimuthalGrid(c.toVec3f());
347
        //! @endcode
348
        void setColorAzimuthalGrid(const Vec3f& newColor);
349

350
        //! Setter for displaying Equatorial Grid.
351
        void setFlagEquatorGrid(const bool displayed);
352
        //! Accessor for displaying Equatorial Grid.
353
        bool getFlagEquatorGrid() const;
354
        //! Get the current color of the Equatorial Grid.
355
        Vec3f getColorEquatorGrid() const;
356
        //! Set the color of the Equatorial Grid.
357
        //! @param newColor The color of equatorial grid
358
        //! @code
359
        //! // example of usage in scripts (Qt6-based Stellarium)
360
        //! var c = new Color(1.0, 0.0, 0.0);
361
        //! GridLinesMgr.setColorEquatorGrid(c.toVec3f());
362
        //! @endcode
363
        void setColorEquatorGrid(const Vec3f& newColor);
364

365
        //! Setter for displaying the Fixed Equatorial Grid (Hour angle/declination).
366
        void setFlagFixedEquatorGrid(const bool displayed);
367
        //! Accessor for displaying Fixed Equatorial Grid.
368
        bool getFlagFixedEquatorGrid() const;
369
        //! Get the current color of the Fixed Equatorial Grid.
370
        Vec3f getColorFixedEquatorGrid() const;
371
        //! Set the color of the FixedEquatorial Grid.
372
        //! @param newColor The color of fixed equatorial grid
373
        //! @code
374
        //! // example of usage in scripts (Qt6-based Stellarium)
375
        //! var c = new Color(1.0, 0.0, 0.0);
376
        //! GridLinesMgr.setColorFixedEquatorGrid(c.toVec3f());
377
        //! @endcode
378
        void setColorFixedEquatorGrid(const Vec3f& newColor);
379

380
        //! Setter for displaying Equatorial J2000 Grid.
381
        void setFlagEquatorJ2000Grid(const bool displayed);
382
        //! Accessor for displaying Equatorial J2000 Grid.
383
        bool getFlagEquatorJ2000Grid() const;
384
        //! Get the current color of the Equatorial J2000 Grid.
385
        Vec3f getColorEquatorJ2000Grid() const;
386
        //! Set the color of the Equatorial J2000 Grid.
387
        //! @param newColor The color of equatorial J2000 grid
388
        //! @code
389
        //! // example of usage in scripts (Qt6-based Stellarium)
390
        //! var c = new Color(1.0, 0.0, 0.0);
391
        //! GridLinesMgr.setColorEquatorJ2000Grid(c.toVec3f());
392
        //! @endcode
393
        void setColorEquatorJ2000Grid(const Vec3f& newColor);
394

395
        //! Setter for displaying Ecliptic Grid of J2000.0.
396
        void setFlagEclipticJ2000Grid(const bool displayed);
397
        //! Accessor for displaying Ecliptic Grid.
398
        bool getFlagEclipticJ2000Grid() const;
399
        //! Get the current color of the Ecliptic J2000 Grid.
400
        Vec3f getColorEclipticJ2000Grid() const;
401
        //! Set the color of the Ecliptic J2000 Grid.
402
        //! @param newColor The color of ecliptic J2000 grid
403
        //! @code
404
        //! // example of usage in scripts (Qt6-based Stellarium)
405
        //! var c = new Color(1.0, 0.0, 0.0);
406
        //! GridLinesMgr.setColorEclipticJ2000Grid(c.toVec3f());
407
        //! @endcode
408
        void setColorEclipticJ2000Grid(const Vec3f& newColor);
409

410
        //! Setter for displaying Ecliptic Grid of Date.
411
        void setFlagEclipticGrid(const bool displayed);
412
        //! Accessor for displaying Ecliptic Grid.
413
        bool getFlagEclipticGrid() const;
414
        //! Get the current color of the Ecliptic of Date Grid.
415
        Vec3f getColorEclipticGrid() const;
416
        //! Set the color of the Ecliptic Grid.
417
        //! @param newColor The color of Ecliptic of Date grid
418
        //! @code
419
        //! // example of usage in scripts (Qt6-based Stellarium)
420
        //! var c = new Color(1.0, 0.0, 0.0);
421
        //! GridLinesMgr.setColorEclipticGrid(c.toVec3f());
422
        //! @endcode
423
        void setColorEclipticGrid(const Vec3f& newColor);
424

425
        //! Setter for displaying Galactic Grid.
426
        void setFlagGalacticGrid(const bool displayed);
427
        //! Accessor for displaying Galactic Grid.
428
        bool getFlagGalacticGrid() const;
429
        //! Get the current color of the Galactic Grid.
430
        Vec3f getColorGalacticGrid() const;
431
        //! Set the color of the Galactic Grid.
432
        //! @param newColor The color of galactic grid
433
        //! @code
434
        //! // example of usage in scripts (Qt6-based Stellarium)
435
        //! var c = new Color(1.0, 0.0, 0.0);
436
        //! GridLinesMgr.setColorGalacticGrid(c.toVec3f());
437
        //! @endcode
438
        void setColorGalacticGrid(const Vec3f& newColor);
439

440
        //! Setter for displaying Supergalactic Grid.
441
        void setFlagSupergalacticGrid(const bool displayed);
442
        //! Accessor for displaying Supergalactic Grid.
443
        bool getFlagSupergalacticGrid() const;
444
        //! Get the current color of the Supergalactic Grid.
445
        Vec3f getColorSupergalacticGrid() const;
446
        //! Set the color of the Supergalactic Grid.
447
        //! @param newColor The color of supergalactic grid
448
        //! @code
449
        //! // example of usage in scripts (Qt6-based Stellarium)
450
        //! var c = new Color(1.0, 0.0, 0.0);
451
        //! GridLinesMgr.setColorSupergalacticGrid(c.toVec3f());
452
        //! @endcode
453
        void setColorSupergalacticGrid(const Vec3f& newColor);
454

455
        //! Setter for displaying Equatorial Line.
456
        void setFlagEquatorLine(const bool displayed);
457
        //! Accessor for displaying Equatorial Line.
458
        bool getFlagEquatorLine() const;
459
        //! Setter for displaying Equatorial line partitions.
460
        void setFlagEquatorParts(const bool displayed);
461
        //! Accessor for displaying Equatorial line partitions.
462
        bool getFlagEquatorParts() const;
463
        //! Setter for displaying Equatorial line partition labels.
464
        void setFlagEquatorLabeled(const bool displayed);
465
        //! Accessor for displaying Equatorial line partition labels.
466
        bool getFlagEquatorLabeled() const;
467
        //! Get the current color of the Equatorial Line.
468
        Vec3f getColorEquatorLine() const;
469
        //! Set the color of the Equator Line.
470
        //! @param newColor The color of equator line
471
        //! @code
472
        //! // example of usage in scripts (Qt6-based Stellarium)
473
        //! var c = new Color(1.0, 0.0, 0.0);
474
        //! GridLinesMgr.setColorEquatorLine(c.toVec3f());
475
        //! @endcode
476
        void setColorEquatorLine(const Vec3f& newColor);
477

478
        //! Setter for displaying J2000 Equatorial Line.
479
        void setFlagEquatorJ2000Line(const bool displayed);
480
        //! Accessor for displaying J2000 Equatorial Line.
481
        bool getFlagEquatorJ2000Line() const;
482
        //! Setter for displaying J2000 Equatorial line partitions.
483
        void setFlagEquatorJ2000Parts(const bool displayed);
484
        //! Accessor for displaying J2000 Equatorial line partitions.
485
        bool getFlagEquatorJ2000Parts() const;
486
        //! Setter for displaying J2000 Equatorial line partition labels.
487
        void setFlagEquatorJ2000Labeled(const bool displayed);
488
        //! Accessor for displaying J2000 Equatorial line partition labels.
489
        bool getFlagEquatorJ2000Labeled() const;
490
        //! Get the current color of the J2000 Equatorial Line.
491
        Vec3f getColorEquatorJ2000Line() const;
492
        //! Set the color of the J2000 Equator Line.
493
        //! @param newColor The color of J2000 equator line
494
        //! @code
495
        //! // example of usage in scripts (Qt6-based Stellarium)
496
        //! var c = new Color(1.0, 0.0, 0.0);
497
        //! GridLinesMgr.setColorEquatorJ2000Line(c.toVec3f());
498
        //! @endcode
499
        void setColorEquatorJ2000Line(const Vec3f& newColor);
500

501
        //! Setter for displaying Fixed Equator Line.
502
        void setFlagFixedEquatorLine(const bool displayed);
503
        //! Accessor for displaying Fixed Equator Line.
504
        bool getFlagFixedEquatorLine() const;
505
        //! Setter for displaying Fixed Equator line partitions (hour angles).
506
        void setFlagFixedEquatorParts(const bool displayed);
507
        //! Accessor for displaying Fixed Equator (hour angles) line partitions.
508
        bool getFlagFixedEquatorParts() const;
509
        //! Setter for displaying Fixed Equator line partition labels.
510
        void setFlagFixedEquatorLabeled(const bool displayed);
511
        //! Accessor for displaying Fixed Equator line partition labels.
512
        bool getFlagFixedEquatorLabeled() const;
513
        //! Get the current color of the Fixed Equator Line.
514
        Vec3f getColorFixedEquatorLine() const;
515
        //! Set the color of the Fixed Equator Line (hour angles).
516
        //! @param newColor The color of fixed equator line
517
        //! @code
518
        //! // example of usage in scripts (Qt6-based Stellarium)
519
        //! var c = new Color(1.0, 0.0, 0.0);
520
        //! GridLinesMgr.setColorFixedEquatorLine(c.toVec3f());
521
        //! @endcode
522
        void setColorFixedEquatorLine(const Vec3f& newColor);
523

524
        //! Setter for displaying Ecliptic of J2000 Line.
525
        void setFlagEclipticJ2000Line(const bool displayed);
526
        //! Accessor for displaying Ecliptic of J2000 Line.
527
        bool getFlagEclipticJ2000Line() const;
528
        //! Setter for displaying Ecliptic of J2000 line partitions.
529
        void setFlagEclipticJ2000Parts(const bool displayed);
530
        //! Accessor for displaying Ecliptic of J2000 line partitions.
531
        bool getFlagEclipticJ2000Parts() const;
532
        //! Setter for displaying Ecliptic of J2000 line partition labels.
533
        void setFlagEclipticJ2000Labeled(const bool displayed);
534
        //! Accessor for displaying Ecliptic of J2000 line partition labels.
535
        bool getFlagEclipticJ2000Labeled() const;
536
        //! Get the current color of the Ecliptic of J2000 Line.
537
        Vec3f getColorEclipticJ2000Line() const;
538
        //! Set the color of the Ecliptic of J2000 Line.
539
        //! @param newColor The color of ecliptic 2000 line
540
        //! @code
541
        //! // example of usage in scripts (Qt6-based Stellarium)
542
        //! var c = new Color(1.0, 0.0, 0.0);
543
        //! GridLinesMgr.setColorEcliptic2000Line(c.toVec3f());
544
        //! @endcode
545
        void setColorEclipticJ2000Line(const Vec3f& newColor);
546

547
        //! Setter for displaying Ecliptic Line.
548
        void setFlagEclipticLine(const bool displayed);
549
        //! Accessor for displaying Ecliptic Line.
550
        bool getFlagEclipticLine() const;
551
        //! Setter for displaying Ecliptic line partitions.
552
        void setFlagEclipticParts(const bool displayed);
553
        //! Accessor for displaying Ecliptic line partitions.
554
        bool getFlagEclipticParts() const;
555
        //! Setter for displaying Ecliptic line partition labels.
556
        void setFlagEclipticLabeled(const bool displayed);
557
        //! Accessor for displaying Ecliptic line partition labels.
558
        bool getFlagEclipticLabeled() const;
559
        //! Setter for displaying Ecliptic line partition labels of dates for Solar position in the current year.
560
        void setFlagEclipticDatesLabeled(const bool displayed);
561
        //! Accessor for displaying Ecliptic line partition labels of dates for Solar position in the current year.
562
        bool getFlagEclipticDatesLabeled() const;
563

564
        //! Get the current color of the Ecliptic Line.
565
        Vec3f getColorEclipticLine() const;
566
        //! Set the color of the Ecliptic Line.
567
        //! @param newColor The color of ecliptic line
568
        //! @code
569
        //! // example of usage in scripts (Qt6-based Stellarium)
570
        //! var c = new Color(1.0, 0.0, 0.0);
571
        //! GridLinesMgr.setColorEclipticLine(c.toVec3f());
572
        //! @endcode
573
        void setColorEclipticLine(const Vec3f& newColor);
574

575
        //! Setter for displaying a line for the Invariable Plane of the Solar System.
576
        void setFlagInvariablePlaneLine(const bool displayed);
577
        //! Accessor for displaying Invariable Plane Line.
578
        bool getFlagInvariablePlaneLine() const;
579
        //! Get the current color of the Line for the Invariable Plane.
580
        Vec3f getColorInvariablePlaneLine() const;
581
        //! Set the color of the Line for the Invariable Plane.
582
        //! @param newColor The color of the Invariable Plane line
583
        //! @code
584
        //! // example of usage in scripts (Qt6-based Stellarium)
585
        //! var c = new Color(1.0, 0.0, 0.0);
586
        //! GridLinesMgr.setColorInvariablePlaneLine(c.toVec3f());
587
        //! @endcode
588
        void setColorInvariablePlaneLine(const Vec3f& newColor);
589

590
        //! Setter for displaying Solar Equator Line.
591
        void setFlagSolarEquatorLine(const bool displayed);
592
        //! Accessor for displaying Solar Equator Line.
593
        bool getFlagSolarEquatorLine() const;
594
        //! Setter for displaying Solar Equator line partitions.
595
        void setFlagSolarEquatorParts(const bool displayed);
596
        //! Accessor for displaying Solar Equator line partitions.
597
        bool getFlagSolarEquatorParts() const;
598
        //! Setter for displaying Solar Equator line partition labels.
599
        void setFlagSolarEquatorLabeled(const bool displayed);
600
        //! Accessor for displaying Solar Equator line partition labels.
601
        bool getFlagSolarEquatorLabeled() const;
602
        //! Get the current color of the Solar Equator Line.
603
        Vec3f getColorSolarEquatorLine() const;
604
        //! Set the color of the Solar Equator Line.
605
        //! @param newColor The color of Solar Equator line
606
        //! @code
607
        //! // example of usage in scripts (Qt6-based Stellarium)
608
        //! var c = new Color(1.0, 0.0, 0.0);
609
        //! GridLinesMgr.setColorSolarEquatorLine(c.toVec3f());
610
        //! @endcode
611
        void setColorSolarEquatorLine(const Vec3f& newColor);
612

613
        //! Setter for displaying precession circles.
614
        void setFlagPrecessionCircles(const bool displayed);
615
        //! Accessor for displaying precession circles.
616
        bool getFlagPrecessionCircles() const;
617
        //! Setter for displaying precession circle partitions.
618
        void setFlagPrecessionParts(const bool displayed);
619
        //! Accessor for displaying precession circle partitions.
620
        bool getFlagPrecessionParts() const;
621
        //! Setter for displaying precession circle partition labels.
622
        void setFlagPrecessionLabeled(const bool displayed);
623
        //! Accessor for displaying precession circle partition labels.
624
        bool getFlagPrecessionLabeled() const;
625
        //! Get the current color of the precession circles.
626
        Vec3f getColorPrecessionCircles() const;
627
        //! Set the color of the precession circles.
628
        //! @param newColor The color of precession circles
629
        //! @code
630
        //! // example of usage in scripts (Qt6-based Stellarium)
631
        //! var c = new Color(1.0, 0.0, 0.0);
632
        //! GridLinesMgr.setColorPrecessionCircles(c.toVec3f());
633
        //! @endcode
634
        void setColorPrecessionCircles(const Vec3f& newColor);
635

636
        //! Setter for displaying Meridian Line.
637
        void setFlagMeridianLine(const bool displayed);
638
        //! Accessor for displaying Meridian Line.
639
        bool getFlagMeridianLine() const;
640
        //! Setter for displaying Meridian line partitions.
641
        void setFlagMeridianParts(const bool displayed);
642
        //! Accessor for displaying Meridian line partitions.
643
        bool getFlagMeridianParts() const;
644
        //! Setter for displaying Meridian line partition labels.
645
        void setFlagMeridianLabeled(const bool displayed);
646
        //! Accessor for displaying Meridian line partition labels.
647
        bool getFlagMeridianLabeled() const;
648
        //! Get the current color of the Meridian Line.
649
        Vec3f getColorMeridianLine() const;
650
        //! Set the color of the Meridian Line.
651
        //! @param newColor The color of meridian line
652
        //! @code
653
        //! // example of usage in scripts (Qt6-based Stellarium)
654
        //! var c = new Color(1.0, 0.0, 0.0);
655
        //! GridLinesMgr.setColorMeridianLine(c.toVec3f());
656
        //! @endcode
657
        void setColorMeridianLine(const Vec3f& newColor);
658

659
        //! Setter for displaying opposition/conjunction longitude line.
660
        void setFlagLongitudeLine(const bool displayed);
661
        //! Accessor for displaying opposition/conjunction longitude line.
662
        bool getFlagLongitudeLine() const;
663
        //! Setter for displaying opposition/conjunction longitude line partitions.
664
        void setFlagLongitudeParts(const bool displayed);
665
        //! Accessor for displaying opposition/conjunction longitude line partitions.
666
        bool getFlagLongitudeParts() const;
667
        //! Setter for displaying opposition/conjunction longitude line partition labels.
668
        void setFlagLongitudeLabeled(const bool displayed);
669
        //! Accessor for displaying opposition/conjunction longitude line partition labels.
670
        bool getFlagLongitudeLabeled() const;
671
        //! Get the current color of the opposition/conjunction longitude line.
672
        Vec3f getColorLongitudeLine() const;
673
        //! Set the color of the opposition/conjunction longitude line.
674
        //! @param newColor The color of opposition/conjunction longitude line
675
        //! @code
676
        //! // example of usage in scripts (Qt6-based Stellarium)
677
        //! var c = new Color(1.0, 0.0, 0.0);
678
        //! GridLinesMgr.setColorLongitudeLine(c.toVec3f());
679
        //! @endcode
680
        void setColorLongitudeLine(const Vec3f& newColor);
681

682
        //! Setter for displaying quadrature line.
683
        void setFlagQuadratureLine(const bool displayed);
684
        //! Accessor for displaying quadrature line.
685
        bool getFlagQuadratureLine() const;
686
        //! Get the current color of the quadrature line.
687
        Vec3f getColorQuadratureLine() const;
688
        //! Set the color of the quadrature line.
689
        //! @param newColor The color of quadrature line
690
        //! @code
691
        //! // example of usage in scripts (Qt6-based Stellarium)
692
        //! var c = new Color(1.0, 0.0, 0.0);
693
        //! GridLinesMgr.setColorQuadratureLine(c.toVec3f());
694
        //! @endcode
695
        void setColorQuadratureLine(const Vec3f& newColor);
696

697
        //! Setter for displaying Horizon Line.
698
        void setFlagHorizonLine(const bool displayed);
699
        //! Accessor for displaying Horizon Line.
700
        bool getFlagHorizonLine() const;
701
        //! Setter for displaying Horizon Line partitions.
702
        void setFlagHorizonParts(const bool displayed);
703
        //! Accessor for displaying Horizon Line partitions.
704
        bool getFlagHorizonParts() const;
705
        //! Setter for displaying Horizon Line partition labels.
706
        void setFlagHorizonLabeled(const bool displayed);
707
        //! Accessor for displaying Horizon Line partition labels.
708
        bool getFlagHorizonLabeled() const;
709
        //! Get the current color of the Horizon Line.
710
        Vec3f getColorHorizonLine() const;
711
        //! Set the color of the Horizon Line.
712
        //! @param newColor The color of horizon line
713
        //! @code
714
        //! // example of usage in scripts (Qt6-based Stellarium)
715
        //! var c = new Color(1.0, 0.0, 0.0);
716
        //! GridLinesMgr.setColorHorizonLine(c.toVec3f());
717
        //! @endcode
718
        void setColorHorizonLine(const Vec3f& newColor);
719

720
        //! Setter for displaying Galactic Equator Line.
721
        void setFlagGalacticEquatorLine(const bool displayed);
722
        //! Accessor for displaying Galactic Equator Line.
723
        bool getFlagGalacticEquatorLine() const;
724
        //! Setter for displaying Galactic Equator Line partitions.
725
        void setFlagGalacticEquatorParts(const bool displayed);
726
        //! Accessor for displaying Galactic Equator Line partitions.
727
        bool getFlagGalacticEquatorParts() const;
728
        //! Setter for displaying Galactic Equator Line partition labels.
729
        void setFlagGalacticEquatorLabeled(const bool displayed);
730
        //! Accessor for displaying Galactic Equator Line partition labels.
731
        bool getFlagGalacticEquatorLabeled() const;
732
        //! Get the current color of the Galactic Equator Line.
733
        Vec3f getColorGalacticEquatorLine() const;
734
        //! Set the color of the Galactic Equator Line.
735
        //! @param newColor The color of galactic equator line
736
        //! @code
737
        //! // example of usage in scripts (Qt6-based Stellarium)
738
        //! var c = new Color(1.0, 0.0, 0.0);
739
        //! GridLinesMgr.setColorGalacticEquatorLine(c.toVec3f());
740
        //! @endcode
741
        void setColorGalacticEquatorLine(const Vec3f& newColor);
742

743
        //! Setter for displaying Supergalactic Equator Line.
744
        void setFlagSupergalacticEquatorLine(const bool displayed);
745
        //! Accessor for displaying Supergalactic Equator Line.
746
        bool getFlagSupergalacticEquatorLine() const;
747
        //! Setter for displaying Supergalactic Equator Line partitions.
748
        void setFlagSupergalacticEquatorParts(const bool displayed);
749
        //! Accessor for displaying Supergalactic Equator Line partitions.
750
        bool getFlagSupergalacticEquatorParts() const;
751
        //! Setter for displaying Supergalactic Equator Line partition labels.
752
        void setFlagSupergalacticEquatorLabeled(const bool displayed);
753
        //! Accessor for displaying Supergalactic Equator Line partition labels.
754
        bool getFlagSupergalacticEquatorLabeled() const;
755
        //! Get the current color of the Supergalactic Equator Line.
756
        Vec3f getColorSupergalacticEquatorLine() const;
757
        //! Set the color of the Supergalactic Equator Line.
758
        //! @param newColor The color of supergalactic equator line
759
        //! @code
760
        //! // example of usage in scripts (Qt6-based Stellarium)
761
        //! var c = new Color(1.0, 0.0, 0.0);
762
        //! GridLinesMgr.setColorSupergalacticEquatorLine(c.toVec3f());
763
        //! @endcode
764
        void setColorSupergalacticEquatorLine(const Vec3f& newColor);
765

766
        //! Setter for displaying the Prime Vertical Line.
767
        void setFlagPrimeVerticalLine(const bool displayed);
768
        //! Accessor for displaying Prime Vertical Line.
769
        bool getFlagPrimeVerticalLine() const;
770
        //! Setter for displaying the Prime Vertical Line partitions.
771
        void setFlagPrimeVerticalParts(const bool displayed);
772
        //! Accessor for displaying Prime Vertical Line partitions.
773
        bool getFlagPrimeVerticalParts() const;
774
        //! Setter for displaying the Prime Vertical Line partition labels.
775
        void setFlagPrimeVerticalLabeled(const bool displayed);
776
        //! Accessor for displaying Prime Vertical Line partition labels.
777
        bool getFlagPrimeVerticalLabeled() const;
778
        //! Get the current color of the Prime Vertical Line.
779
        Vec3f getColorPrimeVerticalLine() const;
780
        //! Set the color of the Prime Vertical Line.
781
        //! @param newColor The color of the Prime Vertical line
782
        //! @code
783
        //! // example of usage in scripts (Qt6-based Stellarium)
784
        //! var c = new Color(1.0, 0.0, 0.0);
785
        //! GridLinesMgr.setColorPrimeVerticalLine(c.toVec3f());
786
        //! @endcode
787
        void setColorPrimeVerticalLine(const Vec3f& newColor);
788

789
        //! Setter for displaying the Current Vertical Line.
790
        void setFlagCurrentVerticalLine(const bool displayed);
791
        //! Accessor for displaying Current Vertical Line.
792
        bool getFlagCurrentVerticalLine() const;
793
        //! Setter for displaying the Current Vertical Line partitions.
794
        void setFlagCurrentVerticalParts(const bool displayed);
795
        //! Accessor for displaying Current Vertical Line partitions.
796
        bool getFlagCurrentVerticalParts() const;
797
        //! Setter for displaying the Current Vertical Line partition labels.
798
        void setFlagCurrentVerticalLabeled(const bool displayed);
799
        //! Accessor for displaying Current Vertical Line partition labels.
800
        bool getFlagCurrentVerticalLabeled() const;
801
        //! Get the current color of the Current Vertical Line.
802
        Vec3f getColorCurrentVerticalLine() const;
803
        //! Set the color of the Current Vertical Line.
804
        //! @param newColor The color of the Current Vertical line
805
        //! @code
806
        //! // example of usage in scripts (Qt6-based Stellarium)
807
        //! var c = new Color(1.0, 0.0, 0.0);
808
        //! GridLinesMgr.setColorCurrentVerticalLine(c.toVec3f());
809
        //! @endcode
810
        void setColorCurrentVerticalLine(const Vec3f& newColor);
811

812
        //! Setter for displaying the Colure Lines.
813
        void setFlagColureLines(const bool displayed);
814
        //! Accessor for displaying the Colure Lines.
815
        bool getFlagColureLines() const;
816
        //! Setter for displaying the Colure Line partitions.
817
        void setFlagColureParts(const bool displayed);
818
        //! Accessor for displaying the Colure Line partitions.
819
        bool getFlagColureParts() const;
820
        //! Setter for displaying the Colure Line partition labels.
821
        void setFlagColureLabeled(const bool displayed);
822
        //! Accessor for displaying the Colure Line partitions.
823
        bool getFlagColureLabeled() const;
824
        //! Get the current color of the Colure Lines.
825
        Vec3f getColorColureLines() const;
826
        //! Set the color of the Colure Lines.
827
        //! @param newColor The color of the Colure lines
828
        //! @code
829
        //! // example of usage in scripts (Qt6-based Stellarium)
830
        //! var c = new Color(1.0, 0.0, 0.0);
831
        //! GridLinesMgr.setColorColureLines(c.toVec3f());
832
        //! @endcode
833
        void setColorColureLines(const Vec3f& newColor);
834

835
        //! Setter for displaying circumpolar circles.
836
        void setFlagCircumpolarCircles(const bool displayed);
837
        //! Accessor for displaying circumpolar circles.
838
        bool getFlagCircumpolarCircles() const;
839
        //! Get the current color of the circumpolar circles.
840
        Vec3f getColorCircumpolarCircles() const;
841
        //! Set the color of the circumpolar circles.
842
        //! @param newColor The color of circumpolar circles
843
        //! @code
844
        //! // example of usage in scripts (Qt6-based Stellarium)
845
        //! var c = new Color(1.0, 0.0, 0.0);
846
        //! GridLinesMgr.setColorCircumpolarCircles(c.toVec3f());
847
        //! @endcode
848
        void setColorCircumpolarCircles(const Vec3f& newColor);
849

850
        //! Setter for displaying umbra circle.
851
        void setFlagUmbraCircle(const bool displayed);
852
        //! Accessor for displaying umbra circle.
853
        bool getFlagUmbraCircle() const;
854
        //! Get the current color of the umbra circle.
855
        Vec3f getColorUmbraCircle() const;
856
        //! Set the color of the umbra circle.
857
        //! @param newColor The color of umbra circle
858
        //! @code
859
        //! // example of usage in scripts (Qt6-based Stellarium)
860
        //! var c = new Color(1.0, 0.0, 0.0);
861
        //! GridLinesMgr.setColorUmbraCircle(c.toVec3f());
862
        //! @endcode
863
        void setColorUmbraCircle(const Vec3f& newColor);
864

865
        //! Setter for displaying penumbra circle.
866
        void setFlagPenumbraCircle(const bool displayed);
867
        //! Accessor for displaying penumbra circle.
868
        bool getFlagPenumbraCircle() const;
869
        //! Get the current color of the penumbra circle.
870
        Vec3f getColorPenumbraCircle() const;
871
        //! Set the color of the penumbra circle.
872
        //! @param newColor The color of penumbra circle
873
        //! @code
874
        //! // example of usage in scripts (Qt6-based Stellarium)
875
        //! var c = new Color(1.0, 0.0, 0.0);
876
        //! GridLinesMgr.setColorPenumbraCircle(c.toVec3f());
877
        //! @endcode
878
        void setColorPenumbraCircle(const Vec3f& newColor);
879

880
        //! Setter for displaying celestial poles of J2000.
881
        void setFlagCelestialJ2000Poles(const bool displayed);
882
        //! Accessor for displaying celestial poles of J2000.
883
        bool getFlagCelestialJ2000Poles() const;
884
        //! Get the current color of the celestial poles of J2000.
885
        Vec3f getColorCelestialJ2000Poles() const;
886
        //! Set the color of the celestial poles of J2000.
887
        //! @param newColor The color of celestial poles of J2000
888
        //! @code
889
        //! // example of usage in scripts (Qt6-based Stellarium)
890
        //! var c = new Color(1.0, 0.0, 0.0);
891
        //! GridLinesMgr.setColorCelestialJ2000Poles(c.toVec3f());
892
        //! @endcode
893
        void setColorCelestialJ2000Poles(const Vec3f& newColor);
894

895
        //! Setter for displaying celestial poles.
896
        void setFlagCelestialPoles(const bool displayed);
897
        //! Accessor for displaying celestial poles.
898
        bool getFlagCelestialPoles() const;
899
        //! Get the current color of the celestial poles.
900
        Vec3f getColorCelestialPoles() const;
901
        //! Set the color of the celestial poles.
902
        //! @param newColor The color of celestial poles
903
        //! @code
904
        //! // example of usage in scripts (Qt6-based Stellarium)
905
        //! var c = new Color(1.0, 0.0, 0.0);
906
        //! GridLinesMgr.setColorCelestialPoles(c.toVec3f());
907
        //! @endcode
908
        void setColorCelestialPoles(const Vec3f& newColor);
909

910
        //! Setter for displaying zenith and nadir.
911
        void setFlagZenithNadir(const bool displayed);
912
        //! Accessor for displaying zenith and nadir.
913
        bool getFlagZenithNadir() const;
914
        //! Get the current color of the zenith and nadir.
915
        Vec3f getColorZenithNadir() const;
916
        //! Set the color of the zenith and nadir.
917
        //! @param newColor The color of zenith and nadir
918
        //! @code
919
        //! // example of usage in scripts (Qt6-based Stellarium)
920
        //! var c = new Color(1.0, 0.0, 0.0);
921
        //! GridLinesMgr.setColorZenithNadir(c.toVec3f());
922
        //! @endcode
923
        void setColorZenithNadir(const Vec3f& newColor);
924

925
        //! Setter for displaying ecliptic poles of J2000.
926
        void setFlagEclipticJ2000Poles(const bool displayed);
927
        //! Accessor for displaying ecliptic poles of J2000.
928
        bool getFlagEclipticJ2000Poles() const;
929
        //! Get the current color of the ecliptic poles of J2000.
930
        Vec3f getColorEclipticJ2000Poles() const;
931
        //! Set the color of the ecliptic poles of J2000.
932
        //! @param newColor The color of ecliptic poles of J2000
933
        //! @code
934
        //! // example of usage in scripts (Qt6-based Stellarium)
935
        //! var c = new Color(1.0, 0.0, 0.0);
936
        //! GridLinesMgr.setColorEclipticJ2000Poles(c.toVec3f());
937
        //! @endcode
938
        void setColorEclipticJ2000Poles(const Vec3f& newColor);
939

940
        //! Setter for displaying ecliptic poles.
941
        void setFlagEclipticPoles(const bool displayed);
942
        //! Accessor for displaying ecliptic poles.
943
        bool getFlagEclipticPoles() const;
944
        //! Get the current color of the ecliptic poles.
945
        Vec3f getColorEclipticPoles() const;
946
        //! Set the color of the ecliptic poles.
947
        //! @param newColor The color of ecliptic poles
948
        //! @code
949
        //! // example of usage in scripts (Qt6-based Stellarium)
950
        //! var c = new Color(1.0, 0.0, 0.0);
951
        //! GridLinesMgr.setColorEclipticPoles(c.toVec3f());
952
        //! @endcode
953
        void setColorEclipticPoles(const Vec3f& newColor);
954

955
        //! Setter for displaying galactic poles.
956
        void setFlagGalacticPoles(const bool displayed);
957
        //! Accessor for displaying galactic poles.
958
        bool getFlagGalacticPoles() const;
959
        //! Get the current color of the galactic poles.
960
        Vec3f getColorGalacticPoles() const;
961
        //! Set the color of the galactic poles.
962
        //! @param newColor The color of galactic poles
963
        //! @code
964
        //! // example of usage in scripts (Qt6-based Stellarium)
965
        //! var c = new Color(1.0, 0.0, 0.0);
966
        //! GridLinesMgr.setColorGalacticPoles(c.toVec3f());
967
        //! @endcode
968
        void setColorGalacticPoles(const Vec3f& newColor);
969

970
        //! Setter for displaying galactic center and anticenter markers.
971
        void setFlagGalacticCenter(const bool displayed);
972
        //! Accessor for displaying galactic center and anticenter markers.
973
        bool getFlagGalacticCenter() const;
974
        //! Get the current color of the galactic center and anticenter markers.
975
        Vec3f getColorGalacticCenter() const;
976
        //! Set the color of the galactic center and anticenter markers.
977
        //! @param newColor The color of galactic center and anticenter markers
978
        //! @code
979
        //! // example of usage in scripts (Qt6-based Stellarium)
980
        //! var c = new Color(1.0, 0.0, 0.0);
981
        //! GridLinesMgr.setColorGalacticCenter(c.toVec3f());
982
        //! @endcode
983
        void setColorGalacticCenter(const Vec3f& newColor);
984

985
        //! Setter for displaying supergalactic poles.
986
        void setFlagSupergalacticPoles(const bool displayed);
987
        //! Accessor for displaying supergalactic poles.
988
        bool getFlagSupergalacticPoles() const;
989
        //! Get the current color of the supergalactic poles.
990
        Vec3f getColorSupergalacticPoles() const;
991
        //! Set the color of the supergalactic poles.
992
        //! @param newColor The color of supergalactic poles
993
        //! @code
994
        //! // example of usage in scripts (Qt6-based Stellarium)
995
        //! var c = new Color(1.0, 0.0, 0.0);
996
        //! GridLinesMgr.setColorSupergalacticPoles(c.toVec3f());
997
        //! @endcode
998
        void setColorSupergalacticPoles(const Vec3f& newColor);
999

1000
        //! Setter for displaying equinox points of J2000.
1001
        void setFlagEquinoxJ2000Points(const bool displayed);
1002
        //! Accessor for displaying equinox points of J2000.
1003
        bool getFlagEquinoxJ2000Points() const;
1004
        //! Get the current color of the equinox points of J2000.
1005
        Vec3f getColorEquinoxJ2000Points() const;
1006
        //! Set the color of the equinox points of J2000.
1007
        //! @param newColor The color of equinox points
1008
        //! @code
1009
        //! // example of usage in scripts (Qt6-based Stellarium)
1010
        //! var c = new Color(1.0, 0.0, 0.0);
1011
        //! GridLinesMgr.setColorEquinoxJ2000Points(c.toVec3f());
1012
        //! @endcode
1013
        void setColorEquinoxJ2000Points(const Vec3f& newColor);
1014

1015
        //! Setter for displaying equinox points.
1016
        void setFlagEquinoxPoints(const bool displayed);
1017
        //! Accessor for displaying equinox points.
1018
        bool getFlagEquinoxPoints() const;
1019
        //! Get the current color of the equinox points.
1020
        Vec3f getColorEquinoxPoints() const;
1021
        //! Set the color of the equinox points.
1022
        //! @param newColor The color of equinox points
1023
        //! @code
1024
        //! // example of usage in scripts (Qt6-based Stellarium)
1025
        //! var c = new Color(1.0, 0.0, 0.0);
1026
        //! GridLinesMgr.setColorEquinoxPoints(c.toVec3f());
1027
        //! @endcode
1028
        void setColorEquinoxPoints(const Vec3f& newColor);
1029

1030
        //! Setter for displaying solstice points of J2000.
1031
        void setFlagSolsticeJ2000Points(const bool displayed);
1032
        //! Accessor for displaying solstice points of J2000.
1033
        bool getFlagSolsticeJ2000Points() const;
1034
        //! Get the current color of the solstice points of J2000.
1035
        Vec3f getColorSolsticeJ2000Points() const;
1036
        //! Set the color of the solstice points of J2000.
1037
        //! @param newColor The color of solstice points
1038
        //! @code
1039
        //! // example of usage in scripts (Qt6-based Stellarium)
1040
        //! var c = new Color(1.0, 0.0, 0.0);
1041
        //! GridLinesMgr.setColorSolsticeJ2000Points(c.toVec3f());
1042
        //! @endcode
1043
        void setColorSolsticeJ2000Points(const Vec3f& newColor);
1044

1045
        //! Setter for displaying solstice points.
1046
        void setFlagSolsticePoints(const bool displayed);
1047
        //! Accessor for displaying solstice points.
1048
        bool getFlagSolsticePoints() const;
1049
        //! Get the current color of the solstice points.
1050
        Vec3f getColorSolsticePoints() const;
1051
        //! Set the color of the solstice points.
1052
        //! @param newColor The color of solstice points
1053
        //! @code
1054
        //! // example of usage in scripts (Qt6-based Stellarium)
1055
        //! var c = new Color(1.0, 0.0, 0.0);
1056
        //! GridLinesMgr.setColorSolsticePoints(c.toVec3f());
1057
        //! @endcode
1058
        void setColorSolsticePoints(const Vec3f& newColor);
1059

1060
        //! Setter for displaying antisolar point.
1061
        void setFlagAntisolarPoint(const bool displayed);
1062
        //! Accessor for displaying antisolar point.
1063
        bool getFlagAntisolarPoint() const;
1064
        //! Get the current color of the antisolar point.
1065
        Vec3f getColorAntisolarPoint() const;
1066
        //! Set the color of the antisolar point.
1067
        //! @param newColor The color of antisolar point
1068
        //! @code
1069
        //! // example of usage in scripts (Qt6-based Stellarium)
1070
        //! var c = new Color(1.0, 0.0, 0.0);
1071
        //! GridLinesMgr.setColorAntisolarPoint(c.toVec3f());
1072
        //! @endcode
1073
        void setColorAntisolarPoint(const Vec3f& newColor);
1074

1075
        //! Setter for displaying the point of the center of umbra.
1076
        void setFlagUmbraCenterPoint(const bool displayed);
1077
        //! Accessor for displaying the point of the center of umbra.
1078
        bool getFlagUmbraCenterPoint() const;
1079

1080
        //! Setter for displaying the Apex and Antapex points, i.e. where the observer planet is heading to or coming from, respectively
1081
        void setFlagApexPoints(const bool displayed);
1082
        //! Accessor for displaying Apex/Antapex points.
1083
        bool getFlagApexPoints() const;
1084
        //! Get the current color of the Apex/Antapex points.
1085
        Vec3f getColorApexPoints() const;
1086
        //! Set the color of the Apex/Antapex points.
1087
        //! @param newColor The color of Apex/Antapex points.
1088
        //! @code
1089
        //! // example of usage in scripts (Qt6-based Stellarium)
1090
        //! var c = new Color(1.0, 0.0, 0.0);
1091
        //! GridLinesMgr.setColorApexPoints(c.toVec3f());
1092
        //! @endcode
1093
        void setColorApexPoints(const Vec3f& newColor);
1094

1095
        //! Set the thickness of lines
1096
        //! @param thickness of line in pixels
1097
        void setLineThickness(const float thickness);
1098
        //! Get the thickness of lines
1099
        float getLineThickness() const;
1100

1101
        //! Set the thickness of partition lines
1102
        //! @param thickness of line in pixels
1103
        void setPartThickness(const float thickness);
1104
        //! Get the thickness of lines
1105
        float getPartThickness() const;
1106

1107
signals:
1108
        void gridlinesDisplayedChanged(const bool);
1109
        void lineThicknessChanged(const float);
1110
        void partThicknessChanged(const float);
1111
        void azimuthalGridDisplayedChanged(const bool);
1112
        void azimuthalGridColorChanged(const Vec3f & newColor);
1113
        void equatorGridDisplayedChanged(const bool displayed);
1114
        void equatorGridColorChanged(const Vec3f & newColor);
1115
        void fixedEquatorGridDisplayedChanged(const bool displayed);
1116
        void fixedEquatorGridColorChanged(const Vec3f & newColor);
1117
        void equatorJ2000GridDisplayedChanged(const bool displayed);
1118
        void equatorJ2000GridColorChanged(const Vec3f & newColor);
1119
        void eclipticGridDisplayedChanged(const bool displayed);
1120
        void eclipticGridColorChanged(const Vec3f & newColor);
1121
        void eclipticJ2000GridDisplayedChanged(const bool displayed);
1122
        void eclipticJ2000GridColorChanged(const Vec3f & newColor);
1123
        void galacticGridDisplayedChanged(const bool displayed);
1124
        void galacticGridColorChanged(const Vec3f & newColor);
1125
        void supergalacticGridDisplayedChanged(const bool displayed);
1126
        void supergalacticGridColorChanged(const Vec3f & newColor);
1127
        void equatorLineDisplayedChanged(const bool displayed);
1128
        void equatorPartsDisplayedChanged(const bool displayed);
1129
        void equatorPartsLabeledChanged(const bool displayed);
1130
        void equatorLineColorChanged(const Vec3f & newColor);
1131
        void equatorJ2000LineDisplayedChanged(const bool displayed);
1132
        void equatorJ2000PartsDisplayedChanged(const bool displayed);
1133
        void equatorJ2000PartsLabeledChanged(const bool displayed);
1134
        void equatorJ2000LineColorChanged(const Vec3f & newColor);
1135
        void fixedEquatorLineDisplayedChanged(const bool displayed);
1136
        void fixedEquatorPartsDisplayedChanged(const bool displayed);
1137
        void fixedEquatorPartsLabeledChanged(const bool displayed);
1138
        void fixedEquatorLineColorChanged(const Vec3f & newColor);
1139
        void eclipticLineDisplayedChanged(const bool displayed);
1140
        void eclipticPartsDisplayedChanged(const bool displayed);
1141
        void eclipticPartsLabeledChanged(const bool displayed);
1142
        void eclipticDatesLabeledChanged(const bool displayed);
1143
        void eclipticLineColorChanged(const Vec3f & newColor);
1144
        void invariablePlaneLineDisplayedChanged(const bool displayed);
1145
        //void invariablePlanePartsDisplayedChanged(const bool displayed);
1146
        //void invariablePlanePartsLabeledChanged(const bool displayed);
1147
        void invariablePlaneLineColorChanged(const Vec3f & newColor);
1148
        void solarEquatorLineDisplayedChanged(const bool displayed);
1149
        void solarEquatorPartsDisplayedChanged(const bool displayed);
1150
        void solarEquatorPartsLabeledChanged(const bool displayed);
1151
        void solarEquatorLineColorChanged(const Vec3f & newColor);
1152
        void eclipticJ2000LineDisplayedChanged(const bool displayed);
1153
        void eclipticJ2000PartsDisplayedChanged(const bool displayed);
1154
        void eclipticJ2000PartsLabeledChanged(const bool displayed);
1155
        void eclipticJ2000LineColorChanged(const Vec3f & newColor);
1156
        void precessionCirclesDisplayedChanged(const bool displayed);
1157
        void precessionPartsDisplayedChanged(const bool displayed);
1158
        void precessionPartsLabeledChanged(const bool displayed);
1159
        void precessionCirclesColorChanged(const Vec3f & newColor);
1160
        void meridianLineDisplayedChanged(const bool displayed);
1161
        void meridianPartsDisplayedChanged(const bool displayed);
1162
        void meridianPartsLabeledChanged(const bool displayed);
1163
        void meridianLineColorChanged(const Vec3f & newColor);
1164
        void longitudeLineDisplayedChanged(const bool displayed);
1165
        void longitudePartsDisplayedChanged(const bool displayed);
1166
        void longitudePartsLabeledChanged(const bool displayed);
1167
        void longitudeLineColorChanged(const Vec3f & newColor);
1168
        void quadratureLineDisplayedChanged(const bool displayed);
1169
        void quadratureLineColorChanged(const Vec3f & newColor);
1170
        void horizonLineDisplayedChanged(const bool displayed);
1171
        void horizonPartsDisplayedChanged(const bool displayed);
1172
        void horizonPartsLabeledChanged(const bool displayed);
1173
        void horizonLineColorChanged(const Vec3f & newColor);
1174
        void galacticEquatorLineDisplayedChanged(const bool displayed);
1175
        void galacticEquatorPartsDisplayedChanged(const bool displayed);
1176
        void galacticEquatorPartsLabeledChanged(const bool displayed);
1177
        void galacticEquatorLineColorChanged(const Vec3f & newColor);
1178
        void supergalacticEquatorLineDisplayedChanged(const bool displayed);
1179
        void supergalacticEquatorPartsDisplayedChanged(const bool displayed);
1180
        void supergalacticEquatorPartsLabeledChanged(const bool displayed);
1181
        void supergalacticEquatorLineColorChanged(const Vec3f & newColor);
1182
        void primeVerticalLineDisplayedChanged(const bool displayed);
1183
        void primeVerticalPartsDisplayedChanged(const bool displayed);
1184
        void primeVerticalPartsLabeledChanged(const bool displayed);
1185
        void primeVerticalLineColorChanged(const Vec3f & newColor);
1186
        void currentVerticalLineDisplayedChanged(const bool displayed);
1187
        void currentVerticalPartsDisplayedChanged(const bool displayed);
1188
        void currentVerticalPartsLabeledChanged(const bool displayed);
1189
        void currentVerticalLineColorChanged(const Vec3f & newColor);
1190
        void colureLinesDisplayedChanged(const bool displayed);
1191
        void colurePartsDisplayedChanged(const bool displayed);
1192
        void colurePartsLabeledChanged(const bool displayed);
1193
        void colureLinesColorChanged(const Vec3f & newColor);
1194
        void circumpolarCirclesDisplayedChanged(const bool displayed);
1195
        void circumpolarCirclesColorChanged(const Vec3f & newColor);
1196
        void umbraCircleDisplayedChanged(const bool displayed);
1197
        void umbraCircleColorChanged(const Vec3f & newColor);
1198
        void penumbraCircleDisplayedChanged(const bool displayed);
1199
        void penumbraCircleColorChanged(const Vec3f & newColor);
1200
        void celestialJ2000PolesDisplayedChanged(const bool displayed);
1201
        void celestialJ2000PolesColorChanged(const Vec3f & newColor);
1202
        void celestialPolesDisplayedChanged(const bool displayed);
1203
        void celestialPolesColorChanged(const Vec3f & newColor);
1204
        void zenithNadirDisplayedChanged(const bool displayed);
1205
        void zenithNadirColorChanged(const Vec3f & newColor);
1206
        void eclipticJ2000PolesDisplayedChanged(const bool displayed);
1207
        void eclipticJ2000PolesColorChanged(const Vec3f & newColor);
1208
        void eclipticPolesDisplayedChanged(const bool displayed);
1209
        void eclipticPolesColorChanged(const Vec3f & newColor);
1210
        void galacticPolesDisplayedChanged(const bool displayed);
1211
        void galacticPolesColorChanged(const Vec3f & newColor);
1212
        void galacticCenterDisplayedChanged(const bool displayed);
1213
        void galacticCenterColorChanged(const Vec3f & newColor);
1214
        void supergalacticPolesDisplayedChanged(const bool displayed);
1215
        void supergalacticPolesColorChanged(const Vec3f & newColor);
1216
        void equinoxJ2000PointsDisplayedChanged(const bool displayed);
1217
        void equinoxJ2000PointsColorChanged(const Vec3f & newColor);
1218
        void equinoxPointsDisplayedChanged(const bool displayed);
1219
        void equinoxPointsColorChanged(const Vec3f & newColor);
1220
        void solsticeJ2000PointsDisplayedChanged(const bool displayed);
1221
        void solsticeJ2000PointsColorChanged(const Vec3f & newColor);
1222
        void solsticePointsDisplayedChanged(const bool displayed);
1223
        void solsticePointsColorChanged(const Vec3f & newColor);
1224
        void antisolarPointDisplayedChanged(const bool displayed);
1225
        void antisolarPointColorChanged(const Vec3f & newColor);
1226
        void umbraCenterPointDisplayedChanged(const bool displayed);
1227
        void apexPointsDisplayedChanged(const bool displayed);
1228
        void apexPointsColorChanged(const Vec3f & newColor);
1229

1230
private slots:
1231
        //! Re-translate the labels of the great circles.
1232
        //! Contains only calls to SkyLine::updateLabel() and SkyPoint::updateLabel().
1233
        void updateLabels();
1234
        //! Connect the earth shared pointer.
1235
        //! Must be connected to SolarSystem::solarSystemDataReloaded()
1236
        void connectSolarSystem();
1237

1238
        //! Connect from StelApp to reset all fonts of the grids, lines and points.
1239
        void setFontSizeFromApp(int size);
1240

1241
private:
1242
        QSharedPointer<Planet> earth;                // shortcut Earth pointer. Must be reconnected whenever solar system has been reloaded.
1243
        bool gridlinesDisplayed;                // master switch to switch off all grids/lines. (useful for oculars plugin)
1244
        SkyGrid * equGrid;                        // Equatorial grid
1245
        SkyGrid * equJ2000Grid;                        // Equatorial J2000 grid
1246
        SkyGrid * fixedEquatorialGrid;                // Fixed Equatorial grid (hour angle/declination)
1247
        SkyGrid * galacticGrid;                        // Galactic grid
1248
        SkyGrid * supergalacticGrid;                // Supergalactic grid
1249
        SkyGrid * eclGrid;                        // Ecliptic of Date grid
1250
        SkyGrid * eclJ2000Grid;                        // Ecliptic J2000 grid
1251
        SkyGrid * aziGrid;                        // Azimuthal grid
1252
        SkyLine * equatorLine;                        // Celestial Equator line
1253
        SkyLine * equatorJ2000Line;                // Celestial Equator line of J2000
1254
        SkyLine * fixedEquatorLine;                // Fixed Celestial Equator line (hour angles)
1255
        SkyLine * eclipticLine;                        // Ecliptic line
1256
        SkyLine * eclipticWithDateLine;                // Ecliptic line (line actually invisible!) with date partitions for the current year indicating Solar position at midnight
1257
        SkyLine * eclipticJ2000Line;                // Ecliptic line of J2000
1258
        SkyLine * invariablePlaneLine;                // Invariable Plane of the Solar System (WGCCRE2015 report)
1259
        SkyLine * solarEquatorLine;                // Projected Solar equator (WGCCRE2015 report)
1260
        SkyLine * precessionCircleN;                // Northern precession circle
1261
        SkyLine * precessionCircleS;                // Southern precession circle
1262
        SkyLine * meridianLine;                        // Meridian line
1263
        SkyLine * longitudeLine;                // Opposition/conjunction longitude line
1264
        SkyLine * quadratureLine;                // Quadrature line
1265
        SkyLine * horizonLine;                        // Horizon line
1266
        SkyLine * galacticEquatorLine;                // line depicting the Galactic equator as defined by the IAU definition of Galactic coordinates (System II, 1958)
1267
        SkyLine * supergalacticEquatorLine;        // line depicting the Supergalactic equator
1268
        SkyLine * primeVerticalLine;                // Prime Vertical line
1269
        SkyLine * currentVerticalLine;                // Vertical line for azimuth of display center. Most useful if altitudes labeled.
1270
        SkyLine * colureLine_1;                        // First Colure line (0/12h)
1271
        SkyLine * colureLine_2;                        // Second Colure line (6/18h)
1272
        SkyLine * circumpolarCircleN;                // Northern circumpolar circle
1273
        SkyLine * circumpolarCircleS;                // Southern circumpolar circle
1274
        SkyLine * umbraCircle;                        // Umbra circle (Earth shadow in Lunar distance)
1275
        SkyLine * penumbraCircle;                // Penumbra circle (Earth partial shadow in Lunar distance)
1276
        SkyPoint * celestialJ2000Poles;                // Celestial poles of J2000
1277
        SkyPoint * celestialPoles;                // Celestial poles
1278
        SkyPoint * zenithNadir;                        // Zenith and nadir
1279
        SkyPoint * eclipticJ2000Poles;                // Ecliptic poles of J2000
1280
        SkyPoint * eclipticPoles;                // Ecliptic poles
1281
        SkyPoint * galacticPoles;                // Galactic poles
1282
        SkyPoint * galacticCenter;                // Galactic center and anticenter
1283
        SkyPoint * supergalacticPoles;                // Supergalactic poles
1284
        SkyPoint * equinoxJ2000Points;                // Equinox points of J2000
1285
        SkyPoint * equinoxPoints;                // Equinox points
1286
        SkyPoint * solsticeJ2000Points;                // Solstice points of J2000
1287
        SkyPoint * solsticePoints;                // Solstice points
1288
        SkyPoint * antisolarPoint;                // Antisolar point
1289
        SkyPoint * umbraCenterPoint;                // The point of the center of umbra
1290
        SkyPoint * apexPoints;                        // Apex and Antapex points, i.e. the point where the observer planet is moving to or receding from        
1291
};
1292

1293
#endif // GRIDLINESMGR_HPP
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2025 Coveralls, Inc