00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012 #ifndef __util_h__
00013 #define __util_h__
00014
00015 #include <string>
00016 #include <algorithm>
00017
00019 std::string& lower(std::string & str);
00021 std::string trim(std::string & str);
00022
00024 template<typename T>
00025 inline T sign(T value)
00026 {
00027 T mysign = -(T)1.0;
00028 if (value >= (T)0.0){
00029 mysign = (T)1.0;
00030 }
00031 return mysign;
00032 }
00033
00035 template <typename Scalar>
00036 inline Scalar clamp(Scalar val, Scalar low, Scalar high)
00037 {
00038 if (val < low) return low;
00039 else if (val > high) return high;
00040 else return val;
00041 }
00042
00044 template <class Scalar>
00045 inline Scalar switch1(Scalar val, Scalar x1, Scalar x2)
00046 {
00047 return ( val<x1 ? 0 : ( val>x2 ? 1 : (val-x1)/(x2-x1)) );
00048 }
00049
00050 #endif