}; /** GPDUnit is a Unit with baseUnits fixed by its constructors, see GPDExpnt. setBaseUnitExponent * throws an exception if any other string is passed in as a baseUnit. GPDUnit.hpp declares * related operators and UnitFactory callback functions. */ class UTILITIES_API GPDUnit : public Unit { public: /** @name Constructors and Destructors */ //@{ /** Default constructor. * * \param[in] exponents holds the exponents for each base unit. * \param[in] scaleExponent exponent for scale. For instance 3 for kilo. * \param[in] prettyString optional string to use in place of standardString. */ GPDUnit(const GPDExpnt& exponents=GPDExpnt(), int scaleExponent=0, const std::string& prettyString=""); /** Alternate constructor. Specify the abbreviation of the scale, rather than its * exponent. * * \param[in] scaleAbbreviation is string equal to a scale abbreviation. For instance * "k" for kilo. * \param[in] exponents holds the exponents for each base unit. * \param[in] prettyString optional string to use in place of standardString. */ GPDUnit(const std::string& scaleAbbreviation, const GPDExpnt& exponents=GPDExpnt(), const std::string& prettyString=""); virtual ~GPDUnit() {}
GPDUnit createGPDVolumetricFlowrate() { return GPDUnit(GPDExpnt(0,1,-1),0,"gpd"); }
GPDUnit createGPDLuminousFlux() { return GPDUnit(GPDExpnt(0,0,0,0,0,1,0,0,1),0,"lm"); }
GPDUnit createGPDCurrency() { return GPDUnit(GPDExpnt(0,0,0,0,0,0,0,0,0,0,0,1)); }
GPDUnit createGPDVolume() { return GPDUnit(GPDExpnt(0,1),0,"gal"); }
GPDUnit createGPDPeople() { return GPDUnit(GPDExpnt(0,0,0,0,0,0,0,0,0,1)); }
GPDUnit createGPDCycle() { return GPDUnit(GPDExpnt(0,0,0,0,0,0,0,0,0,0,1)); }
GPDUnit createGPDAmountOfSubstance() { return GPDUnit(GPDExpnt(0,0,0,0,0,0,1)); }
GPDUnit createGPDSolidAngle() { return GPDUnit(GPDExpnt(0,0,0,0,0,0,0,0,1)); }
GPDUnit createGPDLuminousIntensity() { return GPDUnit(GPDExpnt(0,0,0,0,0,1)); }
GPDUnit createGPDElectricCurrent() { return GPDUnit(GPDExpnt(0,0,0,0,1)); }
GPDUnit createGPDTemperature() { return GPDUnit(GPDExpnt(0,0,0,1)); }
GPDUnit createGPDTime() { return GPDUnit(GPDExpnt(0,0,1)); }
GPDUnit createGPDPressure() { return GPDUnit(GPDExpnt(1)); }