AaronCameron.net
I care not for your petty politics.
Not a Member? - Login or Create an Account
Sunday the 20th of May 2012 @ 02:31pm
Front Page Journal Projects Your Profile About
[]

LibN2L-4 Library Code Reference

Classes
Compounds
Files
Members
Method Index
Full Reference

base/misc.h

Go to the documentation of this file.
00001 /************************************************************************
00002 Nova-2 Library (libN2L, or simply n2l) Game development C++ Library
00003 Copyright (C) 2003  Aaron Cameron
00004 
00005 This library is free software; you can redistribute it and/or
00006 modify it under the terms of the GNU Lesser General Public
00007 License as published by the Free Software Foundation; either
00008 version 2.1 of the License, or (at your option) any later version.
00009 
00010 This library is distributed in the hope that it will be useful,
00011 but WITHOUT ANY WARRANTY; without even the implied warranty of
00012 MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
00013 Lesser General Public License for more details.
00014 
00015 You should have received a copy of the GNU Lesser General Public
00016 License along with this library; if not, write to the Free Software
00017 Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA  02111-1307 USA
00018 
00019 A copy of the GNU Lesser General Public License has been provided with
00020 this library in the file 'COPYING'.
00021 
00022 Contact information for the author of this library has been provided
00023 with this library in the file 'AUTHOR'.
00024 ************************************************************************/
00025 #ifndef _n2l4_core_misc_H
00026 #define _n2l4_core_misc_H
00027 
00028 #include "base/types.h"
00029 
00030 //#ifdef WIN32
00031 //# define endl '\n'
00032 //#endif
00033 namespace n2l
00034 {
00035     /**************************************************************************/
00039     template <typename TType>
00040     const TType & n2l_min( const TType & iA, const TType & iB )
00041     {
00042         if (iA>iB) return iB;
00043         return iA;
00044     }
00045 
00046     /**************************************************************************/
00047     template <typename TType>
00048     const TType & n2lMin( const TType & iA, const TType & iB )
00049     {
00050         if (iA>iB) return iB;
00051         return iA;
00052     }
00053 
00054     /**************************************************************************/
00058     template <typename TType>
00059     const TType & n2l_max( const TType & iA, const TType & iB )
00060     {
00061         if (iA>iB) return iA;
00062         return iB;
00063     }
00064 
00065     /**************************************************************************/
00066     template <typename TType>
00067     const TType & n2lMax( const TType & iA, const TType & iB )
00068     {
00069         if (iA>iB) return iA;
00070         return iB;
00071     }
00072 
00073     /**************************************************************************/
00077     template <typename TType>
00078     void n2l_swap( TType & iA, TType & iB )
00079     {
00080         const TType Temp(iA);
00081         iA=iB;
00082         iB=Temp;
00083     }
00084 
00085     /**************************************************************************/
00086     template <typename TType>
00087     void n2lSwap( TType & iA, TType & iB )
00088     {
00089         const TType Temp(iA);
00090         iA=iB;
00091         iB=Temp;
00092     }   
00093 
00094     /**************************************************************************/
00098     const tSint random( const tSint iOutOf = 0 );
00099 
00100     /**************************************************************************/
00101     const tSint n2lRandom( const tSint iOutOf = 0 );
00102 
00103     /**************************************************************************/
00104     const tFloat n2lRandomPCent();
00105 
00106     /**************************************************************************/
00107     void n2lDebug( const tString & iText, const tBool iNewLine=true );
00108 
00109 } // namespace n2l
00110 
00111 #endif
©2012 Aaron Cameron