OpenStudioCore:utilities
 AllClasses Namespaces Functions Variables Typedefs Enumerations Enumerator Friends Pages

#include "IPUnit.hpp"

Inheritance diagram for openstudio::IPUnit:

Public Member Functions

 IPUnit (const IPExpnt &exponents=IPExpnt(), int scaleExponent=0, const std::string &prettyString="")
 IPUnit (const std::string &scaleAbbreviation, const IPExpnt &exponents=IPExpnt(), const std::string &prettyString="")
virtual ~IPUnit ()
void lbmToLbf ()
void lbfToLbm ()

Static Public Member Functions

static double gc ()

Related Functions

typedef std::vector< IPUnitIPUnitVector
typedef boost::optional< IPUnitOptionalIPUnit
IPUnit createIPMass ()
IPUnit createIPLength ()
IPUnit createIPTime ()
IPUnit createIPTemperature ()
IPUnit createIPElectricCurrent ()
IPUnit createIPLuminousIntensity ()
IPUnit createIPAmountOfSubstance ()
IPUnit createIPAngle ()
IPUnit createIPSolidAngle ()
IPUnit createIPPeople ()
IPUnit createIPForce ()
IPUnit createIPEnergy ()
IPUnit createIPPower ()
IPUnit createIPElectricCharge ()
IPUnit createIPLuminousFlux ()
IPUnit createIPIlluminance ()
IPUnit createIPFrequency ()

Detailed Description

IPUnit is a Unit with baseUnits fixed by its constructors, see IPExpnt.

setBaseUnitExponent throws an exception if any other string is passed in as a baseUnit. IPUnit.hpp declares related operators and UnitFactory callback functions.

Constructor & Destructor Documentation

openstudio::IPUnit::IPUnit ( const IPExpnt exponents = IPExpnt(),
int  scaleExponent = 0,
const std::string &  prettyString = "" 
)

Default constructor.

Example:

IPUnit myEnergy(IPExpnt(0,1,0,0,1));
std::cout << myEnergy; // produces "ft*lb_f" 
Parameters
[in]exponentsholds the exponents for each base unit.
[in]scaleExponentexponent for scale. For instance 3 for kilo.
[in]prettyStringoptional string to use in place of standardString.
openstudio::IPUnit::IPUnit ( const std::string &  scaleAbbreviation,
const IPExpnt exponents = IPExpnt(),
const std::string &  prettyString = "" 
)

Alternate constructor.

Specify the abbreviation of the scale, rather than its exponent.

Parameters
[in]scaleAbbreviationis string equal to a scale abbreviation. For instance "k" for kilo.
[in]exponentsholds the exponents for each base unit.
[in]prettyStringoptional string to use in place of standardString.
virtual openstudio::IPUnit::~IPUnit ( )
inlinevirtual

Member Function Documentation

static double openstudio::IPUnit::gc ( )
static
void openstudio::IPUnit::lbfToLbm ( )

Convert any non-zero lb_f exponent to lb_m.

void openstudio::IPUnit::lbmToLbf ( )

Convert any non-zero lb_m exponent to lb_f.

Friends And Related Function Documentation

IPUnit createIPAmountOfSubstance ( )
related
IPUnit createIPAngle ( )
related
IPUnit createIPElectricCharge ( )
related

Coulomb (C) = s*A.

IPUnit createIPElectricCurrent ( )
related
IPUnit createIPEnergy ( )
related

ft*lb_f is preferred over equivalent using lb_m.

IPUnit createIPForce ( )
related

lb_f is preferred over equivalent using lb_m.

IPUnit createIPFrequency ( )
related

Hertz (Hz) = cycles/s.

Making the distinction between 1/s and cycles/s here mainly to be consistent with the rotations per minute (rpm) designation made elsewhere.

IPUnit createIPIlluminance ( )
related

Foot-candles (fc) = lm/ft^2 = cd*sr/ft^2.

IPUnit createIPLength ( )
related
IPUnit createIPLuminousFlux ( )
related

Lumen (lm) = cd*sr.

IPUnit createIPLuminousIntensity ( )
related
IPUnit createIPMass ( )
related
IPUnit createIPPeople ( )
related
IPUnit createIPPower ( )
related

ft*lb_f/s is preferred over equivalent using lb_m.

IPUnit createIPSolidAngle ( )
related
IPUnit createIPTemperature ( )
related
IPUnit createIPTime ( )
related
typedef std::vector<IPUnit> IPUnitVector
related
typedef boost::optional<IPUnit> OptionalIPUnit
related