diff options
Diffstat (limited to 'kstars/kstars/kssun.h')
-rw-r--r-- | kstars/kstars/kssun.h | 75 |
1 files changed, 75 insertions, 0 deletions
diff --git a/kstars/kstars/kssun.h b/kstars/kstars/kssun.h new file mode 100644 index 00000000..ed5a3023 --- /dev/null +++ b/kstars/kstars/kssun.h @@ -0,0 +1,75 @@ +/*************************************************************************** + kssun.h - K Desktop Planetarium + ------------------- + begin : Sun Jan 29 2002 + copyright : (C) 2002 by Mark Hollomon + email : mhh@mindspring.com + ***************************************************************************/ + +/*************************************************************************** + * * + * This program is free software; you can redistribute it and/or modify * + * it under the terms of the GNU General Public License as published by * + * the Free Software Foundation; either version 2 of the License, or * + * (at your option) any later version. * + * * + ***************************************************************************/ + +#ifndef KSSUN_H +#define KSSUN_H + +#include <qstring.h> +#include "ksplanet.h" + +/**@class KSSun + *Child class of KSPlanetBase; encapsulates information about the Sun. + *@short Provides necessary information about the Sun. + *@author Mark Hollomon + *@version 1.0 + */ + +class KStarsData; + +class KSSun : public KSPlanet { +public: +/**Constructor. Defines constants needed by findPosition(). + *Sets Ecliptic coordinates appropriate for J2000. + *@param kd pointer to KStarsData object + *@param fn filename of Sun image + *@param pSize physical diameter of the Sun, in km + */ + KSSun(KStarsData *kd, QString fn = "", double pSize=0 ); + +/**Destructor (empty) + */ + virtual ~KSSun() {} + +/**Read orbital data from disk + *@note reimplemented from KSPlanet + *@note we actually read Earth's orbital data. The Sun's geocentric + *ecliptic coordinates are by definition exactly the opposite of the + *Earth's heliocentric ecliptic coordinates. + */ + virtual bool loadData(); + + long double springEquinox(int year); + + long double summerSolstice(int year); + + long double autumnEquinox(int year); + + long double winterSolstice(int year); + + long double equinox(int year, int d, int m, double angle); + + +protected: +/**Determine geocentric RA, Dec coordinates for the Epoch given in the argument. + *@p Epoch current Julian Date + *@p Earth pointer to earth object + */ + virtual bool findGeocentricPosition( const KSNumbers *num, const KSPlanetBase *Earth=NULL ); +}; + long double equinox(int year, int d, int m, int angle); + +#endif |