All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Macros Pages
TapGesture.h
1 // Copyright eeGeo Ltd (2012-2014), All Rights Reserved
2 
3 #pragma once
4 
5 #include "AppInterface.h"
6 #include "IEmscriptenInputHandler.h"
7 #include "InputEvents.h"
8 
9 namespace Eegeo
10 {
11  namespace Emscripten
12  {
13  namespace Input
14  {
15  class TapGesture
16  {
17  private:
18  int m_tapDownCount;
19  int m_tapUpCount;
20  int m_currentPointerTrackingStack;
21  float m_tapAnchorX;
22  float m_tapAnchorY;
23  long long m_tapUnixTime;
24 
25  IEmscriptenInputHandler* m_pTapHandler;
26 
27  void DispatchSingleTap();
28  void DispatchDoubleTap(const MouseInputEvent& event);
29  bool WithinAnchorDeadzone(const MouseInputEvent& event) const;
30  bool IsTapping() const;
31  void Reset();
32  void TrackPointerDown();
33  void TrackPointerUp();
34  bool NoPointerDown() const;
35 
36  public:
37  TapGesture(IEmscriptenInputHandler* pTapHandler);
38 
39  void PointerDown(const MouseInputEvent& event);
40  void PointerUp(const MouseInputEvent& event);
41  void PointerMove(const MouseInputEvent& event);
42 
43  void Update(float deltaSeconds);
44  };
45  }
46  }
47 }