00001
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027 #ifndef _LuminousIntensity_h
00028 #define _LuminousIntensity_h
00029
00030
00031 #include "Quantity/Variable.h"
00032 #include "Quantity/Constant.h"
00033 #include "Quantity/QuantityCluster.h"
00034
00035 namespace quantity {
00036 namespace luminousIntensity {
00037
00039 class Class;
00040
00042 class Unit;
00043
00044
00045 class CandelaUnits;
00046
00048 typedef unit::Prefixable<Unit, CandelaUnits> Candelas;
00049
00051 typedef unit::Prefixed<Candelas> Candela;
00052
00054 typedef LOKI_TYPELIST_1(Candelas::Units) Units;
00055
00056
00057
00058 typedef Candela cd;
00059
00060
00061
00062 typedef Quantity<Class> Quantity;
00063
00064 class DerivedLuminousIntensity;
00065
00066 }
00067
00069
00071 template<typename ST>
00072 struct Standard<luminousIntensity::Candelas, ST>
00073 {
00074 static const ST ratio;
00075 static const bool exact;
00076 };
00077
00079 template<typename ST> const ST Standard<luminousIntensity::Candelas, ST>::ratio = 1.0;
00080
00082 template<typename ST> const bool Standard<luminousIntensity::Candelas, ST>::exact = true;
00083
00085 template<>
00086 struct QuantityTraits<luminousIntensity::Class>
00087 {
00088 typedef
00089 dimension::Dimension<BSUtilities::Rational<0>,
00090 BSUtilities::Rational<0>, BSUtilities::Rational<0>,
00091 BSUtilities::Rational<0>, BSUtilities::Rational<0>,
00092 BSUtilities::Rational<0>, BSUtilities::Rational<1> > Dimension;
00093 typedef luminousIntensity::Unit UnitType;
00094 typedef luminousIntensity::Units UnitList;
00095 typedef luminousIntensity::Candela DefaultUnit;
00096
00097 typedef luminousIntensity::DerivedLuminousIntensity DefaultDerivedQuantityType;
00098
00099 static const std::string NameString;
00100 static const std::string SymbolString;
00101 };
00102
00103
00104 template<>
00105 struct DerivedQuantityTraits<luminousIntensity::Class, luminousIntensity::DerivedLuminousIntensity>
00106 {
00107 static const bool OverwriteName = false;
00108 static const bool OverwriteSymbol = false;
00109
00110 static const std::string NameString;
00111 static const std::string SymbolString;
00112
00113 };
00114
00116 typedef Variable<luminousIntensity::Quantity> LuminousIntensity;
00117
00119 typedef Constant<luminousIntensity::Quantity> LuminousIntensityConstant;
00120
00122 typedef QuantityVector<Variable, luminousIntensity::Quantity>
00123 LuminousIntensityVector;
00124
00125 }
00126
00127 #endif