1 // precession.h
2 //
3 // Calculate precession angles for Earth.
4 //
5 // Copyright (C) 2008, the Celestia Development Team
6 // Initial version by Chris Laurel, claurel@gmail.com
7 //
8 // This program is free software; you can redistribute it and/or
9 // modify it under the terms of the GNU General Public License
10 // as published by the Free Software Foundation; either version 2
11 // of the License, or (at your option) any later version.
12 
13 namespace astro
14 {
15 
16 // PA and QA are the location of the pole of the ecliptic of date
17 // with respect to the fixed ecliptic of J2000.0
18 struct EclipticPole
19 {
20     double PA;
21     double QA;
22 };
23 
24 
25 // piA and PiA are angles that transform the J2000 ecliptic to the
26 // ecliptic of date. They are related to the ecliptic pole coordinates
27 // PA and QA:
28 //   PA = sin(piA)*sin(PiA)
29 //   QA = sin(piA)*cos(PiA)
30 //
31 // PiA is the angle along the J2000 ecliptic between the J2000 equinox
32 // and the intersection of the J2000 ecliptic and ecliptic of date.
33 struct EclipticAngles
34 {
35     double piA;
36     double PiA;
37 };
38 
39 
40 // epsA is the angle between the ecliptic and mean equator of date. pA is the
41 // general precession: the difference between angles L and PiA. L is the angle
42 // along the mean ecliptic of date from the equinox of date to the
43 // intersection of the J2000 ecliptic and ecliptic of date.
44 struct PrecessionAngles
45 {
46     double pA;     // precession
47     double epsA;   // obliquity
48 };
49 
50 
51 struct EquatorialPrecessionAngles
52 {
53     double zetaA;
54     double zA;
55     double thetaA;
56 };
57 
58 
59 extern EclipticPole EclipticPrecession_P03LP(double T);
60 extern PrecessionAngles PrecObliquity_P03LP(double T);
61 
62 extern EclipticPole EclipticPrecession_P03(double T);
63 extern EclipticAngles EclipticPrecessionAngles_P03(double T);
64 extern PrecessionAngles PrecObliquity_P03(double T);
65 extern EquatorialPrecessionAngles EquatorialPrecessionAngles_P03(double T);
66 
67 };
68