InputHandler.hh
00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027 #ifndef INPUTHANDLER_HH
00028 #define INPUTHANDLER_HH
00029
00030 #include <map>
00031
00032 #include "Vector3.hh"
00033 #include "Vector2.hh"
00034 #include "SingletonT.hh"
00035
00036 namespace gazebo
00037 {
00038 class InputEvent;
00039
00041 class InputHandler : public SingletonT<InputHandler>
00042 {
00044 public: InputHandler ();
00045
00047 public: virtual ~InputHandler();
00048
00050 public: void HandleEvent( const InputEvent *event );
00051
00053 public: void ClearEvents();
00054
00056 public: void Update();
00057
00058 private: void HandleKeyPress( const InputEvent *event );
00059 private: bool HandleKeyRelease( const InputEvent *event );
00060
00062 private: void HandleDrag( const InputEvent *event );
00063
00064 private: friend class DestroyerT<InputHandler>;
00065 private: friend class SingletonT<InputHandler>;
00066
00067 private: float moveAmount;
00068 private: float moveScale;
00069 private: float rotateAmount;
00070
00071 private: Vector3 directionVec;
00072
00073 private: bool leftMousePressed;
00074 private: bool rightMousePressed;
00075 private: bool middleMousePressed;
00076 private: Vector2<int> prevMousePos;
00077 private: std::map<int,int> keys;
00078 };
00079
00080 }
00081 #endif