Move some common calculations to base classes
[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
14         HeadTrackingCamera(const GL::Camera &);
15 public:
16         virtual ~HeadTrackingCamera() { }
17
18         virtual void reset_tracking() { }
19         virtual void update() = 0;
20 protected:
21         void update_from_matrix(const GL::Matrix &);
22 };
23
24 } // namespace VR
25 } // namespace Msp
26
27 #endif