ionMathFunctions.h
Go to the documentation of this file.
1 
2 #pragma once
3 
4 #include "ionConstants.h"
5 #include <cmath>
6 
7 
8 namespace ion
9 {
10 
12  template <typename T>
13  T Abs(T const value)
14  {
15  return std::abs(value);
16  }
17 
22  template <typename T>
23  static T const MaxAbs(T const a, T const b)
24  {
25  return Abs(b) < Abs(a) ? a : b;
26  }
27 
28 
30  template <typename T>
31  T Sin(T const value)
32  {
33  return sin(value);
34  }
35 
37  template <typename T>
38  T ArcSin(T const value)
39  {
40  return asin(value);
41  }
42 
44  template <typename T>
45  T Cos(T const value)
46  {
47  return cos(value);
48  }
49 
51  template <typename T>
52  T ArcCos(T const value)
53  {
54  return acos(value);
55  }
56 
58  template <typename T>
59  T Tan(T const value)
60  {
61  return tan(value);
62  }
63 
65  template <typename T>
66  T ArcTan(T const value)
67  {
68  return atan(value);
69  }
70 
72  template <typename T>
73  T ArcTan(T const y, T const x)
74  {
75  return atan2(y, x);
76  }
77 
79  template <typename T>
80  T Sqrt(T const value)
81  {
82  return (T) sqrt(value);
83  }
84 
86  template <typename T>
87  T DegToRad(T const degrees)
88  {
89  return degrees * Constants<T>::Pi() / 180;
90  }
91 
93  template <typename T>
94  T RadToDeg(T const radians)
95  {
96  return radians * 180 / Constants<T>::Pi();
97  }
98 
100  template <typename T>
101  bool IsNaN(T const value)
102  {
103  return value != value;
104  }
105 
109  template <typename T>
110  T Saturate(T const value)
111  {
112  return Minimum(1, Maximum(0, value));
113  }
114 
115 }
T Abs(T const value)
Definition: ionMathFunctions.h:13
T RadToDeg(T const radians)
Definition: ionMathFunctions.h:94
T DegToRad(T const degrees)
Definition: ionMathFunctions.h:87
Definition: CCatmullRomAdvancedSplineInterpolator.h:7
T ArcCos(T const value)
Definition: ionMathFunctions.h:52
T ArcTan(T const value)
Definition: ionMathFunctions.h:66
T Saturate(T const value)
Clamps a value between 0 and 1.
Definition: ionMathFunctions.h:110
T Tan(T const value)
Definition: ionMathFunctions.h:59
bool IsNaN(T const value)
Definition: ionMathFunctions.h:101
T Sin(T const value)
Definition: ionMathFunctions.h:31
T Cos(T const value)
Definition: ionMathFunctions.h:45
float const Pi
Definition: ionConstants.h:14
T Sqrt(T const value)
Definition: ionMathFunctions.h:80
T ArcSin(T const value)
Definition: ionMathFunctions.h:38