MathHelper.h
Go to the documentation of this file.
1 #ifndef __GfxTL_MATHHELPER_HEADER__
2 #define __GfxTL_MATHHELPER_HEADER__
3 #ifndef _USE_MATH_DEFINES
4 #define _USE_MATH_DEFINES
5 #endif
6 #include <cmath>
7 
8 namespace GfxTL
9 {
10  template< class ScalarT >
11  class Math
12  {
13  public:
14  static inline ScalarT Abs(ScalarT s)
15  {
16  if (s < 0)
17  {
18  return -s;
19  }
20  return s;
21  }
22 
23  static inline ScalarT Sign(ScalarT s)
24  {
25  if (s < 0)
26  {
27  return -1;
28  }
29  else if (s > 0)
30  {
31  return 1;
32  }
33  return 0;
34  }
35 
36  static inline ScalarT Clamp(ScalarT s, ScalarT bottom, ScalarT top)
37  {
38  if (s < bottom)
39  {
40  return bottom;
41  }
42  if (s > top)
43  {
44  return top;
45  }
46  return s;
47  }
48 
49  static inline ScalarT Max(ScalarT a, ScalarT b)
50  {
51  if (a > b)
52  {
53  return a;
54  }
55  return b;
56  }
57 
58  static inline ScalarT Min(ScalarT a, ScalarT b)
59  {
60  if (a < b)
61  {
62  return a;
63  }
64  return b;
65  }
66  };
67 
68  /*template< >
69  class Math< float >
70  {
71  public:
72  static inline float Abs(float s)
73  {
74  // *reinterpret_cast< unsigned int * >(&s) &= 0x7FFFFFFFu;
75  if(s < 0) return -s;
76  return s;
77  }
78 
79  static inline float Sign(float s)
80  {
81  if(s < 0)
82  return -1;
83  else
84  return 1;
85  }
86 
87  static inline float Clamp(float s, float bottom, float top)
88  {
89  if(s < bottom)
90  return bottom;
91  if(s > top)
92  return top;
93  return s;
94  }
95 
96  static inline float Max(float a, float b)
97  {
98  if(a > b)
99  return a;
100  return b;
101  }
102 
103  static inline float Min(float a, float b)
104  {
105  if(a < b)
106  return a;
107  return b;
108  }
109  };*/
110 };
111 
112 #endif
113 
GfxTL::Math::Abs
static ScalarT Abs(ScalarT s)
Definition: MathHelper.h:14
GfxTL::Math::Sign
static ScalarT Sign(ScalarT s)
Definition: MathHelper.h:23
armarx::ctrlutil::a
double a(double t, double a0, double j)
Definition: CtrlUtil.h:45
GfxTL::Math::Min
static ScalarT Min(ScalarT a, ScalarT b)
Definition: MathHelper.h:58
GfxTL::Math
Definition: MathHelper.h:11
GfxTL::Math::Clamp
static ScalarT Clamp(ScalarT s, ScalarT bottom, ScalarT top)
Definition: MathHelper.h:36
GfxTL
Definition: AABox.h:8
GfxTL::Math::Max
static ScalarT Max(ScalarT a, ScalarT b)
Definition: MathHelper.h:49
armarx::ctrlutil::s
double s(double t, double s0, double v0, double a0, double j)
Definition: CtrlUtil.h:33