CARMA C++
Temperature.h
1 #ifndef SZA_UTIL_TEMPERATURE_H
2 #define SZA_UTIL_TEMPERATURE_H
3 
11 #include "carma/szautil/ConformableQuantity.h"
12 #include "carma/szautil/Unit.h"
13 
14 namespace sza {
15  namespace util {
16 
17  class Temperature : public ConformableQuantity {
18  public:
19 
20  class Kelvin : public Unit {
21  public:
22  void addNames();
23  };
24 
25  class Centigrade{};
26  class Celsius {};
27  class Fahrenheit{};
28 
32  Temperature();
33  Temperature(const Kelvin& units, double kelvins);
34  Temperature(const Centigrade& units, double centigrade);
35  Temperature(const Celsius& units, double celsius);
36  Temperature(const Fahrenheit& units, double fahrenheit);
37 
41  virtual ~Temperature();
42 
43  void setC(double centigrade);
44  void setF(double fahrenheit);
45  void setK(double kelvin);
46  void setKelvin(double kelvin);
47  void setMilliKelvin(double milliKelvin);
48 
49  double C();
50  double F();
51  double K();
52 
53  static const double kelvinZeroPointInC_;
54 
55  void initialize();
56 
57  // Allows cout << Temperature
58 
59  friend std::ostream& operator<<(std::ostream& os, Temperature& temp);
60 
61  private:
62 
63  double centigrade_;
64 
65  }; // End class Temperature
66 
67  } // End namespace util
68 } // End namespace sza
69 
70 
71 
72 #endif // End #ifndef SZA_UTIL_TEMPERATURE_H
Tagged: Sun Oct 22 19:22:27 PDT 2006.