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