00001 #pragma ident "$Id: MoonPosition.hpp 2741 2011-06-22 16:37:02Z nwu $"
00002
00009 #ifndef MOONPOSITION_HPP
00010 #define MOONPOSITION_HPP
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029
00030
00031
00032
00033
00034
00035 #include <cmath>
00036 #include <string>
00037
00038 #include "DayTime.hpp"
00039 #include "Triple.hpp"
00040 #include "icd_200_constants.hpp"
00041 #include "AstronomicalFunctions.hpp"
00042 #include "Vector.hpp"
00043 #include "Matrix.hpp"
00044
00045
00046 namespace gpstk
00047 {
00048
00051
00070 class MoonPosition
00071 {
00072 public:
00073
00075 MoonPosition() throw() {}
00076
00078 virtual ~MoonPosition() {}
00079
00080
00096 Triple getPosition(const DayTime& t) const
00097 throw(InvalidRequest);
00098
00099
00105 Triple getPositionCIS(const DayTime& t) const
00106 throw(InvalidRequest);
00107
00108
00116 DayTime getInitialTime() const throw(InvalidRequest)
00117 { return initialTime; }
00118
00119
00127 DayTime getFinalTime() const throw(InvalidRequest)
00128 { return finalTime; }
00129
00130
00131 private:
00132
00134 static const DayTime initialTime;
00135
00137 static const DayTime finalTime;
00138
00139
00140
00141
00143 static const double ELP0, ELP1, ELP2, ELP3;
00144
00146 static const double EM0, EM1, EM2, EM3;
00147
00149 static const double EMP0, EMP1, EMP2, EMP3;
00150
00152 static const double D0, D1, D2, D3;
00153
00155 static const double F0, F1, F2, F3;
00156
00158 static const double OM0, OM1, OM2, OM3;
00159
00161 static const double E1, E2;
00162
00164 static const double PAC, PA0, PA1;
00165 static const double PBC;
00166 static const double PCC;
00167 static const double PDC;
00168 static const double PEC, PE0, PE1, PE2;
00169 static const double PFC;
00170 static const double PGC;
00171 static const double PHC;
00172 static const double cPIC;
00173 static const double PJC, PJ0, PJ1;
00174 static const double CW1;
00175 static const double CW2;
00176
00177
00178
00179
00180
00181 static const size_t NL, NB, NP;
00182 static Vector<double> TL, TB, TP;
00183 static Matrix<int> ITL, ITB, ITP;
00184
00185 };
00186
00187
00189
00190 }
00191 #endif // MOONPOSITION_HPP