#include "user_input.hpp" namespace rog::ui { void user_input::set_key_state(key_code key, key_state state) { const auto key_index = static_cast(key); if (key_index < this->state.keys.size()) { this->state.keys[key_index] = state; } } void user_input::set_mouse_pos(glm::vec2 pos) { state.mouse_pos = pos; } void user_input::set_mouse_button(mouse_button button, button_state state) { this->state.mouse_buttons[static_cast(button)] = state; } bool user_input::is_key_down(key_code code) const noexcept { const auto idx = static_cast(code); return state.keys[idx] == key_state::pressed || state.keys[idx] == key_state::repeat || state.keys[idx] == key_state::held; } bool user_input::is_key_pressed(key_code code) const noexcept { return state.keys[static_cast(code)] == key_state::pressed; } glm::vec2 user_input::get_mouse_position() const noexcept { return state.mouse_pos; } input_state user_input::current_state() const noexcept { return state; } } // namespace rog::ui