diff --git a/vcg/math/base.h b/vcg/math/base.h index b92a6a42..9f504e24 100644 --- a/vcg/math/base.h +++ b/vcg/math/base.h @@ -24,6 +24,9 @@ History $Log: not supported by cvs2svn $ +Revision 1.3 2004/02/19 15:28:01 ponchio +*** empty log message *** + Revision 1.2 2004/02/13 02:18:57 cignoni Edited Comments and GPL license @@ -42,65 +45,49 @@ Edited Comments and GPL license #endif namespace vcg { +namespace math { - template class Math - { - public: - static T inline Sqrt(const T v); - static T inline Abs(const T v); - static T inline Cos(const T v); - static T inline Sin(const T v); - - - static const T MaxVal; - static T ToDeg(const T &a); - static T ToRad(const T &a); - // Unspecialized members - T Clamp( const T & val, const T& minval, const T& maxval); - class MagnitudoComparer + template + class MagnitudoComparer { public: - inline bool operator() ( const T a, const T b ) { return fabs(a)>fabs(b); } + inline bool operator() ( const SCALAR a, const SCALAR b ) { return fabs(a)>fabs(b); } }; - }; + - float Math::Sqrt(const float v) - { return sqrtf(v); } - float Math::Abs(const float v) - { return fabsf(v); } - float Math::Cos(const float v) - { return cosf(v); } - float Math::Sin(const float v) - { return sinf(v); } + float Sqrt(const float v) { return sqrtf(v); } + float Abs(const float v) { return fabsf(v); } + float Cos(const float v) { return cosf(v); } + float Sin(const float v) { return sinf(v); } - double Math::Sqrt(const double v) - { return sqrt(v); } - double Math::Abs(const double v) - { return fabs(v); } - double Math::Cos(const double v) - { return cos(v); } - double Math::Sin(const double v) - { return sin(v); } + double Sqrt(const double v) { return sqrt(v); } + double Abs(const double v) { return fabs(v); } + double Cos(const double v) { return cos(v); } + double Sin(const double v) { return sin(v); } - const unsigned char Math::MaxVal = 255; - const char Math::MaxVal = 127; - const unsigned short Math::MaxVal = 0xFFFFu; - const short Math::MaxVal = 0x7FFF; - const float Math::MaxVal = 3.4E38F; - const int Math::MaxVal = 2147483647; - const long double Math::MaxVal = 1.2E308; - const double Math::MaxVal = 1.7E308; - const __int64 Math<__int64 >::MaxVal = 9223372036854775807; - + template + class MaxVal + { + public: + //const unsigned char Math::MaxVal = 255; + //const char Math::MaxVal = 127; + //const unsigned short Math::MaxVal = 0xFFFFu; + //const short Math::MaxVal = 0x7FFF; + //const float Math::MaxVal = 3.4E38F; + //const int Math::MaxVal = 2147483647; + //const long double Math::MaxVal = 1.2E308; + //const double Math::MaxVal = 1.7E308; + //const __int64 Math<__int64 >::MaxVal = 9223372036854775807; + }; /* Some files do not define M_PI... */ #ifndef M_PI #define M_PI 3.14159265358979323846 #endif template -inline SCALAR Math::Clamp( const SCALAR & val, const SCALAR& minval, const SCALAR& maxval) +inline SCALAR Clamp( const SCALAR & val, const SCALAR& minval, const SCALAR& maxval) { if(val < minval) return minval; if(val > maxval) return maxval; @@ -109,12 +96,13 @@ inline SCALAR Math::Clamp( const SCALAR & val, const SCALAR& minval, co -inline float Math::ToDeg(const float &a){return a*180.0f/float(M_PI);} -inline float Math::ToRad(const float &a){return float(M_PI)*a/180.0f;} -inline double Math::ToDeg(const double &a){return a*180.0/M_PI;} -inline double Math::ToRad(const double &a){return M_PI*a/180.0;} +inline float ToDeg(const float &a){return a*180.0f/float(M_PI);} +inline float ToRad(const float &a){return float(M_PI)*a/180.0f;} +inline double ToDeg(const double &a){return a*180.0/M_PI;} +inline double ToRad(const double &a){return M_PI*a/180.0;} } // End namespace +} // End namespace #endif \ No newline at end of file