#ifndef MouseInputHandler_h__ #define MouseInputHandler_h__ #include #include "InputHandler.h" #include "Core/EMousePress.h" #include "Core/EMouseRelease.h" #include "Core/EMouseMove.h" class MouseInputHandler : public InputHandler { public: MouseInputHandler(EventBroker* eventBroker, InputProxy* inputProxy); bool BindOrigin(std::string origin, std::string command, float value) override; virtual float GetCommandValue(std::string command) override; private: std::unordered_map m_OriginCodes; std::unordered_map m_OriginAxes; std::unordered_map> m_Bindings; // GLFW_MOUSE_BUTTON... -> command string & value std::unordered_map> m_Axes; // Axis -> command string & value std::unordered_map m_CommandValues; std::unordered_map m_ContinuousCommandValues; EventRelay m_EMousePress; bool OnMousePress(const Events::MousePress& e); EventRelay m_EMouseRelease; bool OnMouseRelease(const Events::MouseRelease& e); EventRelay m_EMouseMove; bool OnMouseMove(const Events::MouseMove& e); bool hasOrigin(std::string origin); }; #endif