CARMA C++
carma::services::ConformableQuantity Class Reference

The ConformableQuantity class can represent any quantity that can be expressed in many units. More...

#include <carma/services/ConformableQuantity.h>

Inheritance diagram for carma::services::ConformableQuantity:
carma::services::Angle carma::services::AngularRate carma::services::FluxDensity carma::services::Frequency carma::services::Length carma::services::Pressure carma::services::Temperature carma::services::Velocity

Public Member Functions

 ConformableQuantity (double value, const std::string &units)
 Construct an ConformableQuantity given a value and units. More...
 
virtual double convert (const std::string &convertTo) const
 Converts this quantity to any conformable units. More...
 
virtual std::string getUnits () const
 
double getValue () const
 
virtual const ConformableQuantity operator+ (const ConformableQuantity &quantity) const
 Add two ConformableQuantities. More...
 
virtual ConformableQuantityoperator+= (const ConformableQuantity &quantity)
 Add ConformableQuantity to itself. More...
 
virtual const ConformableQuantity operator- (const ConformableQuantity &quantity) const
 Subtract two ConformableQuantities. More...
 
virtual ConformableQuantityoperator-= (const ConformableQuantity &quantity)
 Subtract ConformableQuantity from itself. More...
 
virtual void reset (double value, const std::string &units)
 Reset method to change value and/or units. More...
 
virtual ~ConformableQuantity ()
 Destructor. More...
 

Protected Attributes

Units u_
 Used for converting between units. More...
 

Detailed Description

The ConformableQuantity class can represent any quantity that can be expressed in many units.

It is meant to be subclassed to represent specific physical quantities like angle and distance. It uses the carma::services::Units class internally to handle conversion of any angular unit to any other angular unit. Binary operations + and - are supported, as is the stream operation <<.

Todo:
(low priority) overload other operators

Definition at line 34 of file ConformableQuantity.h.

Constructor & Destructor Documentation

carma::services::ConformableQuantity::ConformableQuantity ( double  value,
const std::string &  units 
)
explicit

Construct an ConformableQuantity given a value and units.

Parameters
valueThe value of this quantity
unitsThe units of the value.
virtual carma::services::ConformableQuantity::~ConformableQuantity ( )
virtual

Destructor.

Member Function Documentation

virtual double carma::services::ConformableQuantity::convert ( const std::string &  convertTo) const
virtual

Converts this quantity to any conformable units.

This method is virtual in case subclasses need to munge the input variable for conformability. (e.g. HourAngle)

Parameters
convertToA string representing the units to convert to.
Returns
the value of this ConformableQuantity converted to the desired units
Exceptions
ConformabilityException

Reimplemented in carma::services::HourAngle.

virtual std::string carma::services::ConformableQuantity::getUnits ( ) const
virtual
Returns
the units of this ConformableQuantity when it was instantiated.

Reimplemented in carma::services::HourAngle.

double carma::services::ConformableQuantity::getValue ( ) const
Returns
the value of this ConformableQuantity in the units when was instantiated.

Definition at line 66 of file ConformableQuantity.h.

virtual const ConformableQuantity carma::services::ConformableQuantity::operator+ ( const ConformableQuantity quantity) const
virtual

Add two ConformableQuantities.

Returns
an ConformableQuantity with radian units that is the sum of the two ConformableQuantities modulo 2PI.
Exceptions
ConformabilityException
virtual ConformableQuantity& carma::services::ConformableQuantity::operator+= ( const ConformableQuantity quantity)
virtual

Add ConformableQuantity to itself.

Returns
a ConformableQuantity in same units
Exceptions
ConformabilityException
virtual const ConformableQuantity carma::services::ConformableQuantity::operator- ( const ConformableQuantity quantity) const
virtual

Subtract two ConformableQuantities.

Returns
an ConformableQuantity with radian units that is the sum of the two quantitys modulo 2PI.
Exceptions
ConformabilityException
virtual ConformableQuantity& carma::services::ConformableQuantity::operator-= ( const ConformableQuantity quantity)
virtual

Subtract ConformableQuantity from itself.

Returns
a ConformableQuantity in same units
Exceptions
ConformabilityException
virtual void carma::services::ConformableQuantity::reset ( double  value,
const std::string &  units 
)
virtual

Reset method to change value and/or units.

This method is needed meant so that HourAngle can reassign "hours" to be "circle (hours/day)" so that Units will work transparently. note: no longer protected since lack of default constructor and unit specification insures conformability

Parameters
valueThe value of this quantity
unitsThe units of the value.

Reimplemented in carma::services::HourAngle, and carma::services::Temperature.

Member Data Documentation

Units carma::services::ConformableQuantity::u_
protected

Used for converting between units.

Definition at line 128 of file ConformableQuantity.h.


The documentation for this class was generated from the following file: