00001 00007 /* Copyright (C) 2002-2004, Bernd Speiser */ 00008 00009 /* This file is part of Quantities. 00010 00011 PhysicalQuantities is free software; you can redistribute it and/or 00012 modify it under the terms of the GNU General Public License 00013 as published by the Free Software Foundation; either version 2 00014 of the License, or (at your option) any later version. 00015 00016 PhysicalQuantities is distributed in the hope that it will be useful, 00017 but WITHOUT ANY WARRANTY; without even the implied warranty of 00018 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 00019 GNU General Public License for more details. 00020 00021 You should have received a copy of the GNU General Public License 00022 along with this program; if not, write to the Free Software 00023 Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 00024 02111-1307, USA. 00025 */ 00026 00027 #ifndef _LuminousIntensity_h 00028 #define _LuminousIntensity_h 00029 00030 #include "Quantity/Variable.h" 00031 #include "Quantity/Constant.h" 00032 #include "Quantity/QuantityCluster.h" 00033 00034 namespace Quantities { 00035 00036 /* LuminousIntensity dimension */ 00037 typedef BSUtilities::Rational<0> LuminousIntensity_LE; 00038 typedef BSUtilities::Rational<0> LuminousIntensity_M; 00039 typedef BSUtilities::Rational<0> LuminousIntensity_TI; 00040 typedef BSUtilities::Rational<0> LuminousIntensity_E; 00041 typedef BSUtilities::Rational<0> LuminousIntensity_TE; 00042 typedef BSUtilities::Rational<0> LuminousIntensity_A; 00043 typedef BSUtilities::Rational<1> LuminousIntensity_LU; 00044 00045 class LuminousIntensityGroup 00046 { 00047 public: 00048 typedef TYPELIST_7(LuminousIntensity_LE, LuminousIntensity_M, 00049 LuminousIntensity_TI, LuminousIntensity_E, 00050 LuminousIntensity_TE, LuminousIntensity_A, 00051 LuminousIntensity_LU) DimTL; 00052 }; 00053 00055 00056 namespace LuminousIntensityUnits { 00057 00059 typedef Units::Unit<LuminousIntensityGroup> LuminousIntensityUnit; 00060 00061 /* declaration of LuminousIntensity units */ 00062 class CandelaUnits; 00063 00064 /* the Candela and prefixed Candelas */ 00065 00066 typedef 00067 Units::Prefixable<LuminousIntensityGroup, CandelaUnits> Candelas; 00068 00069 typedef Units::Prefixed<Candelas> Candela; 00070 00072 typedef TYPELIST_1(Candelas::Units) LuminousIntensityUnits; 00073 00074 /* declare some abbreviated time units */ 00075 00076 typedef Candela cd; 00077 00078 } 00079 00080 /* declaration of LuminousIntensity dimension */ 00081 00082 typedef Dimensions::Dimension<LuminousIntensityGroup> 00083 LuminousIntensityDimension; 00084 00085 /* LuminousIntensity quantity */ 00086 00087 typedef Quantity<LuminousIntensityGroup, 00088 LuminousIntensityUnits::LuminousIntensityUnits, 00089 LuminousIntensityUnits::Candela> LuminousIntensityQuantities; 00090 00091 typedef Variable<LuminousIntensityQuantities> LuminousIntensity; 00092 typedef Constant<LuminousIntensityQuantities> LuminousIntensityConstant; 00093 00094 typedef VariableVector<LuminousIntensityQuantities> 00095 LuminousIntensityVector; 00096 00097 } 00098 00099 #endif /* _LuminousIntensity_h */