#ifndef FirstPersonInputController_h__ #define FirstPersonInputController_h__ #include "../GLM.h" #include "../Core/InputController.h" #include "../Core/ELockMouse.h" template class FirstPersonInputController : public InputController { public: FirstPersonInputController(EventBroker* eventBroker, int playerID); virtual const glm::vec3 Movement() const { return m_Movement; } virtual const glm::vec3 Rotation() const { return m_Rotation; } void LockMouse(); void UnlockMouse(); virtual bool OnCommand(const Events::InputCommand& e) override; virtual void Reset(); protected: const int m_PlayerID; bool m_MouseLocked = false; glm::vec3 m_Rotation; glm::vec3 m_Movement; EventRelay m_ELockMouse; bool OnLockMouse(const Events::LockMouse& e); EventRelay m_EUnlockMouse; bool OnUnlockMouse(const Events::UnlockMouse& e); }; #endif