Multimodal-Calib
Code for performing 3D-2D and 2D-2D multimodal calibration
 All Classes Functions Variables
common.h
1 #ifndef COMMON_H
2 #define COMMON_H
3 
4 #include <stdlib.h>
5 #include <vector>
6 #include <math.h>
7 #include <cuda.h>
8 #include <iostream>
9 #include <sstream>
10 #include <string>
11 #include <thrust\device_vector.h>
12 #include <thrust\host_vector.h>
13 #include "cuda_runtime.h"
14 #include "device_launch_parameters.h"
15 
16 #define PI 3.1415926535897932384626433832795028841971693993751058209749445923078164062
17 #define BUFF_SIZE 500
18 #pragma warning (disable : 4267)
19 
20 // includes, graphics
21 #if defined (__APPLE__) || defined(MACOSX)
22  #include <OpenGL/gl.h>
23  #include <OpenGL/glu.h>
24 #else
25 
26  #ifdef _WIN32
27  # define WINDOWS_LEAN_AND_MEAN
28  # define NOMINMAX
29  # include <windows.h>
30  #endif
31 
32  #include <GL/gl.h>
33  #include <GL/glu.h>
34 #endif
35 
36 #define MATLAB
37 #define CUDA_ERROR_CHECK
38 
39 #ifdef MATLAB
40  #include <mex.h>
41  #define printf mexPrintf
42 #endif
43 
44 #define BLOCK_SIZE 512
45 
46 #define CudaSafeCall( err ) __cudaSafeCall( err, FILE, __LINE__ )
47 #define CudaCheckError() __cudaCheckError( FILE, __LINE__ )
48 #define SdkCheckErrorGL() __sdkCheckErrorGL( FILE, __LINE__)
49 
50 #define FILE (strrchr(__FILE__, '/') ? strrchr(__FILE__, '/') + 1 : __FILE__)
51 
52 __inline size_t gridSize(size_t num){
53  return (size_t)ceil(((float)(num))/((float)(BLOCK_SIZE)));
54 };
55 
56 inline void __cudaSafeCall( cudaError err, const char *file, const int line )
57 {
58  #ifdef CUDA_ERROR_CHECK
59  if ( cudaSuccess != err )
60  {
61  printf("CUDA Function Error at %s:%i : %s\n",
62  file, line, cudaGetErrorString( err ) );
63  cudaDeviceReset();
64  }
65  #endif
66 
67  return;
68 }
69 
70 inline void __cudaCheckError( const char *file, const int line )
71 {
72 #ifdef CUDA_ERROR_CHECK
73  cudaError errCuda = cudaGetLastError();
74  if ( cudaSuccess != errCuda ){
75  std::ostringstream err; err << "CUDA Kernel Error at " << file << ":" << line << " : " << cudaGetErrorString(errCuda);
76  mexErrMsgTxt(err.str().c_str());
77  cudaDeviceReset();
78  }
79 
80  // More careful checking. However, this will affect performance.
81  // Comment away if needed.
82  /*errCuda = cudaDeviceSynchronize();
83  if( cudaSuccess != errCuda ){
84  printf("CUDA Kernel Error with sync failed at %s:%i : %s\n",
85  file, line, cudaGetErrorString( errCuda ) );
86  cudaDeviceReset();
87  }*/
88 #endif
89 
90 return;
91 }
92 
93 inline void __sdkCheckErrorGL(const char *file, const int line){
94 
95  // check for error
96  GLenum gl_error = glGetError();
97 
98  if (gl_error != GL_NO_ERROR)
99  {
100 
101  printf("GL Error at %s:%i : %s\n", file, line, gluErrorString(gl_error));
102  }
103 }
104 
105 #endif //COMMON_H