21 #ifndef CAELUM__ASTRONOMY_H 22 #define CAELUM__ASTRONOMY_H 49 static const LongReal PI;
54 static LongReal normalizeDegrees (LongReal x);
57 static LongReal radToDeg (LongReal x);
60 static LongReal degToRad (LongReal x);
62 static LongReal sinDeg (LongReal x);
63 static LongReal cosDeg (LongReal x);
64 static LongReal atan2Deg (LongReal y, LongReal x);
77 static void convertEclipticToEquatorialRad (
78 LongReal lon, LongReal lat,
79 LongReal& rasc, LongReal& decl);
81 static void convertRectangularToSpherical (
82 LongReal x, LongReal y, LongReal z,
83 LongReal &rasc, LongReal &decl, LongReal &dist);
85 static void convertSphericalToRectangular (
86 LongReal rasc, LongReal decl, LongReal dist,
87 LongReal &x, LongReal &y, LongReal &z);
100 static void convertEquatorialToHorizontal (
102 LongReal longitude, LongReal latitude,
103 LongReal rasc, LongReal decl,
104 LongReal &azimuth, LongReal &altitude);
113 static void getHorizontalSunPosition (
115 LongReal longitude, LongReal latitude,
116 LongReal &azimuth, LongReal &altitude);
118 static void getHorizontalSunPosition (
120 Ogre::Degree longitude, Ogre::Degree latitude,
121 Ogre::Degree &azimuth, Ogre::Degree &altitude);
126 static void getEclipticMoonPositionRad (
131 static void getHorizontalMoonPosition (
133 LongReal longitude, LongReal latitude,
134 LongReal &azimuth, LongReal &altitude);
135 static void getHorizontalMoonPosition (
137 Ogre::Degree longitude, Ogre::Degree latitude,
138 Ogre::Degree &azimuth, Ogre::Degree &altitude);
140 static void getHorizontalNorthEclipticPolePosition (
142 Ogre::Degree longitude, Ogre::Degree latitude,
143 Ogre::Degree &azimuth, Ogre::Degree &altitude);
151 static int getJulianDayFromGregorianDate (
152 int year,
int month,
int day);
159 static LongReal getJulianDayFromGregorianDateTime (
160 int year,
int month,
int day,
161 int hour,
int minute, LongReal second);
166 static LongReal getJulianDayFromGregorianDateTime (
167 int year,
int month,
int day,
168 LongReal secondsFromMidnight);
171 static void getGregorianDateFromJulianDay (
172 int julianDay,
int &year,
int &month,
int &day);
175 static void getGregorianDateTimeFromJulianDay (
176 LongReal julianDay,
int &year,
int &month,
int &day,
177 int &hour,
int &minute, LongReal &second);
180 static void getGregorianDateFromJulianDay (
181 LongReal julianDay,
int &year,
int &month,
int &day);
200 static int enterHighPrecissionFloatingPointMode ();
205 static void restoreFloatingPointMode (
int oldMode);
233 #endif // CAELUM__ASTRONOMY_H Dummy class to increase floting point precission in a block This class will raise precission in the c...
Static class with astronomy routines.
static const LongReal J2000
January 1, 2000, noon.
static void restoreFloatingPointMode(int oldMode)
Restore old floating point precission.
static int enterHighPrecissionFloatingPointMode()
Enter high-precission floating-point mode.