29using namespace brenta;
30using namespace brenta::types;
32std::unordered_map<int, std::function<void()>> input::keyboard_callbacks;
33std::unordered_map<std::string, std::function<void(
double,
double)>>
34 input::mouse_callbacks;
41 INFO(
"Input initialized");
46 input::keyboard_callbacks[key] = callback;
47 INFO(
"Added callback for key: {}", std::to_string(key));
52 if (input::keyboard_callbacks.find(key) == input::keyboard_callbacks.end())
54 ERROR(
"No callback found for key: {}", key);
58 input::keyboard_callbacks.erase(key);
59 INFO(
"Removed callback for key: {}", key);
65 if (action == GLFW_PRESS)
67 if (input::keyboard_callbacks.find(key)
68 != input::keyboard_callbacks.end())
70 input::keyboard_callbacks.at(key)();
76 std::function<
void(
double,
double)> callback)
78 input::mouse_callbacks[callback_name] = callback;
79 INFO(
"Added callback for mouse: {}", callback_name);
84 if (input::mouse_callbacks.find(callback_name)
85 == input::mouse_callbacks.end())
87 ERROR(
"No callback found for mouse: {}", callback_name);
91 input::mouse_callbacks.erase(callback_name);
92 INFO(
"Removed callback for mouse: {}", callback_name);
97 for (
auto &callback : input::mouse_callbacks)
99 callback.second(xpos, ypos);
static void set_key_callback(GLFWkeyfun callback)
Set the key callback.
static void set_mouse_pos_callback(GLFWcursorposfun callback)
Set the mouse position callback.