]> git.mxchange.org Git - simgear.git/blob - simgear/sg_inlines.h
Display a warning message for Irix users.
[simgear.git] / simgear / sg_inlines.h
1 /** 
2  * \file sg_inlines.h
3  * Various inline template definitions.
4  */
5
6 // Written by Norman Vine, started June 2000.
7 //
8 // Copyright (C) 2000  Norman Vine  - nhv@cape.com
9 //
10 // This library is free software; you can redistribute it and/or
11 // modify it under the terms of the GNU Library General Public
12 // License as published by the Free Software Foundation; either
13 // version 2 of the License, or (at your option) any later version.
14 //
15 // This library is distributed in the hope that it will be useful,
16 // but WITHOUT ANY WARRANTY; without even the implied warranty of
17 // MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
18 // Library General Public License for more details.
19 //
20 // You should have received a copy of the GNU Library General Public
21 // License along with this library; if not, write to the
22 // Free Software Foundation, Inc., 59 Temple Place - Suite 330,
23 // Boston, MA  02111-1307, USA.
24 //
25 // $Id$
26
27
28 #ifndef _SG_INLINES_H
29 #define _SG_INLINES_H
30
31 template <class T>
32 inline const int SG_SIGN(const T x) {
33     return x < T(0) ? -1 : 1;
34 }
35
36 template <class T>
37 inline const T SG_MIN2(const T a, const T b) {
38     return a < b ? a : b;
39 }
40
41 // return the minimum of three values
42 template <class T>
43 inline const T SG_MIN3( const T a, const T b, const T c) {
44     return (a < b ? SG_MIN2 (a, c) : SG_MIN2 (b, c));
45 }
46
47 template <class T>
48 inline const T SG_MAX2(const T a, const T b) {
49     return  a > b ? a : b;
50 }
51
52 // return the maximum of three values
53 template <class T>
54 inline const T SG_MAX3 (const T a, const T b, const T c) {
55     return (a > b ? SG_MAX2 (a, c) : SG_MAX2 (b, c));
56 }
57
58 // 
59 template <class T>
60 inline void SG_SWAP( T &a, T &b) {
61     T c = a;  a = b;  b = c;
62 }
63
64 #endif // _SG_INLINES_H