Stellarium 0.15.0
StelCore.hpp
1 /*
2  * Copyright (C) 2003 Fabien Chereau
3  * Copyright (C) 2012 Matthew Gates
4  * Copyright (C) 2015 Georg Zotti (Precession fixes)
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 _STELCORE_HPP_
22 #define _STELCORE_HPP_
23 
24 #include "StelProjector.hpp"
25 #include "StelProjectorType.hpp"
26 #include "StelLocation.hpp"
27 #include "StelSkyDrawer.hpp"
28 #include <QString>
29 #include <QStringList>
30 #include <QTime>
31 #include <QPair>
32 
33 class StelToneReproducer;
34 class StelSkyDrawer;
35 class StelGeodesicGrid;
36 class StelMovementMgr;
37 class StelObserver;
38 
48 class StelCore : public QObject
49 {
50  Q_OBJECT
51  Q_ENUMS(ProjectionType)
52  Q_ENUMS(DeltaTAlgorithm)
53  Q_PROPERTY(bool flipHorz READ getFlipHorz WRITE setFlipHorz)
54  Q_PROPERTY(bool flipVert READ getFlipVert WRITE setFlipVert)
55  Q_PROPERTY(bool flagUseNutation READ getUseNutation WRITE setUseNutation)
56  Q_PROPERTY(bool flagUseTopocentricCoordinates READ getUseTopocentricCoordinates WRITE setUseTopocentricCoordinates)
57 
58 public:
61  enum FrameType
62  {
63  FrameUninitialized,
64  FrameAltAz,
65  FrameHeliocentricEclipticJ2000,
66  FrameObservercentricEclipticJ2000,
67  FrameObservercentricEclipticOfDate,
68  FrameEquinoxEqu,
69  FrameJ2000,
72  FrameGalactic
74  };
75 
78  enum ProjectionType
79  {
80  ProjectionPerspective,
81  ProjectionEqualArea,
82  ProjectionStereographic,
83  ProjectionFisheye,
84  ProjectionHammer,
85  ProjectionCylinder,
86  ProjectionMercator,
87  ProjectionOrthographic,
88  ProjectionSinusoidal
89  };
90 
93  enum RefractionMode
94  {
95  RefractionAuto,
96  RefractionOn,
97  RefractionOff
98  };
99 
102  enum DeltaTAlgorithm
103  {
104  WithoutCorrection,
105  Schoch,
106  Clemence,
107  IAU,
108  AstronomicalEphemeris,
109  TuckermanGoldstine,
110  MullerStephenson,
111  Stephenson1978,
112  SchmadelZech1979,
113  MorrisonStephenson1982,
114  StephensonMorrison1984,
115  StephensonHoulden,
116  Espenak,
117  Borkowski,
118  SchmadelZech1988,
119  ChaprontTouze,
120  StephensonMorrison1995,
121  Stephenson1997,
122  ChaprontMeeus,
123  JPLHorizons,
124  MeeusSimons,
125  MontenbruckPfleger,
126  ReingoldDershowitz,
127  MorrisonStephenson2004,
128  Reijs,
129  EspenakMeeus,
130  EspenakMeeusZeroMoonAccel, // Espenak & Meeus (2006) algorithm for DeltaT (but without additional Lunar acceleration. FOR TESTING ONLY, NONPUBLIC)
131  Banjevic,
132  IslamSadiqQureshi,
133  KhalidSultanaZaidi,
134  Custom
135  };
136 
137  StelCore();
138  virtual ~StelCore();
139 
141  void init();
142 
145  void update(double deltaTime);
146 
148  void windowHasBeenResized(float x, float y, float width, float height);
149 
151  void preDraw();
152 
154  void postDraw();
155 
158  StelProjectorP getProjection2d() const;
159 
162  StelProjectorP getProjection(FrameType frameType, RefractionMode refractionMode=RefractionAuto) const;
163 
166  StelProjectorP getProjection(StelProjector::ModelViewTranformP modelViewTransform, ProjectionType projType=(ProjectionType)1000) const;
167 
169  StelToneReproducer* getToneReproducer();
171  const StelToneReproducer* getToneReproducer() const;
172 
174  StelSkyDrawer* getSkyDrawer();
176  const StelSkyDrawer* getSkyDrawer() const;
177 
179  const StelGeodesicGrid* getGeodesicGrid(int maxLevel) const;
180 
182  StelMovementMgr* getMovementMgr();
184  const StelMovementMgr* getMovementMgr() const;
185 
187  void setClippingPlanes(double znear, double zfar);
189  void getClippingPlanes(double* zn, double* zf) const;
190 
192  QString projectionTypeKeyToNameI18n(const QString& key) const;
193 
195  QString projectionNameI18nToTypeKey(const QString& nameI18n) const;
196 
198  StelProjector::StelProjectorParams getCurrentStelProjectorParams() const;
200  void setCurrentStelProjectorParams(const StelProjector::StelProjectorParams& newParams);
201 
203  void lookAtJ2000(const Vec3d& pos, const Vec3d& up);
204 
205  Vec3d altAzToEquinoxEqu(const Vec3d& v, RefractionMode refMode=RefractionAuto) const;
206  Vec3d equinoxEquToAltAz(const Vec3d& v, RefractionMode refMode=RefractionAuto) const;
207  Vec3d altAzToJ2000(const Vec3d& v, RefractionMode refMode=RefractionAuto) const;
208  Vec3d j2000ToAltAz(const Vec3d& v, RefractionMode refMode=RefractionAuto) const;
209  void j2000ToAltAzInPlaceNoRefraction(Vec3f* v) const {v->transfo4d(matJ2000ToAltAz);}
210  Vec3d galacticToJ2000(const Vec3d& v) const;
211  Vec3d equinoxEquToJ2000(const Vec3d& v) const;
212  Vec3d j2000ToEquinoxEqu(const Vec3d& v) const;
213  Vec3d j2000ToGalactic(const Vec3d& v) const;
214 
216  Vec3d heliocentricEclipticToAltAz(const Vec3d& v, RefractionMode refMode=RefractionAuto) const;
217 
219  Vec3d heliocentricEclipticToEquinoxEqu(const Vec3d& v) const;
220 // //! Transform vector from heliocentric coordinate to false equatorial : equatorial
221 // //! coordinate but centered on the observer position (useful for objects close to earth)
222 // //! Unused as of V0.13
223 // Vec3d heliocentricEclipticToEarthPosEquinoxEqu(const Vec3d& v) const;
224 
226  StelProjector::ModelViewTranformP getHeliocentricEclipticModelViewTransform(RefractionMode refMode=RefractionAuto) const;
227 
229  StelProjector::ModelViewTranformP getObservercentricEclipticJ2000ModelViewTransform(RefractionMode refMode=RefractionAuto) const;
230 
232  StelProjector::ModelViewTranformP getObservercentricEclipticOfDateModelViewTransform(RefractionMode refMode=RefractionAuto) const;
233 
235  StelProjector::ModelViewTranformP getEquinoxEquModelViewTransform(RefractionMode refMode=RefractionAuto) const;
236 
238  StelProjector::ModelViewTranformP getAltAzModelViewTransform(RefractionMode refMode=RefractionAuto) const;
239 
241  StelProjector::ModelViewTranformP getJ2000ModelViewTransform(RefractionMode refMode=RefractionAuto) const;
242 
244  StelProjector::ModelViewTranformP getGalacticModelViewTransform(RefractionMode refMode=RefractionAuto) const;
245 
247  static const Mat4d matJ2000ToVsop87;
249  static const Mat4d matVsop87ToJ2000;
251  static const Mat4d matJ2000ToGalactic;
253  static const Mat4d matGalacticToJ2000;
254 
256  Vec3d getObserverHeliocentricEclipticPos() const;
257 
259  const StelLocation& getCurrentLocation() const;
260 
261  const QSharedPointer<class Planet> getCurrentPlanet() const;
262 
264  const StelObserver* getCurrentObserver() const;
265 
266 
267  SphericalCap getVisibleSkyArea() const;
268 
274  void moveObserverTo(const StelLocation& target, double duration=1., double durationIfPlanetChange=1.);
275 
276  // Conversion in standard Julian time format
277  static const double JD_SECOND;
278  static const double JD_MINUTE;
279  static const double JD_HOUR;
280  static const double JD_DAY;
281  static const double ONE_OVER_JD_SECOND;
282 
285  double getLocalSiderealTime() const;
286 
288  double getLocalSiderealDayLength() const;
289 
291  double getLocalSiderealYearLength() const;
292 
295  QString getStartupTimeMode();
296  void setStartupTimeMode(const QString& s);
297 
302  QString getCurrentDeltaTAlgorithmValidRangeDescription(const double JD, QString* marker) const;
303 
307  bool isBrightDaylight() const;
308 
310  double getCurrentEpoch() const;
311 
313  QString getDefaultProjectionTypeKey(void) const;
314 
315 public slots:
317  void setCurrentProjectionType(ProjectionType type);
318  ProjectionType getCurrentProjectionType() const;
319 
321  QString getCurrentProjectionTypeKey(void) const;
323  void setCurrentProjectionTypeKey(QString type);
324 
326  QStringList getAllProjectionTypeKeys() const;
327 
329  void setCurrentDeltaTAlgorithm(DeltaTAlgorithm algorithm) { currentDeltaTAlgorithm=algorithm; }
331  DeltaTAlgorithm getCurrentDeltaTAlgorithm() const { return currentDeltaTAlgorithm; }
333  QString getCurrentDeltaTAlgorithmDescription(void) const;
335  QString getCurrentDeltaTAlgorithmKey(void) const;
337  void setCurrentDeltaTAlgorithmKey(QString type);
338 
341 
344  void setFlagGravityLabels(bool gravity);
346  void setDefaultAngleForGravityText(float a);
349  void setFlipHorz(bool flip);
352  void setFlipVert(bool flip);
355  bool getFlipHorz(void) const;
358  bool getFlipVert(void) const;
359 
361  QString getDefaultLocationID() const;
363  void setDefaultLocationID(const QString& id);
367  void returnToHome();
368 
370  void setJD(double newJD);
374  void setJDE(double newJDE);
376  double getJD() const;
380  double getJDE() const;
381 
385  void setMJDay(double MJD);
387  double getMJDay() const;
388 
400  double computeDeltaT(const double JD) const;
402  double getDeltaT() const;
403 
405  bool getUseNutation() const {return flagUseNutation;}
407  void setUseNutation(bool useNutation) { flagUseNutation=useNutation;}
408 
410  bool getUseTopocentricCoordinates() const {return flagUseTopocentricCoordinates;}
412  void setUseTopocentricCoordinates(bool use) { flagUseTopocentricCoordinates=use;}
413 
415  double getPresetSkyTime() const;
417  void setPresetSkyTime(double d);
418 
420  void setTimeRate(double ts);
422  double getTimeRate() const;
423 
425  void increaseTimeSpeed();
427  void decreaseTimeSpeed();
429  void increaseTimeSpeedLess();
431  void decreaseTimeSpeedLess();
432 
434  void setZeroTimeSpeed();
436  void setRealTimeSpeed();
438  void toggleRealTimeSpeed();
440  bool getRealTimeSpeed() const;
441 
443  void setTimeNow();
445  void setTodayTime(const QTime& target);
447  bool getIsTimeNow() const;
448 
450  QTime getInitTodayTime(void);
452  void setInitTodayTime(const QTime& time);
454  void setPresetSkyTime(QDateTime dateTime);
455 
457  void addHour();
459  void addDay();
461  void addWeek();
462 
465  void addSiderealDay();
469  void addSiderealYear();
473  void addSiderealYears(float n=100.f);
474 
476  void subtractHour();
478  void subtractDay();
480  void subtractWeek();
481 
484  void subtractSiderealDay();
488  void subtractSiderealYear();
492  void subtractSiderealYears(float n=100.f);
493 
495  void addSynodicMonth();
496 
498  void addDraconicYear();
500  void addDraconicMonth();
501 
503  void addAnomalisticMonth();
505  void addAnomalisticYear();
507  void addAnomalisticYears(float n=100.f);
508 
510  void addMeanTropicalMonth();
512  void addMeanTropicalYear();
514  void addMeanTropicalYears(float n=100.f);
516  void addTropicalYear();
517 
519  void addJulianYear();
521  void addJulianYears(float n=100.f);
522 
524  void addGaussianYear();
525 
527  void subtractSynodicMonth();
528 
530  void subtractDraconicYear();
532  void subtractDraconicMonth();
533 
539  void subtractAnomalisticYears(float n=100.f);
540 
546  void subtractMeanTropicalYears(float n=100.f);
548  void subtractTropicalYear();
549 
551  void subtractJulianYear();
553  void subtractJulianYears(float n=100.f);
554 
556  void subtractGaussianYear();
557 
560  void addSolarDays(double d);
564  void addSiderealDays(double d);
565 
568  void moveObserverToSelected();
569 
572  void setDeltaTCustomYear(float y) { deltaTCustomYear=y; }
575  void setDeltaTCustomNDot(float v) { deltaTCustomNDot=v; }
578  void setDeltaTCustomEquationCoefficients(Vec3f c) { deltaTCustomEquationCoeff=c; }
579 
581  float getDeltaTCustomYear() const { return deltaTCustomYear; }
583  float getDeltaTCustomNDot() const { return deltaTCustomNDot; }
585  Vec3f getDeltaTCustomEquationCoefficients() const { return deltaTCustomEquationCoeff; }
586 
587 signals:
591  void timeRateChanged(double rate);
592 
593 private:
594  StelToneReproducer* toneConverter; // Tones conversion between stellarium world and display device
595  StelSkyDrawer* skyDrawer;
596  StelMovementMgr* movementMgr; // Manage vision movements
597 
598  // Manage geodesic grid
599  mutable StelGeodesicGrid* geodesicGrid;
600 
601  // The currently used projection type
602  ProjectionType currentProjectionType;
603 
604  // The currentrly used time correction (DeltaT)
605  DeltaTAlgorithm currentDeltaTAlgorithm;
606 
607  // Parameters to use when creating new instances of StelProjector
608  StelProjector::StelProjectorParams currentProjectorParams;
609 
610  void updateTransformMatrices();
611  void updateTime(double deltaTime);
612  void resetSync();
613 
614 
615 
616  // Matrices used for every coordinate transfo
617  Mat4d matHeliocentricEclipticJ2000ToAltAz; // Transform from heliocentric ecliptic Cartesian (VSOP87A) to topocentric (StelObserver) altazimuthal coordinate
618  Mat4d matAltAzToHeliocentricEclipticJ2000; // Transform from topocentric (StelObserver) altazimuthal coordinate to heliocentric ecliptic Cartesian (VSOP87A)
619  Mat4d matAltAzToEquinoxEqu; // Transform from topocentric altazimuthal coordinate to Earth Equatorial
620  Mat4d matEquinoxEquToAltAz; // Transform from Earth Equatorial to topocentric (StelObserver) altazimuthal coordinate
621  Mat4d matHeliocentricEclipticToEquinoxEqu; // Transform from heliocentric ecliptic Cartesian (VSOP87A) to earth equatorial coordinate
622  Mat4d matEquinoxEquToJ2000; // For Earth, this is almost the inverse precession matrix, =Rz(VSOPbias)Rx(eps0)Rz(-psiA)Rx(-omA)Rz(chiA)
623  Mat4d matJ2000ToEquinoxEqu; // precession matrix
624 
625  Mat4d matJ2000ToAltAz;
626 
627  Mat4d matAltAzModelView; // Modelview matrix for observer-centric altazimuthal drawing
628  Mat4d invertMatAltAzModelView; // Inverted modelview matrix for observer-centric altazimuthal drawing
629 
630  // Position variables
631  StelObserver* position;
632  // The ID of the default startup location
633  QString defaultLocationID;
634 
635  // flag to indicate we want to use nutation (the small-scale wobble of earth's axis)
636  bool flagUseNutation;
637  // flag to indicate that we show topocentrically corrected coordinates. (Switching to false for planetocentric coordinates is new for 0.14)
638  bool flagUseTopocentricCoordinates;
639 
640  // Time variables
641  double timeSpeed; // Positive : forward, Negative : Backward, 1 = 1sec/sec
642  //double JDay; // Current time in Julian day. IN V0.12 TO V0.14, this was JD in TT, and all places where UT was required had to subtract getDeltaT() explicitly.
643  QPair<double,double> JD; // From 0.14 on: JD.first=JD_UT, JD.second=DeltaT=TT-UT. To gain JD_TT, compute JDE=JD.first+JD.second or better just call getJDE()
644  // Use is best with calls getJD()/setJD() and getJDE()/setJDE() to explicitly state which flavour of JD you need.
645  double presetSkyTime;
646  QTime initTodayTime;
647  QString startupTimeMode;
648  double secondsOfLastJDUpdate; // Time in seconds when the time rate or time last changed
649  double jdOfLastJDUpdate; // JD when the time rate or time last changed
650 
651  // Variables for custom equation of Delta-T
652  Vec3f deltaTCustomEquationCoeff;
653  float deltaTCustomNDot;
654  float deltaTCustomYear;
655 
656 };
657 
658 #endif // _STELCORE_HPP_
void subtractMeanTropicalYears(float n=100.f)
Subtract n mean tropical years to the simulation time.
void addAnomalisticYears(float n=100.f)
Add n anomalistic years to the simulation time.
void setTimeRate(double ts)
Set time speed in JDay/sec.
Store the informations for a location on a planet.
void setPresetSkyTime(double d)
Set the preset sky time from a JD.
void subtractSiderealYear()
Subtract one sidereal year to the simulation time.
void setCurrentProjectionType(ProjectionType type)
Set the current ProjectionType to use.
void subtractTropicalYear()
Subtract one tropical year to the simulation time.
void timeRateChanged(double rate)
This signal is emitted when the time rate has changed.
void addWeek()
Add one [Earth, solar] week to the current simulation time.
DeltaTAlgorithm getCurrentDeltaTAlgorithm() const
Get the current algorithm for time correction (DeltaT)
Definition: StelCore.hpp:331
Provide a set of methods used to draw sky objects taking into account eyes adaptation, zoom level, instrument model and artificially set magnitude limits.
void addSiderealDay()
Add one sidereal day to the simulation time.
QStringList getAllProjectionTypeKeys() const
Get the list of all the available projections.
void returnToDefaultLocation()
Return to the default location.
StelProjectorMaskType
Define viewport mask types.
bool getFlipHorz(void) const
Get the state of the horizontal flip.
void subtractJulianYears(float n=100.f)
Subtract n Julian years to the simulation time.
Vec3f getDeltaTCustomEquationCoefficients() const
Get coefficients for custom equation for calculation of Delta-T.
Definition: StelCore.hpp:585
void decreaseTimeSpeed()
Decrease the time speed.
bool getUseTopocentricCoordinates() const
Definition: StelCore.hpp:410
void subtractDraconicMonth()
Subtract one draconic month to the simulation time.
void subtractDay()
Subtract one [Earth, solar] day to the current simulation time.
double getMJDay() const
Get the current date in Modified Julian Day (UT)
void subtractJulianYear()
Subtract one Julian year to the simulation time.
void subtractAnomalisticYear()
Subtract one anomalistic year to the simulation time.
void setFlipVert(bool flip)
Set the vertical flip status.
A SphericalCap is defined by a direction and an aperture.
QString getCurrentDeltaTAlgorithmDescription(void) const
Get description of the current algorithm for time correction.
void addDay()
Add one [Earth, solar] day to the current simulation time.
void subtractSiderealYears(float n=100.f)
Subtract n sidereal years to the simulation time.
void setCurrentDeltaTAlgorithmKey(QString type)
Set the current algorithm to use from its key.
bool getUseNutation() const
Definition: StelCore.hpp:405
void setCurrentDeltaTAlgorithm(DeltaTAlgorithm algorithm)
Set the current algorithm for time correction (DeltaT)
Definition: StelCore.hpp:329
void setRealTimeSpeed()
Set real time speed, i.e. 1 sec/sec.
Main class for Stellarium core processing.
Definition: StelCore.hpp:48
double getJD() const
Get the current date in Julian Day (UT).
void addGaussianYear()
Add one Gaussian year to the simulation time.
void addSynodicMonth()
Add one synodic month to the simulation time.
Grid of triangles (zones) on the sphere with radius 1, generated by subdividing the icosahedron...
void addHour()
Add one [Earth, solar] hour to the current simulation time.
float getDeltaTCustomNDot() const
Get n-dot for custom equation for calculation of Delta-T.
Definition: StelCore.hpp:583
void addJulianYears(float n=100.f)
Add n Julian years to the simulation time.
void addTropicalYear()
Add one tropical year to the simulation time.
void addAnomalisticYear()
Add one anomalistic year to the simulation time.
void subtractGaussianYear()
Subtract one Gaussian year to the simulation time.
QSharedPointer< StelProjector > StelProjectorP
Shared pointer on a StelProjector instance (implement reference counting)
void setFlagGravityLabels(bool gravity)
Set the flag with decides whether to arrage labels so that they are aligned with the bottom of a 2d s...
void subtractSynodicMonth()
Subtract one synodic month to the simulation time.
QString getCurrentDeltaTAlgorithmKey(void) const
Get the current algorithm used by the DeltaT.
double getDeltaT() const
Get current DeltaT.
void setJDE(double newJDE)
Set the current date in Julian Day (TT).
Manages the head movements and zoom operations.
Converts tones in function of the eye adaptation to luminance.
void addMeanTropicalYears(float n=100.f)
Add n mean tropical years to the simulation time.
void addJulianYear()
Add one Julian year to the simulation time.
void addSiderealYear()
Add one sidereal year to the simulation time.
double computeDeltaT(const double JD) const
Compute Delta-T estimation for a given date.
double getJDE() const
Get the current date in Julian Day (TT).
void decreaseTimeSpeedLess()
Decrease the time speed but not as much as with decreaseTimeSpeed()
float getDeltaTCustomYear() const
Get central year for custom equation for calculation of Delta-T.
Definition: StelCore.hpp:581
void setJD(double newJD)
Set the current date in Julian Day (UT)
void addDraconicYear()
Add one draconic year to the simulation time.
void toggleRealTimeSpeed()
Set real time speed or pause simulation if we are already in realtime speed.
void addSiderealYears(float n=100.f)
Add n sidereal years to the simulation time.
void addMeanTropicalYear()
Add one mean tropical year to the simulation time.
void setTodayTime(const QTime &target)
Set the time to some value, leaving the day the same.
Should be renamed as PlanetBasedObserver and derive from a more generical StelObserver class...
bool getFlipVert(void) const
Get the state of the vertical flip.
void returnToHome()
Return to the default location and set default landscape with atmosphere and fog effects.
void subtractWeek()
Subtract one [Earth, solar] week to the current simulation time.
void moveObserverToSelected()
Move the observer to the selected object.
double getPresetSkyTime() const
Return the preset sky time in JD.
void setFlipHorz(bool flip)
Set the horizontal flip status.
void setMaskType(StelProjector::StelProjectorMaskType m)
Set the mask type.
void addSiderealDays(double d)
Add a number of sidereal days to the current simulation time, based on the observer body's rotational...
void setZeroTimeSpeed()
Set time speed to 0, i.e. freeze the passage of simulation time.
void setDefaultAngleForGravityText(float a)
Set the offset rotation angle in degree to apply to gravity text (only if gravityLabels is set to fal...
bool getIsTimeNow() const
Get whether the current stellarium time is the real world time.
void setTimeNow()
Set stellarium time to current real world time.
void addAnomalisticMonth()
Add one anomalistic month to the simulation time.
void subtractAnomalisticMonth()
Subtract one anomalistic month to the simulation time.
void setDeltaTCustomEquationCoefficients(Vec3f c)
Set coefficients for custom equation for calculation of Delta-T.
Definition: StelCore.hpp:578
void setInitTodayTime(const QTime &time)
set the initial "today time" from the config file
void subtractMeanTropicalYear()
Subtract one mean tropical year to the simulation time.
QSharedPointer< ModelViewTranform > ModelViewTranformP
Shared pointer on a ModelViewTranform instance (implement reference counting)
QTime getInitTodayTime(void)
get the initial "today time" from the config file
void addDraconicMonth()
Add one draconic month to the simulation time.
void subtractAnomalisticYears(float n=100.f)
Subtract n anomalistic years to the simulation time.
void subtractDraconicYear()
Subtract one draconic year to the simulation time.
void setDeltaTCustomYear(float y)
Set central year for custom equation for calculation of Delta-T.
Definition: StelCore.hpp:572
double getTimeRate() const
Get time speed in JDay/sec.
void subtractMeanTropicalMonth()
Subtract one mean tropical month to the simulation time.
Define the StelProjectorP type.
void setUseTopocentricCoordinates(bool use)
Set whether you want computation and simulation of nutation (a slight wobble of Earth's axis...
Definition: StelCore.hpp:412
Contains all the param needed to initialize a StelProjector.
QString getCurrentProjectionTypeKey(void) const
Get the current Mapping used by the Projection.
void addMeanTropicalMonth()
Add one mean tropical month to the simulation time.
void increaseTimeSpeed()
Increase the time speed.
void addSolarDays(double d)
Add a number of Earth Solar days to the current simulation time.
void setCurrentProjectionTypeKey(QString type)
Set the current ProjectionType to use from its key.
void setDefaultLocationID(const QString &id)
Set the location to use by default at startup.
void setMJDay(double MJD)
Set the current date in Modified Julian Day (UT).
void setDeltaTCustomNDot(float v)
Set n-dot for custom equation for calculation of Delta-T.
Definition: StelCore.hpp:575
void increaseTimeSpeedLess()
Increase the time speed, but not as much as with increaseTimeSpeed()
void subtractSiderealDay()
Subtract one sidereal day to the simulation time.
void setUseNutation(bool useNutation)
Set whether you want computation and simulation of nutation (a slight wobble of Earth's axis...
Definition: StelCore.hpp:407
void locationChanged(StelLocation)
This signal is emitted when the observer location has changed.
void subtractHour()
Subtract one [Earth, solar] hour to the current simulation time.
bool getRealTimeSpeed() const
Get whether it is real time speed, i.e. 1 sec/sec.
QString getDefaultLocationID() const
Get the location used by default at startup.