Util.h

00001 /*************************************************************************************************
00002  *
00003  * Modeling and animation (TNM079) 2007
00004  * Code base for lab assignments. Copyright:
00005  *   Gunnar Johansson (gunnar.johansson@itn.liu.se)
00006  *   Ken Museth (ken.museth@itn.liu.se)
00007  *   Michael Bang Nielsen (bang@daimi.au.dk)
00008  *   Ola Nilsson (ola.nilsson@itn.liu.se)
00009  *   Andreas Söderström (andreas.soderstrom@itn.liu.se)
00010  *
00011  *************************************************************************************************/
00012 #ifndef __util_h__
00013 #define __util_h__
00014 
00015 #include <string> // for string
00016 #include <algorithm> //for transform
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

Generated on Fri Jul 20 23:57:42 2007 for HalfEdge by  doxygen 1.5.1