OpenStructure
Data Structures | Namespaces | Typedefs | Functions
physical_units.hh File Reference
#include <boost/mpl/vector_c.hpp>
#include <boost/mpl/placeholders.hpp>
#include <boost/mpl/plus.hpp>
#include <boost/mpl/transform.hpp>
#include <ost/base.hh>

Go to the source code of this file.

Data Structures

class  quantity< Dimensions >
 
struct  multiply_dimensions< D1, D2 >
 
struct  divide_dimensions< D1, D2 >
 
class  Scalar
 

Namespaces

 ost
 
 ost::img
 
 ost::img::physics
 
 ost::img::physics::detail
 

Typedefs

typedef mpl::vector_c< int, 1, 0, 0, 0, 0, 0, 0 > mass_dimension
 
typedef mpl::vector_c< int, 0, 1, 0, 0, 0, 0, 0 > length_dimension
 
typedef mpl::vector_c< int, 0, 0, 1, 0, 0, 0, 0 > time_dimension
 
typedef mpl::vector_c< int, 0, 0, 0, 1, 0, 0, 0 > charge_dimension
 
typedef mpl::vector_c< int, 0, 0, 0, 0, 1, 0, 0 > temperature_dimension
 
typedef mpl::vector_c< int, 0, 0, 0, 0, 0, 1, 0 > intensity_dimension
 
typedef mpl::vector_c< int, 0, 0, 0, 0, 0, 0, 1 > amount_dimension
 
typedef mpl::vector_c< int, 0, 1,-1, 0, 0, 0, 0 > velocity_dimension
 
typedef mpl::vector_c< int, 0, 1,-2, 0, 0, 0, 0 > acceleration_dimension
 
typedef mpl::vector_c< int, 1, 1,-1, 0, 0, 0, 0 > momentum_dimension
 
typedef mpl::vector_c< int, 1, 1,-2, 0, 0, 0, 0 > force_dimension
 
typedef mpl::vector_c< int, 0, 0, 0, 0, 0, 0, 0 > scalar_dimension
 
typedef detail::quantity< detail::mass_dimension > Mass
 
typedef detail::quantity< detail::length_dimension > Length
 
typedef detail::quantity< detail::time_dimension > Time
 
typedef detail::quantity< detail::charge_dimension > Charge
 
typedef detail::quantity< detail::temperature_dimension > Temperature
 
typedef detail::quantity< detail::intensity_dimension > Intensity
 
typedef detail::quantity< detail::amount_dimension > Amount
 
typedef detail::quantity< detail::velocity_dimension > Velocity
 
typedef detail::quantity< detail::momentum_dimension > Momentum
 
typedef detail::quantity< detail::force_dimension > Force
 

Functions

template<class D >
quantity< D > operator+ (quantity< D > x, quantity< D > y)
 
template<class D >
quantity< D > operator- (quantity< D > x, quantity< D > y)
 
template<class D1 , class D2 >
quantity< typename multiply_dimensions< D1, D2 >::type > operator* (quantity< D1 > x, quantity< D2 > y)
 
template<class D1 , class D2 >
quantity< typename divide_dimensions< D1, D2 >::type > operator/ (quantity< D1 > x, quantity< D2 > y)