29using namespace Brenta;
30using namespace Brenta::Types;
31using namespace Brenta::Utils;
33std::unordered_map<int, std::function<void()>> Input::keyboardCallbacks;
34std::unordered_map<std::string, std::function<void(
double,
double)>>
35 Input::mouseCallbacks;
42 INFO(
"Input initialized");
47 Input::keyboardCallbacks[key] = callback;
48 INFO(
"Added callback for key: " + std::to_string(key));
53 if (Input::keyboardCallbacks.find(key) == Input::keyboardCallbacks.end())
55 ERROR(
"No callback found for key: ", key);
59 Input::keyboardCallbacks.erase(key);
60 INFO(
"Removed callback for key: ", key);
66 if (action == GLFW_PRESS)
68 if (Input::keyboardCallbacks.find(key)
69 != Input::keyboardCallbacks.end())
71 Input::keyboardCallbacks.at(key)();
77 std::function<
void(
double,
double)> callback)
79 Input::mouseCallbacks[callback_name] = callback;
80 INFO(
"Added callback for mouse: ", callback_name);
85 if (Input::mouseCallbacks.find(callback_name)
86 == Input::mouseCallbacks.end())
88 ERROR(
"No callback found for mouse: ", callback_name);
92 Input::mouseCallbacks.erase(callback_name);
93 INFO(
"Removed callback for mouse: ", callback_name);
98 for (
auto &callback : Input::mouseCallbacks)
100 callback.second(xpos, ypos);
static void SetMousePosCallback(GLFWcursorposfun callback)
Set the mouse position callback.
static void SetKeyCallback(GLFWkeyfun callback)
Set the key callback.