rag
graphic 2d engine
InputManager.h
1 #ifndef _InputManager_h
2 #define _InputManager_h
3 
4 #include <rag/TouchEvent.h>
5 #include <rag/DisplayObject.h>
6 #include <vector>
7 #include <map>
8 
9 namespace rag
10 {
11 
13 class InputManager {
14 
15 public:
16 
18  static InputManager& getInstance();
19 
22 
24  void lock();
25 
27  void unlock();
28 
30  bool isLocked();
31 
33  void traverse(rag::DisplayObject* root);
34 
35 private:
36 
37  InputManager();
38  ~InputManager();
39 
40  void touchEventTraversal(rag::DisplayObject* displayObject, events::TouchEvent& event);
41 
42  bool locked;
43 
44  std::vector<events::TouchEvent> eventsList;
45 
46  struct Touch {
47 
48  Touch() :active(false) {};
49 
50  glm::vec2 pos;
51  glm::vec2 disp;
52  bool active;
53  Timer tapTimer;
54  };
55 
56  Touch touches[10];
57 
58 };
59 
60 } // rag
61 #endif
static InputManager & getInstance()
Returns the shared instance of the InputManager.
Definition: InputManager.cpp:12
Simple Input Manager.
Definition: InputManager.h:13
Provides time-related functionality.
Definition: Timer.h:10
bool isLocked()
Returns true if input is currently locked.
Definition: InputManager.cpp:36
void traverse(rag::DisplayObject *root)
Traverses Display List recursively.
Definition: InputManager.cpp:162
Definition: Bitmap.h:8
Core object used to display things in screen.
Definition: DisplayObject.h:23
void lock()
Prevents input to be processed.
Definition: InputManager.cpp:26
void processInputEvent(events::TouchEvent &e)
Introduces an input event in the system.
Definition: InputManager.cpp:59
Event for handle input from screen.
Definition: TouchEvent.h:20
void unlock()
After lock(), returns to normal operation.
Definition: InputManager.cpp:31