/* -----------------------------------------------------------------------------
	GSFramework
	Copyright 2001-2013 Emmanuel Julien. All Rights Reserved.
----------------------------------------------------------------------------- */


#ifndef	__NUNIT__
#define	__NUNIT__


		#include "ntypes.h"


/*
	@short	Units namespace.
	@author	Emmanuel Julien (ejulien@gsworks.fr)
*/
namespace GS {
	namespace Units {

template <typename T> T Deg(T v)	{ return v / T(180) * T(3.1415926535); }
template <typename T> T	Rad(T v)	{ return v; }

template <typename T> T DegreeToRadian(T v) { return v / T(180) * T(3.1415926535); }
template <typename T> T RadianToDegree(T v) { return v / T(3.1415926535) * T(180); }

template <typename T> T Sec(T v)	{ return v; }
template <typename T> T Csec(T v)	{ return v * T(0.01); }
template <typename T> T Ms(T v)		{ return v * T(0.001); }

template <typename T> T Tick(T v)	{ return v * T(0.001); }

template <typename T> T Kg(T v)		{ return v; }
template <typename T> T G(T v)		{ return v * T(0.001); }

template <typename T> T Km(T v)		{ return v * T(1000); }
template <typename T> T Mtr(T v)	{ return v; }
template <typename T> T Cm(T v)		{ return v * T(0.01); }
template <typename T> T Mm(T v)		{ return v * T(0.001); }
template <typename T> T Inch(T v)	{ return v * T(0.0254); }

		size_t	KB(const size_t v);
		size_t	MB(const size_t v);

	} // Units
} // GS


#endif	// __NUNIT__
