OvrvisionSDK  2.00
ovrvision_tracking.h
1 // ovrvision_tracking.h
2 // Version 1.31 : 8/Jan/2016
3 //
4 //MIT License
5 //THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
6 //IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
7 //FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
8 //AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
9 //LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
10 //OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN
11 //THE SOFTWARE.
12 //
13 // Oculus Rift : TM & Copyright Oculus VR, Inc. All Rights Reserved
14 // Unity : TM & Copyright Unity Technologies. All Rights Reserved
15 
16 #ifndef __OVRVISION_TRACKING__
17 #define __OVRVISION_TRACKING__
18 
20 
21 //Pratform header
22 #ifdef WIN32
23 #ifndef _WIN32_WINNT
24 #define _WIN32_WINNT 0x400
25 #endif
26 #include <windows.h>
27 #endif /*WIN32*/
28 
29 #ifdef MACOSX
30 
31 #endif /*MACOSX*/
32 
33 #ifdef LINUX
34 
35 #endif /*LINUX*/
36 
37 //Common header
38 #include <stdlib.h>
39 #include <stdio.h>
40 #include <math.h>
41 #include <string.h>
42 #include <vector>
43 
44 //Marker
45 #ifdef _OVRVISION_EXPORTS
46 #include <opencv2/opencv.hpp>
47 typedef cv::Mat ovMat;
48 #else
49 #define ovMat void
50 #endif
51 
52 //OVR Group
53 namespace OVR {
54 
56 
57 #ifdef WIN32
58  #ifdef _OVRVISION_EXPORTS
59  #define OVRPORT __declspec(dllexport)
60  #else
61  #define OVRPORT __declspec(dllimport)
62  #endif
63 #endif /*WIN32*/
64 
65 #ifdef MACOSX
66  #define OVRPORT
67 #endif /*MACOSX*/
68 
69 #ifdef LINUX
70  #define OVRPORT
71 #endif /*LINUX*/
72 
73 #ifndef _OV_CAMEYE_ENUM_
74 #define _OV_CAMEYE_ENUM_
75  typedef enum ov_cameraeye {
78  OV_CAMEYE_LEFT = 0,
80  OV_CAMNUM,
81  } Cameye;
82 #endif
83 
84 //unsigned char to byte
85 typedef unsigned char byte;
86 
88 #define OV_RESULT_OK (0)
89 #define OV_RESULT_FAILED (1)
90 
92 
94 class OVRPORT OvrvisionTracking
95 {
96 public:
97  //Constructor/Destructor
102  OvrvisionTracking(int w, int h, float focalpoint);
105 
106  //Methods
107 
111  void SetImageBGRA(unsigned char* pLeftImage, unsigned char* pRightImage);
115  void SetImageOpenCVImage(ovMat* pLeftImageMat, ovMat* pRightImageMat);
117  void Render(bool calib, bool debug = false);
118  //Get tracking data (preliminary version)
119  float FingerPosX(){ return m_pos_x; };
120  float FingerPosY(){ return m_pos_y; };
121  float FingerPosZ(){ return m_pos_z; };
122 
123  //set
124  void SetHue();
125 
126 private:
127  //Set image infomation
128  byte* m_pImageSrc[OV_CAMNUM]; //image pointer
129  ovMat* m_pImageOpenCVMat[OV_CAMNUM]; //opencv type image
130  int m_width; //width
131  int m_height; //height
132  float m_focalpoint; //focalpoint
133  bool m_isReady;
134 
135  unsigned char m_hue_min;
136  unsigned char m_hue_max;
137  unsigned char m_hue_min_finger;
138  unsigned char m_hue_max_finger;
139 
140  int m_lifetime;
141  float m_pos_x, m_pos_y, m_pos_z;
142 
143  bool m_set;
144 };
145 
146 };
147 
148 #endif /*__OVRVISION_TRACKING__*/
OvrvisionPro Hand tracking class.
Definition: ovrvision_tracking.h:94
ov_cameraeye
Definition: ovrvision_ar.h:87
OvrvisionSDK Group.
Definition: ovrvision_ar.h:63
Right camera.
Definition: ovrvision_ar.h:90
Left camera.
Definition: ovrvision_ar.h:89