#pragma once
#include "ogl.hpp"
#include "common.hpp"
#include <queue>
class Input {
private:
typedef struct {
int x, y;
} poskey_t;
typedef struct {
double x, y;
float z;
} click_t;
static const size_t maxevents;
static Input* inst;
static void keyFun(GLFWwindow*, int, int, int, int);
static void clickFun(GLFWwindow*, int, int, int);
static void scrollFun(GLFWwindow*, double, double);
Window* const window;
int pans;
std::queue<poskey_t> poskeys;
std::queue<click_t> clicks;
public:
Input(Window*);
bool getPanKey(int&);
bool getPosKey(int&, int&); // (-1, 0, 1)
bool getClick(double&, double&, float&);
void shouldClose();
};