TDME2  1.9.200
CameraInputHandler.h
Go to the documentation of this file.
1 #pragma once
2 
3 #include <tdme/tdme.h>
4 #include <tdme/engine/fwd-tdme.h>
5 #include <tdme/engine/Rotation.h>
7 #include <tdme/math/Vector3.h>
9 
15 
16 /**
17  * Camera Input Handler
18  * @author Andreas Drewke
19  */
21  : public GUIInputEventHandler
22 {
23 private:
24  Engine* engine { nullptr };
26 
27  bool keyLeft { false };
28  bool keyRight { false };
29  bool keyUp { false };
30  bool keyDown { false };
31  bool keyA { false };
32  bool keyD { false };
33  bool keyW { false };
34  bool keyS { false };
35  bool keyPlus { false };
36  bool keyMinus { false };
37  bool keyR { false };
38 
39  static constexpr int MOUSE_DOWN_LAST_POSITION_NONE { -1 };
40  static constexpr int MOUSE_PANNING_NONE { 0 };
41  static constexpr int MOUSE_ROTATION_NONE { 0 };
42 
43  int mouseRotationX { 0 };
44  int mouseRotationY { 0 };
47  bool mouseDragging { false };
48 
49  float camScale { 1.0f };
50  float camScaleMax { 15.0f };
51  float camScaleMin { 0.05f };
52 
55 
57 
58  bool resetRequested { false };
59 
60 public:
61  // forbid class copy
63 
64  /**
65  * Public constructor
66  * @param engine engine
67  * @param eventHandler event handler
68  */
70 
71  /**
72  * Destructor
73  */
75 
76  /**
77  * @return scene center
78  */
79  inline const Vector3& getSceneCenter() {
80  return sceneCenter;
81  }
82 
83  /**
84  * Set scene center
85  * @param sceneCenter scene center
86  */
87  inline void setSceneCenter(const Vector3& sceneCenter) {
88  this->sceneCenter = sceneCenter;
89  }
90 
91  /**
92  * Reset
93  */
94  void reset();
95 
96  // overridden methods
97  void handleInputEvents() override;
98 
99 };
Engine main class.
Definition: Engine.h:131
Rotation representation.
Definition: Rotation.h:18
Vector3 class representing vector3 mathematical structure and operations with x, y,...
Definition: Vector3.h:20
void handleInputEvents() override
Handle input events that have not yet been processed.
CameraInputHandler(Engine *engine, CameraInputHandlerEventHandler *eventHandler=nullptr)
Public constructor.
CameraInputHandlerEventHandler * eventHandler
void setSceneCenter(const Vector3 &sceneCenter)
Set scene center.
GUI input event handler interface.
#define FORBID_CLASS_COPY(CLASS)
Definition: tdme.h:6