joachim99@8: /*************************************************************************** joachim99@8: common.h - Things that are needed often joachim99@8: ------------------- joachim99@8: begin : Mon Mar 18 2002 joachim99@8: copyright : (C) 2002 by Joachim Eibl joachim99@8: email : joachim.eibl@gmx.de joachim99@8: ***************************************************************************/ joachim99@8: joachim99@8: /*************************************************************************** joachim99@8: * * joachim99@8: * This program is free software; you can redistribute it and/or modify * joachim99@8: * it under the terms of the GNU General Public License as published by * joachim99@8: * the Free Software Foundation; either version 2 of the License, or * joachim99@8: * (at your option) any later version. * joachim99@8: * * joachim99@8: ***************************************************************************/ joachim99@8: joachim99@8: #ifndef _COMMON_H joachim99@8: #define _COMMON_H joachim99@8: joachim99@8: template< class T > joachim99@8: T min2( T x, T y ) joachim99@8: { joachim99@8: return x joachim99@8: T max2( T x, T y ) joachim99@8: { joachim99@8: return x>y ? x : y; joachim99@8: } joachim99@8: joachim99@8: typedef unsigned char UINT8; joachim99@8: typedef unsigned short UINT16; joachim99@8: typedef unsigned int UINT32; joachim99@8: joachim99@8: joachim99@8: template joachim99@8: T min3( T d1, T d2, T d3 ) joachim99@8: { joachim99@8: if ( d1 < d2 && d1 < d3 ) return d1; joachim99@8: if ( d2 < d3 ) return d2; joachim99@8: return d3; joachim99@8: } joachim99@8: joachim99@8: template joachim99@8: T max3( T d1, T d2, T d3 ) joachim99@8: { joachim99@8: joachim99@8: if ( d1 > d2 && d1 > d3 ) return d1; joachim99@8: joachim99@8: joachim99@8: if ( d2 > d3 ) return d2; joachim99@8: return d3; joachim99@8: joachim99@8: } joachim99@8: joachim99@8: template joachim99@8: T minMaxLimiter( T d, T minimum, T maximum ) joachim99@8: { joachim99@8: assert(minimum<=maximum); joachim99@8: if ( d < minimum ) return minimum; joachim99@8: if ( d > maximum ) return maximum; joachim99@8: return d; joachim99@8: } joachim99@8: joachim99@8: #endif