00001
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027
00028
00029 #ifndef _EPHEMERIS_HXX
00030 #define _EPHEMERIS_HXX
00031
00032 #include <string>
00033
00034 #include <simgear/ephemeris/star.hxx>
00035 #include <simgear/ephemeris/moonpos.hxx>
00036 #include <simgear/ephemeris/mercury.hxx>
00037 #include <simgear/ephemeris/venus.hxx>
00038 #include <simgear/ephemeris/mars.hxx>
00039 #include <simgear/ephemeris/jupiter.hxx>
00040 #include <simgear/ephemeris/saturn.hxx>
00041 #include <simgear/ephemeris/uranus.hxx>
00042 #include <simgear/ephemeris/neptune.hxx>
00043 #include <simgear/ephemeris/stardata.hxx>
00044
00045 #include <simgear/math/SGMath.hxx>
00046 #include <simgear/misc/sg_path.hxx>
00047
00048
00071 class SGEphemeris {
00072
00073 Star *our_sun;
00074 MoonPos *moon;
00075 Mercury *mercury;
00076 Venus *venus;
00077 Mars *mars;
00078 Jupiter *jupiter;
00079 Saturn *saturn;
00080 Uranus *uranus;
00081 Neptune *neptune;
00082
00083
00084
00085
00086
00087 int nplanets;
00088 SGVec3d planets[7];
00089
00090 SGStarData *stars;
00091
00092 public:
00093
00100 SGEphemeris( const std::string &path );
00101
00103 ~SGEphemeris( void );
00104
00115 void update(double mjd, double lst, double lat);
00116
00121 inline Star *get_sun() const { return our_sun; }
00122
00124 inline double getSunRightAscension() const {
00125 return our_sun->getRightAscension();
00126 }
00127
00129 inline double getSunDeclination() const {
00130 return our_sun->getDeclination();
00131 }
00132
00137 inline MoonPos *get_moon() const { return moon; }
00138
00140 inline double getMoonRightAscension() const {
00141 return moon->getRightAscension();
00142 }
00143
00145 inline double getMoonDeclination() const {
00146 return moon->getDeclination();
00147 }
00148
00150 inline int getNumPlanets() const { return nplanets; }
00151
00160 inline SGVec3d *getPlanets() { return planets; }
00161 inline const SGVec3d *getPlanets() const { return planets; }
00162
00164 inline int getNumStars() const { return stars->getNumStars(); }
00165
00173 inline SGVec3d *getStars() { return stars->getStars(); }
00174 inline const SGVec3d *getStars() const { return stars->getStars(); }
00175 };
00176
00177
00178 #endif // _EPHEMERIS_HXX
00179
00180