kstars
ksplanet.h
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018 #include <qstring.h>
00019 #include <qptrvector.h>
00020 #include <qdict.h>
00021
00022 #include "ksplanetbase.h"
00023 #include "dms.h"
00024
00025 #ifndef KSPLANET_H
00026 #define KSPLANET_H
00027
00042 class KStarsData;
00043
00044 class KSPlanet : public KSPlanetBase {
00045 public:
00046
00055 KSPlanet( KStarsData *kd, QString s="unnamed", QString image_file="", double pSize=0 );
00056
00059 virtual ~KSPlanet() {}
00060
00063 virtual bool loadData();
00064
00071 virtual void calcEcliptic(double jm, EclipticPosition &ret) const;
00072
00073 protected:
00074
00075 bool data_loaded;
00076
00083 virtual bool findGeocentricPosition( const KSNumbers *num, const KSPlanetBase *Earth=NULL );
00084
00091 class OrbitData {
00092 public:
00098 OrbitData(double a, double b, double c) :
00099 A(a), B(b), C(c) {}
00100
00101 double A, B, C;
00102 };
00103
00104 typedef QPtrVector<OrbitData> OBArray[6];
00105
00113 class OrbitDataColl {
00114 public:
00116 OrbitDataColl();
00117
00118 OBArray Lon;
00119 OBArray Lat;
00120 OBArray Dst;
00121 };
00122
00123
00130 class OrbitDataManager {
00131 public:
00133 OrbitDataManager();
00134
00142 OrbitDataColl *loadData(QString n);
00143
00144 private:
00151 bool readOrbitData(QString fname, QPtrVector<KSPlanet::OrbitData> *vector);
00152
00153 QDict<OrbitDataColl> dict;
00154 };
00155
00156 static OrbitDataManager odm;
00157
00158 };
00159
00160 #endif