]> git.tdb.fi Git - libs/vr.git/blobdiff - source/openvr/openvrsystem.h
Add support for motion controllers
[libs/vr.git] / source / openvr / openvrsystem.h
index 119eb16e7e7948d211cea8b7804360c7d40b4a89..7799ad298405914f198d41c7ddd676eae902b59b 100644 (file)
@@ -5,6 +5,7 @@
 #include <msp/vr/system.h>
 #include "openvrcamera.h"
 #include "openvrcombiner.h"
+#include "openvrcontroller.h"
 
 namespace Msp {
 namespace VR {
@@ -14,6 +15,8 @@ class OpenVRSystem: public System
 private:
        unsigned n_tracked_devices;
        std::vector<GL::Matrix> tracking_matrices;
+       std::vector<OpenVRController *> controllers;
+       std::vector<unsigned> unclaimed_controllers;
 
        static unsigned n_instances;
 
@@ -30,12 +33,15 @@ public:
        virtual bool get_absolute_tracking() const;
        virtual OpenVRCamera *create_camera(const GL::Camera &);
        virtual OpenVRCombiner *create_combiner(GL::View &);
+       virtual OpenVRController *create_controller();
 
        virtual void tick();
 
        void update_pose_matrices();
        const GL::Matrix &get_tracking_matrix(unsigned) const;
        const GL::Matrix &get_hmd_matrix() const;
+       void add_controller(OpenVRController &);
+       void remove_controller(OpenVRController &);
 };
 
 } // namespace VR