Emdee
 All Classes Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Macros Pages
oculusreader.h
Go to the documentation of this file.
1 #ifndef OCULUSREADER_H
2 #define OCULUSREADER_H
3 #include <OVR.h>
4 #include <QObject>
5 #include <QTimer>
6 #include <QGLCamera>
7 #include <QVector3D>
8 
9 using namespace OVR;
10 
11 class OculusReader : public QObject
12 {
13  Q_OBJECT
14  Q_PROPERTY(double phi READ phi WRITE setPhi NOTIFY phiChanged)
15  Q_PROPERTY(double theta READ theta WRITE setTheta NOTIFY thetaChanged)
16  Q_PROPERTY(double psi READ psi WRITE setPsi NOTIFY psiChanged)
17  Q_PROPERTY(QGLCamera* camera READ camera WRITE setCamera NOTIFY cameraChanged)
18  Q_PROPERTY(bool enabled READ enabled WRITE setEnabled NOTIFY enabledChanged)
19 private:
20  double m_phi;
21  double m_theta;
22  double m_psi;
23  Quatf m_oldOrientation;
24  bool m_isFirst;
25  QTimer timer;
26  QVector3D upVectorStart;
27  QVector3D viewVectorStart;
28 
29  QGLCamera* m_camera;
30 
31  bool m_enabled;
32 
33 public:
34  OculusReader();
35  virtual ~OculusReader() { }
36  Ptr<DeviceManager> pManager;
37  Ptr<SensorDevice> pSensor;
38  Ptr<SensorDevice> pSensor2;
39  SensorFusion SFusion;
40  SensorFusion SFusion2;
41  double phi() const
42  {
43  return m_phi;
44  }
45  double theta() const
46  {
47  return m_theta;
48  }
49 
50  double psi() const
51  {
52  return m_psi;
53  }
54 
55  QGLCamera* camera() const
56  {
57  return m_camera;
58  }
59 
60  bool enabled() const
61  {
62  return m_enabled;
63  }
64 
65 public slots:
66  void setPhi(double arg)
67  {
68  if (m_phi != arg) {
69  m_phi = arg;
70  emit phiChanged(arg);
71  }
72  }
73  void setTheta(double arg)
74  {
75  if (m_theta != arg) {
76  m_theta = arg;
77  emit thetaChanged(arg);
78  }
79  }
80 
81  void setPsi(double arg)
82  {
83  if (m_psi != arg) {
84  m_psi = arg;
85  emit psiChanged(arg);
86  }
87  }
88 
89  void readSensors();
90  void setCamera(QGLCamera* arg)
91  {
92  if (m_camera != arg) {
93  m_camera = arg;
94  emit cameraChanged(arg);
95  }
96  }
97 
98  void setEnabled(bool arg);
99 
100 signals:
101  void phiChanged(double arg);
102  void thetaChanged(double arg);
103  void psiChanged(double arg);
104  void cameraChanged(QGLCamera* arg);
105  void enabledChanged(bool arg);
106 };
107 #endif //OCULUSREADER_H