CARMA C++
Astro.h
Go to the documentation of this file.
1 // $Id: Astro.h,v 1.14 2013/07/16 13:41:30 mpound Exp $
2 
11 #ifndef CARMA_SERVICES_CONSTANTS_ASTRO_H
12 #define CARMA_SERVICES_CONSTANTS_ASTRO_H
13 
14 #include <string>
15 #include <map>
16 namespace carma {
17  namespace services {
18  namespace constants {
19 
32  class Astro {
33  public:
34 
39  static const double AU = 1.49597870691E11;
40 
55  typedef struct {
56 
60  char name[32];
61 
66  double radius;
67 
72  double mass;
73 
77  double aspectRatio;
78 
83  double avgDist;
84 
91 
98  double tempIndex;
99 
121  double poleRa2000; // degrees
122 
126  double poleDec2000; // degrees
127 
133  double dRaDt;
134 
140  double dDecDt;
141 
142  double W; // degrees
143 
144  double dWDt;
145 
146 
147  } planetType;
148 
149 
151  static const planetType SUN;
152 
154  static const planetType MERCURY;
155 
157  static const planetType VENUS;
158 
160  static const planetType EARTH;
161 
163  static const planetType MOON;
164 
166  static const planetType MARS;
167 
169  static const planetType JUPITER;
170 
172  static const planetType SATURN;
173 
175  static const planetType URANUS;
176 
178  static const planetType NEPTUNE;
179 
181  static const planetType PLUTO;
182 
188  static planetType getPlanet(const std::string& planetName);
189 
195  static bool isPlanet(const std::string& planetName);
196 
197  /*
198  static std::vector<Angle*>
199  angularSize(const planetType, const Distance& distance);
200  */
201 
203  // compiler will complain about private destructor with no friends
204  ~Astro();
205 
206  private:
208  Astro();
209 
210  static void initPlanets(void);
211  static std::map<std::string, planetType>* planets_;
212  static const unsigned int NUM_PLANETS = 11;
213  static const std::string PLANETNAME_[NUM_PLANETS];
214  static const planetType PLANETDATA_[NUM_PLANETS];
215 
216 
217  };
218  }
219  }
220 }
221 
222 #endif //CARMA_SERVICES_CONSTANTS_ASTRO_H
static const planetType SUN
Basic data for Sun.
Definition: Astro.h:151
double tempIndex
Power law index of temperature.
Definition: Astro.h:98
static const planetType MARS
Basic data for Mars.
Definition: Astro.h:166
static const planetType NEPTUNE
Basic data for Neptune.
Definition: Astro.h:178
double aspectRatio
Major/Minor axis aspect ratio (1 = spherical)
Definition: Astro.h:77
static const planetType SATURN
Basic data for Saturn.
Definition: Astro.h:172
static const planetType JUPITER
Basic data for Jupiter.
Definition: Astro.h:169
double poleDec2000
Declination of planet pole in J2000 epoch, degrees.
Definition: Astro.h:126
static const planetType EARTH
Basic data for Earth.
Definition: Astro.h:160
double poleRa2000
Coordinates of the North pole of the planet in J2000, as defined by the IAU.
Definition: Astro.h:121
static bool isPlanet(const std::string &planetName)
static const planetType PLUTO
Basic data for Pluto.
Definition: Astro.h:181
static const double AU
Astronomical Unit Units: m.
Definition: Astro.h:39
static planetType getPlanet(const std::string &planetName)
double dRaDt
Value of pole Ra change with time, (linear term) degrees per Julian Century.
Definition: Astro.h:133
A struct to hold simple planetary data.
Definition: Astro.h:55
static const planetType URANUS
Basic data for Uranus.
Definition: Astro.h:175
double brightnessTemp
Planetary brightess temperature at ~ 100 GHz.
Definition: Astro.h:90
double mass
Planetary mass Unit: kg.
Definition: Astro.h:72
double radius
Planetary radius Unit: m.
Definition: Astro.h:66
static const planetType MOON
Basic data for Moon.
Definition: Astro.h:163
static const planetType VENUS
Basic data for Venus.
Definition: Astro.h:157
double avgDist
Average distance to Sun Unit: AU.
Definition: Astro.h:83
static const planetType MERCURY
Basic data for Mercury.
Definition: Astro.h:154
Astronomical Constants used across CARMA.
Definition: Astro.h:32
double dDecDt
Value of pole Dec change with time, (linear term) degrees per Julian Century.
Definition: Astro.h:140