c2001365f4eaa249d6bb46b77643a8e231647274
[libs/vr.git] / source / headtrackingcamera.h
1 #ifndef MSP_VR_HEADTRACKINGCAMERA_H_
2 #define MSP_VR_HEADTRACKINGCAMERA_H_
3
4 #include <msp/gl/camera.h>
5
6 namespace Msp {
7 namespace VR {
8
9 class HeadTrackingCamera: public Msp::GL::Camera
10 {
11 protected:
12         const GL::Camera &base_camera;
13         float elevation_offset;
14
15         HeadTrackingCamera(const GL::Camera &);
16 public:
17         virtual ~HeadTrackingCamera() { }
18
19         void set_elevation_offset(float);
20         virtual void reset_tracking() { }
21         virtual void update() = 0;
22 protected:
23         void update_from_matrix(const GL::Matrix &);
24 };
25
26 } // namespace VR
27 } // namespace Msp
28
29 #endif