]> git.lizzy.rs Git - dragonblocks3d.git/blob - src/dragonblocks/input_handler.hpp
Added player, refactored mesh code
[dragonblocks3d.git] / src / dragonblocks / input_handler.hpp
1 #pragma once
2
3 #include <set>
4 #include "gl.hpp"
5
6 namespace dragonblocks
7 {
8         class Camera;
9         class Window;
10         
11         class InputHandler
12         {
13                 public:
14                 void processInput(double);
15                 void listenFor(int);
16                 void dontListenFor(int);
17                 void addMouseHandler(void (*)(double, double, double));
18                 void removeMouseHandler(void (*)(double, double, double));
19                 void addKeyHandler(void (*)(double, std::set<int>));
20                 void removeKeyHandler(void (*)(double, std::set<int>));
21                 
22                 double mouse_sensitivity;               
23
24                 InputHandler(Window *);
25                 
26                 private:
27                 void processMouseInput(double);
28                 void processKeyInput(double);
29                 
30                 Window *window;
31                 std::set<int> listened_keys;
32                 std::set<void (*)(double, double, double)> mouse_handlers;
33                 std::set<void (*)(double, std::set<int>)> key_handlers;
34         };
35 }