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 Cos(T const value)
39  {
40  return cos(value);
41  }
42 
44  template <typename T>
45  T Tan(T const value)
46  {
47  return tan(value);
48  }
49 
51  template <typename T>
52  T ArcTan(T const value)
53  {
54  return atan(value);
55  }
56 
58  template <typename T>
59  T ArcTan(T const y, T const x)
60  {
61  return atan2(y, x);
62  }
63 
65  template <typename T>
66  T Sqrt(T const value)
67  {
68  return (T) sqrt(value);
69  }
70 
72  template <typename T>
73  T DegToRad(T const degrees)
74  {
75  return degrees * Constants<T>::Pi() / 180;
76  }
77 
79  template <typename T>
80  T RadToDeg(T const radians)
81  {
82  return radians * 180 / Constants<T>::Pi();
83  }
84 
86  template <typename T>
87  bool IsNaN(T const value)
88  {
89  return value != value;
90  }
91 
95  template <typename T>
96  T Saturate(T const value)
97  {
98  return Minimum(1, Maximum(0, value));
99  }
100 
101 }
T Abs(T const value)
Definition: ionMathFunctions.h:13
T RadToDeg(T const radians)
Definition: ionMathFunctions.h:80
T DegToRad(T const degrees)
Definition: ionMathFunctions.h:73
Definition: CCatmullRomAdvancedSplineInterpolator.h:7
T ArcTan(T const value)
Definition: ionMathFunctions.h:52
T Saturate(T const value)
Clamps a value between 0 and 1.
Definition: ionMathFunctions.h:96
T Tan(T const value)
Definition: ionMathFunctions.h:45
bool IsNaN(T const value)
Definition: ionMathFunctions.h:87
T Sin(T const value)
Definition: ionMathFunctions.h:31
T Cos(T const value)
Definition: ionMathFunctions.h:38
float const Pi
Definition: ionConstants.h:14
T Sqrt(T const value)
Definition: ionMathFunctions.h:66