GestureRecognitionToolkit  Version: 1.0 Revision: 04-03-15
The Gesture Recognition Toolkit (GRT) is a cross-platform, open-source, c++ machine learning library for real-time gesture recognition.
Util.h
Go to the documentation of this file.
1 
12 #ifndef GRT_UTIL_HEADER
13 #define GRT_UTIL_HEADER
14 
15 //Include the GRTVersionInfo header to find which operating system we are building for
16 #include "GRTVersionInfo.h"
17 #include <iostream>
18 #include <vector>
19 #include <algorithm>
20 #include <fstream>
21 #include <sstream>
22 #include <stdio.h>
23 #include <stdlib.h>
24 #include <limits>
25 #include <cmath>
26 
27 #ifdef __GRT_WINDOWS_BUILD__
28 //Include any Windows specific headers
29 #include <windows.h>
30 //Hey User: Make sure you add the path to the Kernel32.lib to your lib search paths
31 //#pragma comment(lib,"Kernel32.lib")
32 //The min and max macros cause major headaches, so undefine them
33 #undef min
34 #undef max
35 #endif
36 
37 #ifdef __GRT_OSX_BUILD__
38 //Include any OSX specific headers
39 #include <unistd.h>
40 #endif
41 
42 #ifdef __GRT_LINUX_BUILD__
43 //Include any Linux specific headers
44 #include <unistd.h>
45 #endif
46 
47 namespace GRT{
48 
49 class Util{
50 public:
54  Util(){}
55 
59  ~Util(){}
60 
67  static bool sleep(const unsigned int &numMilliseconds);
68 
80  static double scale(const double &x,const double &minSource,const double &maxSource,const double &minTarget,const double &maxTarget,const bool constrain=false);
81 
88  static std::string intToString(const int &i);
89 
96  static std::string intToString(const unsigned int &i);
97 
104  static std::string toString(const int &i);
105 
112  static std::string toString(const unsigned int &i);
113 
120  static std::string toString(const long &i);
121 
128  static std::string toString(const unsigned long &i);
129 
136  static std::string toString(const unsigned long long &i);
137 
144  static std::string toString(const bool &b);
145 
152  static std::string toString(const double &v);
153 
160  static std::string toString(const long double &v);
161 
168  static std::string toString(const float &v);
169 
176  static int stringToInt(const std::string &s);
177 
184  static double stringToDouble(const std::string &s);
185 
192  static bool stringToBool(const std::string &s);
193 
201  static bool stringEndsWith(const std::string &str, const std::string &ending);
202 
214  static double limit(const double value,const double minValue,const double maxValue);
215 
222  static double sum(const std::vector<double> &x);
223 
231  static double dotProduct(const std::vector<double> &a,const std::vector<double> &b);
232 
240  static double euclideanDistance(const std::vector<double> &a,const std::vector<double> &b);
241 
250  static double manhattanDistance(const std::vector<double> &a,const std::vector<double> &b);
251 
261  static double cosineDistance(const std::vector<double> &a,const std::vector<double> &b);
262 
274  static std::vector<double> scale(const std::vector<double> &x,const double minSource,const double maxSource,const double minTarget=0,const double maxTarget=1,const bool constrain=false);
275 
282  static std::vector<double> normalize(const std::vector<double> &x);
283 
293  static std::vector<double> limit(const std::vector<double> &x,const double minValue,const double maxValue);
294 
301  static double getMin(const std::vector< double > &x);
302 
309  static unsigned int getMinIndex(const std::vector< double > &x);
310 
317  static double getMax(const std::vector< double > &x);
318 
325  static unsigned int getMaxIndex(const std::vector< double > &x);
326 
333  static unsigned int getMin(const std::vector< unsigned int > &x);
334 
341  static unsigned int getMax(const std::vector< unsigned int > &x);
342 
348  static unsigned int getOS();
349 
359  static void cartToPolar(const double x,const double y,double &r, double &theta);
360 
370  static void polarToCart(const double r,const double theta,double &x, double &y);
371 
375  enum OperatingSystems{OS_UNKNOWN=0,OS_OSX,OS_LINUX,OS_WINDOWS};
376 
377 };
378 
379 } //End of namespace GRT
380 
381 #endif // GRT_UTIL_HEADER
static double cosineDistance(const std::vector< double > &a, const std::vector< double > &b)
Definition: Util.cpp:193
static std::string toString(const int &i)
Definition: Util.cpp:65
static double dotProduct(const std::vector< double > &a, const std::vector< double > &b)
Definition: Util.cpp:163
static double manhattanDistance(const std::vector< double > &a, const std::vector< double > &b)
Definition: Util.cpp:183
static unsigned int getMaxIndex(const std::vector< double > &x)
Definition: Util.cpp:276
static bool stringToBool(const std::string &s)
Definition: Util.cpp:131
Definition: AdaBoost.cpp:25
static double scale(const double &x, const double &minSource, const double &maxSource, const double &minTarget, const double &maxTarget, const bool constrain=false)
Definition: Util.cpp:44
static std::string intToString(const int &i)
Definition: Util.cpp:53
static double getMin(const std::vector< double > &x)
Definition: Util.cpp:241
static bool sleep(const unsigned int &numMilliseconds)
Definition: Util.cpp:25
static double stringToDouble(const std::string &s)
Definition: Util.cpp:124
static unsigned int getMinIndex(const std::vector< double > &x)
~Util()
Definition: Util.h:59
Definition: Util.h:49
static double euclideanDistance(const std::vector< double > &a, const std::vector< double > &b)
Definition: Util.cpp:173
static void cartToPolar(const double x, const double y, double &r, double &theta)
Definition: Util.cpp:327
OperatingSystems
Definition: Util.h:375
Util()
Definition: Util.h:54
static int stringToInt(const std::string &s)
Definition: Util.cpp:117
static void polarToCart(const double r, const double theta, double &x, double &y)
Definition: Util.cpp:377
static bool stringEndsWith(const std::string &str, const std::string &ending)
Definition: Util.cpp:141
static double getMax(const std::vector< double > &x)
Definition: Util.cpp:265
static double sum(const std::vector< double > &x)
Definition: Util.cpp:155
static unsigned int getOS()
Definition: Util.cpp:311
static double limit(const double value, const double minValue, const double maxValue)
Definition: Util.cpp:149
static std::vector< double > normalize(const std::vector< double > &x)
Definition: Util.cpp:216