00001
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027 #ifndef _CelsiusTemperature_h
00028 #define _CelsiusTemperature_h
00029
00030
00031 #include "Quantity/Variable.h"
00032 #include "Quantity/Constant.h"
00033 #include "Quantity/QuantityCluster.h"
00034
00035 namespace quantity {
00036 namespace celsiusTemperature {
00037
00039 class Class;
00040
00042 class Unit;
00043
00044
00045 class DegreeCelsiusUnit;
00046
00048 typedef unit::NonPrefixable<Unit, DegreeCelsiusUnit> DegreeCelsius;
00049
00051 typedef LOKI_TYPELIST_1(DegreeCelsius) Units;
00052
00053
00054
00055 typedef Quantity<Class> Quantity;
00056
00057 class DerivedCelsiusTemperature;
00058
00059 }
00060
00062
00064 template<typename ST>
00065 struct Standard<celsiusTemperature::DegreeCelsius, ST>
00066 {
00067 static const ST ratio;
00068 static const bool exact;
00069 };
00070
00072 template<typename ST> const ST Standard<celsiusTemperature::DegreeCelsius, ST>::ratio = 1.0;
00073
00075 template<typename ST> const bool Standard<celsiusTemperature::DegreeCelsius, ST>::exact = true;
00076
00078 template<>
00079 struct QuantityTraits<celsiusTemperature::Class>
00080 {
00081 typedef
00082 dimension::Dimension<BSUtilities::Rational<0>,
00083 BSUtilities::Rational<0>, BSUtilities::Rational<0>,
00084 BSUtilities::Rational<0>, BSUtilities::Rational<1>,
00085 BSUtilities::Rational<0>, BSUtilities::Rational<0> > Dimension;
00086 typedef celsiusTemperature::Unit UnitType;
00087 typedef celsiusTemperature::Units UnitList;
00088 typedef celsiusTemperature::DegreeCelsius DefaultUnit;
00089
00090 typedef celsiusTemperature::DerivedCelsiusTemperature DefaultDerivedQuantityType;
00091
00092 static const std::string NameString;
00093 static const std::string SymbolString;
00094
00095 };
00096
00097
00098 template<>
00099 struct DerivedQuantityTraits<celsiusTemperature::Class, celsiusTemperature::DerivedCelsiusTemperature>
00100 {
00101 static const bool OverwriteName = false;
00102 static const bool OverwriteSymbol = false;
00103
00104 static const std::string NameString;
00105 static const std::string SymbolString;
00106
00107 };
00108
00109
00111 typedef Variable<celsiusTemperature::Quantity> CelsiusTemperature;
00112
00114 typedef Constant<celsiusTemperature::Quantity> CelsiusTemperatureConstant;
00115
00116 }
00117
00118 #endif