#pragma once #include #include "gl.hpp" namespace dragonblocks { class Camera; class Window; class InputHandler { public: void processInput(double); void listenFor(int); void dontListenFor(int); void addMouseHandler(void (*)(double, double, double)); void removeMouseHandler(void (*)(double, double, double)); void addKeyHandler(void (*)(double, std::set)); void removeKeyHandler(void (*)(double, std::set)); double mouse_sensitivity; InputHandler(Window *); private: void processMouseInput(double); void processKeyInput(double); Window *window; std::set listened_keys; std::set mouse_handlers; std::set)> key_handlers; }; }