StelCore.hpp   StelCore.hpp 
skipping to change at line 62 skipping to change at line 62
Q_ENUMS(ProjectionType) Q_ENUMS(ProjectionType)
Q_ENUMS(RefractionMode) Q_ENUMS(RefractionMode)
Q_ENUMS(DeltaTAlgorithm) Q_ENUMS(DeltaTAlgorithm)
Q_PROPERTY(bool flipHorz READ getFlipHorz WRITE setFlipHorz NOTIFY f lipHorzChanged) Q_PROPERTY(bool flipHorz READ getFlipHorz WRITE setFlipHorz NOTIFY f lipHorzChanged)
Q_PROPERTY(bool flipVert READ getFlipVert WRITE setFlipVert NOTIFY f lipVertChanged) Q_PROPERTY(bool flipVert READ getFlipVert WRITE setFlipVert NOTIFY f lipVertChanged)
Q_PROPERTY(bool flagUseNutation READ getUseNutation WRITE setUseNuta tion NOTIFY flagUseNutationChanged) Q_PROPERTY(bool flagUseNutation READ getUseNutation WRITE setUseNuta tion NOTIFY flagUseNutationChanged)
Q_PROPERTY(bool flagUseTopocentricCoordinates READ getUseTopocentric Coordinates WRITE setUseTopocentricCoordinates NOTIFY flagUseTopocentricCoo rdinatesChanged) Q_PROPERTY(bool flagUseTopocentricCoordinates READ getUseTopocentric Coordinates WRITE setUseTopocentricCoordinates NOTIFY flagUseTopocentricCoo rdinatesChanged)
Q_PROPERTY(ProjectionType currentProjectionType READ getCurrentProje ctionType WRITE setCurrentProjectionType NOTIFY currentProjectionTypeChange d) Q_PROPERTY(ProjectionType currentProjectionType READ getCurrentProje ctionType WRITE setCurrentProjectionType NOTIFY currentProjectionTypeChange d)
//! This is just another way to access the projection type, by strin g instead of enum //! This is just another way to access the projection type, by strin g instead of enum
Q_PROPERTY(QString currentProjectionTypeKey READ getCurrentProjectio nTypeKey WRITE setCurrentProjectionTypeKey NOTIFY currentProjectionTypeKeyC hanged STORED false) Q_PROPERTY(QString currentProjectionTypeKey READ getCurrentProjectio nTypeKey WRITE setCurrentProjectionTypeKey NOTIFY currentProjectionTypeKeyC hanged STORED false)
//! Read-only property returning the localized projection name
Q_PROPERTY(QString currentProjectionNameI18n READ getCurrentProjecti
onNameI18n NOTIFY currentProjectionNameI18nChanged STORED false)
public: public:
//! @enum FrameType //! @enum FrameType
//! Supported reference frame types //! Supported reference frame types
enum FrameType enum FrameType
{ {
FrameUninitialized, //!< Reference frame is not set (FMajerech: Added to avoid condition on uninitialized value in StelSkyLayerMgr::draw()) FrameUninitialized, //!< Reference frame is not set (FMajerech: Added to avoid condition on uninitialized value in StelSkyLayerMgr::draw())
FrameAltAz, //!< Altazimuthal re ference frame centered on observer. FrameAltAz, //!< Altazimuthal re ference frame centered on observer.
FrameHeliocentricEclipticJ2000, //!< Fixed-ecliptic reference frame centered on the Sun. GZ: This is J2000 ecliptical / almost VSOP87. FrameHeliocentricEclipticJ2000, //!< Fixed-ecliptic reference frame centered on the Sun. GZ: This is J2000 ecliptical / almost VSOP87.
FrameObservercentricEclipticJ2000, //!< Fixed-ecliptic reference frame centered on the Observer. GZ: was ObservercentricEcliptic, but renamed because it is Ecliptic of J2000! FrameObservercentricEclipticJ2000, //!< Fixed-ecliptic reference frame centered on the Observer. GZ: was ObservercentricEcliptic, but renamed because it is Ecliptic of J2000!
FrameObservercentricEclipticOfDate, //!< Moving ecliptic reference frame centered on the Observer. GZ new for V0.14: Ecliptic of da te, i.e. includes the precession of the ecliptic. FrameObservercentricEclipticOfDate, //!< Moving ecliptic reference frame centered on the Observer. GZ new for V0.14: Ecliptic of da te, i.e. includes the precession of the ecliptic.
FrameEquinoxEqu, //!< Equatorial refe rence frame at the current equinox centered on the observer. FrameEquinoxEqu, //!< Equatorial refe rence frame at the current equinox centered on the observer.
//!< The north pole follows the precession of the planet on which the observer is located. //!< The north pole follows the precession of the planet on which the observer is located.
//!< On Earth, this may include nutation if so configured. Has been corrected for V0.14 to real ly properly reflect ecliptical motion and precession (Vondrak 2011 model) a nd nutation. //!< On Earth, this may include nutation if so configured. Has been corrected for V0.14 to real ly properly reflect ecliptical motion and precession (Vondrak 2011 model) a nd nutation.
FrameJ2000, //!< Equatorial refe rence frame at the J2000 equinox centered on the observer. This is also the ICRS reference frame. FrameJ2000, //!< Equatorial refe rence frame at the J2000 equinox centered on the observer. This is also the ICRS reference frame.
FrameGalactic //!< Galactic refere FrameGalactic, //!< Galactic refere
nce frame centered on observer. nce frame centered on observer.
FrameSupergalactic //!< Supergalactic r
eference frame centered on observer.
}; };
//! @enum ProjectionType //! @enum ProjectionType
//! Available projection types. A value of 1000 indicates the defaul t projection //! Available projection types. A value of 1000 indicates the defaul t projection
enum ProjectionType enum ProjectionType
{ {
ProjectionPerspective, //!< Perspective project ion ProjectionPerspective, //!< Perspective project ion
ProjectionStereographic, //!< Stereographic proje ction ProjectionStereographic, //!< Stereographic proje ction
ProjectionFisheye, //!< Fisheye projection ProjectionFisheye, //!< Fisheye projection
ProjectionOrthographic, //!< Orthographic projec tion ProjectionOrthographic, //!< Orthographic projec tion
skipping to change at line 217 skipping to change at line 220
//! Set vision direction //! Set vision direction
void lookAtJ2000(const Vec3d& pos, const Vec3d& up); void lookAtJ2000(const Vec3d& pos, const Vec3d& up);
Vec3d altAzToEquinoxEqu(const Vec3d& v, RefractionMode refMode=Refra ctionAuto) const; Vec3d altAzToEquinoxEqu(const Vec3d& v, RefractionMode refMode=Refra ctionAuto) const;
Vec3d equinoxEquToAltAz(const Vec3d& v, RefractionMode refMode=Refra ctionAuto) const; Vec3d equinoxEquToAltAz(const Vec3d& v, RefractionMode refMode=Refra ctionAuto) const;
Vec3d altAzToJ2000(const Vec3d& v, RefractionMode refMode=Refraction Auto) const; Vec3d altAzToJ2000(const Vec3d& v, RefractionMode refMode=Refraction Auto) const;
Vec3d j2000ToAltAz(const Vec3d& v, RefractionMode refMode=Refraction Auto) const; Vec3d j2000ToAltAz(const Vec3d& v, RefractionMode refMode=Refraction Auto) const;
void j2000ToAltAzInPlaceNoRefraction(Vec3f* v) const {v->transfo4d(m atJ2000ToAltAz);} void j2000ToAltAzInPlaceNoRefraction(Vec3f* v) const {v->transfo4d(m atJ2000ToAltAz);}
Vec3d galacticToJ2000(const Vec3d& v) const; Vec3d galacticToJ2000(const Vec3d& v) const;
Vec3d supergalacticToJ2000(const Vec3d& v) const;
Vec3d equinoxEquToJ2000(const Vec3d& v) const; Vec3d equinoxEquToJ2000(const Vec3d& v) const;
Vec3d j2000ToJ1875(const Vec3d& v) const;
Vec3d j2000ToEquinoxEqu(const Vec3d& v) const; Vec3d j2000ToEquinoxEqu(const Vec3d& v) const;
Vec3d j2000ToGalactic(const Vec3d& v) const; Vec3d j2000ToGalactic(const Vec3d& v) const;
Vec3d j2000ToSupergalactic(const Vec3d& v) const;
//! Transform vector from heliocentric ecliptic coordinate to altazi muthal //! Transform vector from heliocentric ecliptic coordinate to altazi muthal
Vec3d heliocentricEclipticToAltAz(const Vec3d& v, RefractionMode ref Mode=RefractionAuto) const; Vec3d heliocentricEclipticToAltAz(const Vec3d& v, RefractionMode ref Mode=RefractionAuto) const;
//! Transform from heliocentric coordinate to equatorial at current equinox (for the planet where the observer stands) //! Transform from heliocentric coordinate to equatorial at current equinox (for the planet where the observer stands)
Vec3d heliocentricEclipticToEquinoxEqu(const Vec3d& v) const; Vec3d heliocentricEclipticToEquinoxEqu(const Vec3d& v) const;
// //! Transform vector from heliocentric coordinate to false equatoria l : equatorial // //! Transform vector from heliocentric coordinate to false equatoria l : equatorial
// //! coordinate but centered on the observer position (useful for obj ects close to earth) // //! coordinate but centered on the observer position (useful for obj ects close to earth)
// //! Unused as of V0.13 // //! Unused as of V0.13
// Vec3d heliocentricEclipticToEarthPosEquinoxEqu(const Vec3d& v) const ; // Vec3d heliocentricEclipticToEarthPosEquinoxEqu(const Vec3d& v) const ;
skipping to change at line 252 skipping to change at line 258
//! Get the modelview matrix for observer-centric altazimuthal drawi ng. //! Get the modelview matrix for observer-centric altazimuthal drawi ng.
StelProjector::ModelViewTranformP getAltAzModelViewTransform(Refract ionMode refMode=RefractionAuto) const; StelProjector::ModelViewTranformP getAltAzModelViewTransform(Refract ionMode refMode=RefractionAuto) const;
//! Get the modelview matrix for observer-centric J2000 equatorial d rawing. //! Get the modelview matrix for observer-centric J2000 equatorial d rawing.
StelProjector::ModelViewTranformP getJ2000ModelViewTransform(Refract ionMode refMode=RefractionAuto) const; StelProjector::ModelViewTranformP getJ2000ModelViewTransform(Refract ionMode refMode=RefractionAuto) const;
//! Get the modelview matrix for observer-centric Galactic equatoria l drawing. //! Get the modelview matrix for observer-centric Galactic equatoria l drawing.
StelProjector::ModelViewTranformP getGalacticModelViewTransform(Refr actionMode refMode=RefractionAuto) const; StelProjector::ModelViewTranformP getGalacticModelViewTransform(Refr actionMode refMode=RefractionAuto) const;
//! Get the modelview matrix for observer-centric Supergalactic equa
torial drawing.
StelProjector::ModelViewTranformP getSupergalacticModelViewTransform
(RefractionMode refMode=RefractionAuto) const;
//! Rotation matrix from equatorial J2000 to ecliptic (VSOP87A). //! Rotation matrix from equatorial J2000 to ecliptic (VSOP87A).
static const Mat4d matJ2000ToVsop87; static const Mat4d matJ2000ToVsop87;
//! Rotation matrix from ecliptic (VSOP87A) to equatorial J2000. //! Rotation matrix from ecliptic (VSOP87A) to equatorial J2000.
static const Mat4d matVsop87ToJ2000; static const Mat4d matVsop87ToJ2000;
//! Rotation matrix from J2000 to Galactic reference frame, using FI TS convention. //! Rotation matrix from J2000 to Galactic reference frame, using FI TS convention.
static const Mat4d matJ2000ToGalactic; static const Mat4d matJ2000ToGalactic;
//! Rotation matrix from J2000 to Galactic reference frame, using FI TS convention. //! Rotation matrix from Galactic to J2000 reference frame, using FI TS convention.
static const Mat4d matGalacticToJ2000; static const Mat4d matGalacticToJ2000;
//! Rotation matrix from J2000 to Supergalactic reference frame.
static const Mat4d matJ2000ToSupergalactic;
//! Rotation matrix from Supergalactic to J2000 reference frame.
static const Mat4d matSupergalacticToJ2000;
//! Precession matrix for IAU constellation lookup.
static Mat4d matJ2000ToJ1875;
//! Return the observer heliocentric ecliptic position //! Return the observer heliocentric ecliptic position
Vec3d getObserverHeliocentricEclipticPos() const; Vec3d getObserverHeliocentricEclipticPos() const;
//! Get the informations on the current location //! Get the informations on the current location
const StelLocation& getCurrentLocation() const; const StelLocation& getCurrentLocation() const;
//! Get the UTC offset on the current location (in hours)
float getUTCOffset(const double JD) const;
QString getCurrentTimeZone() const;
void setCurrentTimeZone(const QString& tz);
const QSharedPointer<class Planet> getCurrentPlanet() const; const QSharedPointer<class Planet> getCurrentPlanet() const;
//! Unfortunately we also need this. //! Unfortunately we also need this.
//! Returns the current observer. //! Returns the current observer.
//! Note that the observer object may be deleted at any time when co ntrol returns to StelCore. //! Note that the observer object may be deleted at any time when co ntrol returns to StelCore.
const StelObserver* getCurrentObserver() const; const StelObserver* getCurrentObserver() const;
//! Replaces the current observer. StelCore assumes ownership of the observer. //! Replaces the current observer. StelCore assumes ownership of the observer.
void setObserver(StelObserver* obs); void setObserver(StelObserver* obs);
SphericalCap getVisibleSkyArea() const; SphericalCap getVisibleSkyArea() const;
// Conversion in standard Julian time format // Conversion in standard Julian time format
static const double JD_SECOND; static const double JD_SECOND;
static const double JD_MINUTE; static const double JD_MINUTE;
static const double JD_HOUR; static const double JD_HOUR;
static const double JD_DAY; static const double JD_DAY;
static const double ONE_OVER_JD_SECOND; static const double ONE_OVER_JD_SECOND;
static const double TZ_ERA_BEGINNING;
//! Get the sidereal time shifted by the observer longitude //! Get the sidereal time shifted by the observer longitude
//! @return the local sidereal time in radian //! @return the local sidereal time in radian
double getLocalSiderealTime() const; double getLocalSiderealTime() const;
//! Get the duration of a sidereal day for the current observer in d ay. //! Get the duration of a sidereal day for the current observer in d ay.
double getLocalSiderealDayLength() const; double getLocalSiderealDayLength() const;
//! Get the duration of a sidereal year for the current observer in days. //! Get the duration of a sidereal year for the current observer in days.
double getLocalSiderealYearLength() const; double getLocalSiderealYearLength() const;
skipping to change at line 335 skipping to change at line 356
//! Set the current ProjectionType to use //! Set the current ProjectionType to use
void setCurrentProjectionType(ProjectionType type); void setCurrentProjectionType(ProjectionType type);
ProjectionType getCurrentProjectionType() const; ProjectionType getCurrentProjectionType() const;
//! Get the current Mapping used by the Projection //! Get the current Mapping used by the Projection
QString getCurrentProjectionTypeKey(void) const; QString getCurrentProjectionTypeKey(void) const;
//! Set the current ProjectionType to use from its key //! Set the current ProjectionType to use from its key
void setCurrentProjectionTypeKey(QString type); void setCurrentProjectionTypeKey(QString type);
QString getCurrentProjectionNameI18n() const;
//! Get the list of all the available projections //! Get the list of all the available projections
QStringList getAllProjectionTypeKeys() const; QStringList getAllProjectionTypeKeys() const;
//! Set the current algorithm for time correction (DeltaT) //! Set the current algorithm for time correction (DeltaT)
void setCurrentDeltaTAlgorithm(DeltaTAlgorithm algorithm) { currentD eltaTAlgorithm=algorithm; } void setCurrentDeltaTAlgorithm(DeltaTAlgorithm algorithm) { currentD eltaTAlgorithm=algorithm; }
//! Get the current algorithm for time correction (DeltaT) //! Get the current algorithm for time correction (DeltaT)
DeltaTAlgorithm getCurrentDeltaTAlgorithm() const { return currentDe ltaTAlgorithm; } DeltaTAlgorithm getCurrentDeltaTAlgorithm() const { return currentDe ltaTAlgorithm; }
//! Get description of the current algorithm for time correction //! Get description of the current algorithm for time correction
QString getCurrentDeltaTAlgorithmDescription(void) const; QString getCurrentDeltaTAlgorithmDescription(void) const;
//! Get the current algorithm used by the DeltaT //! Get the current algorithm used by the DeltaT
skipping to change at line 386 skipping to change at line 409
//! Animation is available via StelMovementMgr::moveViewport() //! Animation is available via StelMovementMgr::moveViewport()
void setViewportHorizontalOffset(double newOffsetPct); void setViewportHorizontalOffset(double newOffsetPct);
//! Get current value for vertical viewport offset [-50...50] //! Get current value for vertical viewport offset [-50...50]
//! An offset of 50 percent means projective image center is on the upper screen border //! An offset of 50 percent means projective image center is on the upper screen border
double getViewportVerticalOffset(void); double getViewportVerticalOffset(void);
//! Set vertical viewport offset. Argument will be clamped to be ins ide [-50...50] //! Set vertical viewport offset. Argument will be clamped to be ins ide [-50...50]
//! An offset of 50 percent means projective image center is on the upper screen border //! An offset of 50 percent means projective image center is on the upper screen border
//! Setting to a negative value will move the visible horizon down, this may be desired esp. in cylindrical projection. //! Setting to a negative value will move the visible horizon down, this may be desired esp. in cylindrical projection.
//! Animation is available via StelMovementMgr::moveViewport() //! Animation is available via StelMovementMgr::moveViewport()
void setViewportVerticalOffset(double newOffsetPct); void setViewportVerticalOffset(double newOffsetPct);
// Set both viewport offsets. Arguments will be clamped to be inside
[-50...50]. I (GZ) hope this will avoid some of the shaking.
void setViewportOffset(double newHorizontalOffsetPct, double newVert
icalOffsetPct);
//! Can be used in specialized setups, intended e.g. for multi-proje ctor installations with edge blending. //! Can be used in specialized setups, intended e.g. for multi-proje ctor installations with edge blending.
//! @param stretch [default 1] enlarge to stretch image to non-squar e pixels. A minimum value of 0.001 is enforced. //! @param stretch [default 1] enlarge to stretch image to non-squar e pixels. A minimum value of 0.001 is enforced.
//! @note This only influences the projected content. Things like Sc reenImages keep square pixels. //! @note This only influences the projected content. Things like Sc reenImages keep square pixels.
void setViewportStretch(float stretch); void setViewportStretch(float stretch);
//! Get the location used by default at startup //! Get the location used by default at startup
QString getDefaultLocationID() const; QString getDefaultLocationID() const;
//! Set the location to use by default at startup //! Set the location to use by default at startup
void setDefaultLocationID(const QString& id); void setDefaultLocationID(const QString& id);
skipping to change at line 423 skipping to change at line 448
//! The name is derived from the classical name "Ephemeris Time", of which TT is the successor. //! The name is derived from the classical name "Ephemeris Time", of which TT is the successor.
//! It is still frequently used in the literature. //! It is still frequently used in the literature.
void setJDE(double newJDE); void setJDE(double newJDE);
//! Get the current date in Julian Day (UT). //! Get the current date in Julian Day (UT).
double getJD() const; double getJD() const;
//! Get the current date in Julian Day (TT). //! Get the current date in Julian Day (TT).
//! The name is derived from the classical name "Ephemeris Time", of which TT is the successor. //! The name is derived from the classical name "Ephemeris Time", of which TT is the successor.
//! It is still frequently used in the literature. //! It is still frequently used in the literature.
double getJDE() const; double getJDE() const;
//! Get solution of equation of time
//! Source: J. Meeus "Astronomical Algorithms" (2nd ed., with correc
tions as of August 10, 2009) p.183-187.
//! @param JDE JD in Dynamical Time (previously called Ephemeris Tim
e)
//! @return time in minutes
double getSolutionEquationOfTime(const double JDE) const;
bool getUseDST() const;
void setUseDST(const bool b);
//! Set the current date in Modified Julian Day (UT). //! Set the current date in Modified Julian Day (UT).
//! MJD is simply JD-2400000.5, getting rid of large numbers and sta rting days at midnight. //! MJD is simply JD-2400000.5, getting rid of large numbers and sta rting days at midnight.
//! It is mostly used in satellite contexts. //! It is mostly used in satellite contexts.
void setMJDay(double MJD); void setMJDay(double MJD);
//! Get the current date in Modified Julian Day (UT) //! Get the current date in Modified Julian Day (UT)
double getMJDay() const; double getMJDay() const;
//! Compute Delta-T estimation for a given date. //! Compute Delta-T estimation for a given date.
//! DeltaT is the accumulated effect of earth's rotation slowly gett ing slower, mostly caused by tidal braking by the Moon. //! DeltaT is the accumulated effect of earth's rotation slowly gett ing slower, mostly caused by tidal braking by the Moon.
//! For accurate positioning of objects in the sky, we must compute earth-based clock-dependent things like earth rotation, hour angles etc. //! For accurate positioning of objects in the sky, we must compute earth-based clock-dependent things like earth rotation, hour angles etc.
skipping to change at line 464 skipping to change at line 498
//! Return the preset sky time in JD //! Return the preset sky time in JD
double getPresetSkyTime() const; double getPresetSkyTime() const;
//! Set the preset sky time from a JD //! Set the preset sky time from a JD
void setPresetSkyTime(double d); void setPresetSkyTime(double d);
//! Set time speed in JDay/sec //! Set time speed in JDay/sec
void setTimeRate(double ts); void setTimeRate(double ts);
//! Get time speed in JDay/sec //! Get time speed in JDay/sec
double getTimeRate() const; double getTimeRate() const;
void revertTimeDirection(void);
//! Increase the time speed //! Increase the time speed
void increaseTimeSpeed(); void increaseTimeSpeed();
//! Decrease the time speed //! Decrease the time speed
void decreaseTimeSpeed(); void decreaseTimeSpeed();
//! Increase the time speed, but not as much as with increaseTimeSpe ed() //! Increase the time speed, but not as much as with increaseTimeSpe ed()
void increaseTimeSpeedLess(); void increaseTimeSpeedLess();
//! Decrease the time speed but not as much as with decreaseTimeSpee d() //! Decrease the time speed but not as much as with decreaseTimeSpee d()
void decreaseTimeSpeedLess(); void decreaseTimeSpeedLess();
//! Set time speed to 0, i.e. freeze the passage of simulation time //! Set time speed to 0, i.e. freeze the passage of simulation time
skipping to change at line 496 skipping to change at line 532
//! Get whether the current stellarium time is the real world time //! Get whether the current stellarium time is the real world time
bool getIsTimeNow() const; bool getIsTimeNow() const;
//! get the initial "today time" from the config file //! get the initial "today time" from the config file
QTime getInitTodayTime(void); QTime getInitTodayTime(void);
//! set the initial "today time" from the config file //! set the initial "today time" from the config file
void setInitTodayTime(const QTime& time); void setInitTodayTime(const QTime& time);
//! Set the preset sky time from a QDateTime //! Set the preset sky time from a QDateTime
void setPresetSkyTime(QDateTime dateTime); void setPresetSkyTime(QDateTime dateTime);
//! Add one [Earth, solar] minute to the current simulation time.
void addMinute();
//! Add one [Earth, solar] hour to the current simulation time. //! Add one [Earth, solar] hour to the current simulation time.
void addHour(); void addHour();
//! Add one [Earth, solar] day to the current simulation time. //! Add one [Earth, solar] day to the current simulation time.
void addDay(); void addDay();
//! Add one [Earth, solar] week to the current simulation time. //! Add one [Earth, solar] week to the current simulation time.
void addWeek(); void addWeek();
//! Add one sidereal day to the simulation time. The length of time depends //! Add one sidereal day to the simulation time. The length of time depends
//! on the current planetary body on which the observer is located. //! on the current planetary body on which the observer is located.
void addSiderealDay(); void addSiderealDay();
//! Add one sidereal year to the simulation time. The length of time depends //! Add one sidereal year to the simulation time. The length of time depends
//! on the current planetary body on which the observer is located. Sidereal year //! on the current planetary body on which the observer is located. Sidereal year
//! connected to orbital period of planets. //! connected to orbital period of planets.
void addSiderealYear(); void addSiderealYear();
//! Add n sidereal years to the simulation time. The length of time depends //! Add n sidereal years to the simulation time. The length of time depends
//! on the current planetary body on which the observer is located. Sidereal year //! on the current planetary body on which the observer is located. Sidereal year
//! connected to orbital period of planets. //! connected to orbital period of planets.
void addSiderealYears(float n=100.f); void addSiderealYears(float n=100.f);
//! Subtract one [Earth, solar] minute to the current simulation tim
e.
void subtractMinute();
//! Subtract one [Earth, solar] hour to the current simulation time. //! Subtract one [Earth, solar] hour to the current simulation time.
void subtractHour(); void subtractHour();
//! Subtract one [Earth, solar] day to the current simulation time. //! Subtract one [Earth, solar] day to the current simulation time.
void subtractDay(); void subtractDay();
//! Subtract one [Earth, solar] week to the current simulation time. //! Subtract one [Earth, solar] week to the current simulation time.
void subtractWeek(); void subtractWeek();
//! Subtract one sidereal day to the simulation time. The length of time depends //! Subtract one sidereal day to the simulation time. The length of time depends
//! on the current planetary body on which the observer is located. //! on the current planetary body on which the observer is located.
void subtractSiderealDay(); void subtractSiderealDay();
skipping to change at line 615 skipping to change at line 655
void addSiderealDays(double d); void addSiderealDays(double d);
//! Move the observer to the selected object. This will only do some thing if //! Move the observer to the selected object. This will only do some thing if
//! the selected object is of the correct type - i.e. a planet. //! the selected object is of the correct type - i.e. a planet.
void moveObserverToSelected(); void moveObserverToSelected();
//! Set central year for custom equation for calculation of Delta-T //! Set central year for custom equation for calculation of Delta-T
//! @param y the year, e.g. 1820 //! @param y the year, e.g. 1820
void setDeltaTCustomYear(float y) { deltaTCustomYear=y; } void setDeltaTCustomYear(float y) { deltaTCustomYear=y; }
//! Set n-dot for custom equation for calculation of Delta-T //! Set n-dot for custom equation for calculation of Delta-T
//! @param y the n-dot value, e.g. -26.0 //! @param v the n-dot value, e.g. -26.0
void setDeltaTCustomNDot(float v) { deltaTCustomNDot=v; } void setDeltaTCustomNDot(float v) { deltaTCustomNDot=v; }
//! Set coefficients for custom equation for calculation of Delta-T //! Set coefficients for custom equation for calculation of Delta-T
//! @param y the coefficients, e.g. -20,0,32 //! @param c the coefficients, e.g. -20,0,32
void setDeltaTCustomEquationCoefficients(Vec3f c) { deltaTCustomEqua tionCoeff=c; } void setDeltaTCustomEquationCoefficients(Vec3f c) { deltaTCustomEqua tionCoeff=c; }
//! Get central year for custom equation for calculation of Delta-T //! Get central year for custom equation for calculation of Delta-T
float getDeltaTCustomYear() const { return deltaTCustomYear; } float getDeltaTCustomYear() const { return deltaTCustomYear; }
//! Get n-dot for custom equation for calculation of Delta-T //! Get n-dot for custom equation for calculation of Delta-T
float getDeltaTCustomNDot() const { return deltaTCustomNDot; } float getDeltaTCustomNDot() const { return deltaTCustomNDot; }
//! Get coefficients for custom equation for calculation of Delta-T //! Get coefficients for custom equation for calculation of Delta-T
Vec3f getDeltaTCustomEquationCoefficients() const { return deltaTCus tomEquationCoeff; } Vec3f getDeltaTCustomEquationCoefficients() const { return deltaTCus tomEquationCoeff; }
//! initialize ephemerides calculation functions //! initialize ephemerides calculation functions
void initEphemeridesFunctions(); void initEphemeridesFunctions();
bool de430IsAvailable(); //!< true if DE430 ephemeris fil e has been found bool de430IsAvailable(); //!< true if DE430 ephemeris fil e has been found
bool de431IsAvailable(); //!< true if DE431 ephemeris fil e has been found bool de431IsAvailable(); //!< true if DE431 ephemeris fil e has been found
bool de430IsActive(); //!< true if DE430 ephemeris is in use bool de430IsActive(); //!< true if DE430 ephemeris is in use
bool de431IsActive(); //!< true if DE431 ephemeris is in use bool de431IsActive(); //!< true if DE431 ephemeris is in use
void setDe430Active(bool status); //!< switch DE430 use to @param status (if de430IsAvailable()) DE430 is only used if date is within range o f DE430. void setDe430Active(bool status); //!< switch DE430 use to @param status (if de430IsAvailable()). DE430 is only used if date is within range of DE430.
void setDe431Active(bool status); //!< switch DE431 use to @param status (if de431IsAvailable()). DE431 is only used if DE430 is not used and the date is within range of DE431. void setDe431Active(bool status); //!< switch DE431 use to @param status (if de431IsAvailable()). DE431 is only used if DE430 is not used and the date is within range of DE431.
//! Return 3-letter abbreviation of IAU constellation name for posit
ion in J2000 coordinates.
//! Follows 1987PASP...99..695R: Nancy Roman: Identification of a Co
nstellation from a Position
//! Data file from ADC catalog VI/42 with her amendment from 1999-12
-30.
QString getIAUConstellation(const Vec3d positionJ2000) const;
signals: signals:
//! This signal is emitted when the observer location has changed. //! This signal is emitted when the observer location has changed.
void locationChanged(StelLocation); void locationChanged(StelLocation);
//! This signal is emitted when the time rate has changed //! This signal is emitted when the time rate has changed
void timeRateChanged(double rate); void timeRateChanged(double rate);
//! This signal is emitted whenever the time is re-synced. //! This signal is emitted whenever the time is re-synced.
//! This happens whenever the internal jDay is changed through setJD ay/setMJDay and similar, //! This happens whenever the internal jDay is changed through setJD ay/setMJDay and similar,
//! and whenever the time rate changes. //! and whenever the time rate changes.
void timeSyncOccurred(double jDay); void timeSyncOccurred(double jDay);
//! This signal is emitted when the date has changed.
void dateChanged();
//! This signal indicates a horizontal display flip //! This signal indicates a horizontal display flip
void flipHorzChanged(bool b); void flipHorzChanged(bool b);
//! This signal indicates a vertical display flip //! This signal indicates a vertical display flip
void flipVertChanged(bool b); void flipVertChanged(bool b);
//! This signal indicates a switch in use of nutation //! This signal indicates a switch in use of nutation
void flagUseNutationChanged(bool b); void flagUseNutationChanged(bool b);
//! This signal indicates a switch in use of topocentric coordinates //! This signal indicates a switch in use of topocentric coordinates
void flagUseTopocentricCoordinatesChanged(bool b); void flagUseTopocentricCoordinatesChanged(bool b);
//! Emitted whenever the projection type changes //! Emitted whenever the projection type changes
void currentProjectionTypeChanged(StelCore::ProjectionType newType); void currentProjectionTypeChanged(StelCore::ProjectionType newType);
//! Emitted whenever the projection type changes //! Emitted whenever the projection type changes
void currentProjectionTypeKeyChanged(const QString& newValue); void currentProjectionTypeKeyChanged(const QString& newValue);
//! Emitted whenever the projection type changes
void currentProjectionNameI18nChanged(const QString& newValue);
private: private:
StelToneReproducer* toneReproducer; // Tones conversion between stellarium world and display device StelToneReproducer* toneReproducer; // Tones conversion between stellarium world and display device
StelSkyDrawer* skyDrawer; StelSkyDrawer* skyDrawer;
StelMovementMgr* movementMgr; // Manage vision movements StelMovementMgr* movementMgr; // Manage vision movements
// Manage geodesic grid // Manage geodesic grid
mutable StelGeodesicGrid* geodesicGrid; mutable StelGeodesicGrid* geodesicGrid;
// The currently used projection type // The currently used projection type
skipping to change at line 712 skipping to change at line 761
// flag to indicate we want to use nutation (the small-scale wobble of earth's axis) // flag to indicate we want to use nutation (the small-scale wobble of earth's axis)
bool flagUseNutation; bool flagUseNutation;
// flag to indicate that we show topocentrically corrected coordinat es. (Switching to false for planetocentric coordinates is new for 0.14) // flag to indicate that we show topocentrically corrected coordinat es. (Switching to false for planetocentric coordinates is new for 0.14)
bool flagUseTopocentricCoordinates; bool flagUseTopocentricCoordinates;
// Time variables // Time variables
double timeSpeed; // Positive : forward, Negative : Backwa rd, 1 = 1sec/sec double timeSpeed; // Positive : forward, Negative : Backwa rd, 1 = 1sec/sec
//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 su btract getDeltaT() explicitly. //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 su btract getDeltaT() explicitly.
QPair<double,double> JD; // From 0.14 on: JD.first=JD_UT, JD.seco nd=DeltaT=TT-UT. To gain JD_TT, compute JDE=JD.first+JD.second or better ju st call getJDE() QPair<double,double> JD; // From 0.14 on: JD.first=JD_UT, JD.seco nd=DeltaT=TT-UT. To gain JD_TT, compute JDE=JD.first+JD.second or better ju st call getJDE()
// Use is best with calls getJD()/setJD() an d getJDE()/setJDE() to explicitly state which flavour of JD you need. // Use is best with calls getJD()/setJD( ) and getJDE()/setJDE() to explicitly state which flavour of JD you need.
double presetSkyTime; double presetSkyTime;
QTime initTodayTime; QTime initTodayTime;
QString startupTimeMode; QString startupTimeMode;
double milliSecondsOfLastJDUpdate; // Time in seconds when the ti me rate or time last changed double milliSecondsOfLastJDUpdate; // Time in seconds when the ti me rate or time last changed
double jdOfLastJDUpdate; // JD when the time rate or time la st changed double jdOfLastJDUpdate; // JD when the time rate or time la st changed
QString currentTimeZone;
bool flagUseDST;
// Variables for custom equation of Delta-T // Variables for custom equation of Delta-T
Vec3f deltaTCustomEquationCoeff; Vec3f deltaTCustomEquationCoeff;
float deltaTCustomNDot; float deltaTCustomNDot;
float deltaTCustomYear; float deltaTCustomYear;
// Variables for DE430/431 ephem calculation // Variables for DE430/431 ephem calculation
bool de430Available; // ephem file found bool de430Available; // ephem file found
bool de431Available; // ephem file found bool de431Available; // ephem file found
bool de430Active; // available and user-activated. bool de430Active; // available and user-activated.
bool de431Active; // available and user-activated. bool de431Active; // available and user-activated.
 End of changes. 24 change blocks. 
7 lines changed or deleted 71 lines changed or added

This html diff was produced by rfcdiff 1.41. The latest version is available from http://tools.ietf.org/tools/rfcdiff/