Fix memory leaks
[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         GL::Matrix base_matrix;
14         float elevation_offset;
15
16         HeadTrackingCamera(const GL::Camera &);
17 public:
18         virtual ~HeadTrackingCamera() { }
19
20         const GL::Matrix &get_base_matrix() const { return base_matrix; }
21
22         void set_elevation_offset(float);
23         virtual void reset_tracking() { }
24         virtual void update() = 0;
25 protected:
26         void update_from_matrix(const GL::Matrix &);
27 };
28
29 } // namespace VR
30 } // namespace Msp
31
32 #endif