00001
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024 #ifndef _Acceleration_h
00025 #define _Acceleration_h
00026
00027 #include "Quantity/Variable.h"
00028 #include "Quantity/Constant.h"
00029 #include "Quantity/QuantityCluster.h"
00030
00031 #include "PhysicalQuantities/Length.h"
00032 #include "PhysicalQuantities/Time.h"
00033
00034 namespace quantity {
00035 namespace acceleration {
00036
00038 typedef BSUtilities::Rational<1> LE;
00040 typedef BSUtilities::Rational<0> M;
00042 typedef BSUtilities::Rational<-2> TI;
00044 typedef BSUtilities::Rational<0> E;
00046 typedef BSUtilities::Rational<0> TE;
00048 typedef BSUtilities::Rational<0> A;
00050 typedef BSUtilities::Rational<0> LU;
00051
00052 typedef dimension::Dimension<LE, M, TI, E, TE, A, LU> Dimension;
00053
00055 class Unit;
00056
00058 class GalUnit;
00060 class StandardAccelerationOfFreeFallUnit;
00061
00062
00063
00064
00065 typedef LOKI_TYPELIST_3(length::Metre, length::CentiMetre,
00066 length::MilliMetre) LengthList;
00067
00070 typedef unit::ComposeElement<Unit, LengthList,
00071 BSUtilities::Rational<1> > LengthElement;
00072
00073 typedef LOKI_TYPELIST_3(time::Second, time::MilliSecond,
00074 time::MicroSecond) TimeList;
00075
00077 typedef unit::ComposeElement<Unit, TimeList,
00078 BSUtilities::Rational<-2> > TimeElement;
00079
00080 typedef
00081 unit::ComposeBase<Unit, LOKI_TYPELIST_2(LengthElement, TimeElement)>
00082 AccelerationComposedUnit;
00083
00084 typedef unit::Composed<AccelerationComposedUnit,
00085 LOKI_TYPELIST_2(length::Metre, time::Second)> MetrePerSquareSecond;
00086 typedef unit::Composed<AccelerationComposedUnit,
00087 LOKI_TYPELIST_2(length::CentiMetre, time::Second)>
00088 CentiMetrePerSquareSecond;
00089 typedef unit::Composed<AccelerationComposedUnit,
00090 LOKI_TYPELIST_2(length::Metre, time::MilliSecond)>
00091 MetrePerSquareMilliSecond;
00092
00093
00094
00095
00096 typedef unit::NonPrefixable<Unit, GalUnit> Gal;
00097
00098
00099
00100 typedef unit::NonPrefixable<Unit,
00101 StandardAccelerationOfFreeFallUnit> StandardAccelerationOfFreeFall;
00102
00104 typedef LOKI_TYPELIST_5(MetrePerSquareSecond,
00105 CentiMetrePerSquareSecond, MetrePerSquareMilliSecond, Gal,
00106 StandardAccelerationOfFreeFall) Units;
00107
00108
00109
00110 typedef Quantity<Dimension, Unit, Units, MetrePerSquareSecond> Quantity;
00111
00112 }
00113
00115 typedef Variable<acceleration::Quantity> Acceleration;
00117 typedef Constant<acceleration::Quantity> AccelerationConstant;
00118
00119 typedef
00120 QuantityVector<Variable, acceleration::Quantity> AccelerationVector;
00121
00122 }
00123
00124 #endif