TazGraph Project v0.1.0
Loading...
Searching...
No Matches
InputManager.h
1#pragma once
2
3#include <unordered_map>
4#define GLM_ENABLE_EXPERIMENTAL
5#include <glm/glm.hpp>
6
7#include <SDL2/SDL.h>
8
9#include "../Camera2.5D/ICamera.h"
11public:
14
15 void update();
16
17 void pressKey(unsigned int keyID);
18 void releaseKey(unsigned int keyID);
19
20 //returns true if the key is held down
21 bool isKeyDown(unsigned int keyID);
22
23 //returns true if the key was just pressed
24 bool isKeyPressed(unsigned int keyID);
25
26 bool checkMouseCollision(glm::vec2 position, glm::ivec2 tr_size);
27 void setMouseCoords(float x, float y);
28
29 glm::vec2 getMouseCoords() const;
30
31 // Panning
32 void setPanningPoint(glm::vec2 position);
33 glm::vec2 calculatePanningDelta(glm::vec2 position);
34
35 void setObjectRelativePos(glm::vec2 relativeObjectPos);
36 glm::vec2 getObjectRelativePos();
37
38 glm::vec2 convertWindowToCameraCoords(glm::vec2 mousePos,
39 glm::vec2 viewportSize,
40 glm::vec2 windowDimensions,
41 const glm::vec2& windowPos, const glm::vec2& windowSize,
42 const ICamera& camera);
43
44 /*glm::vec2 convertCameraToWindowCoords(glm::vec2 mousePos,
45 glm::vec2 viewportSize,
46 glm::vec2 windowDimensions,
47 const glm::vec2& windowPos, const glm::vec2& windowSize,
48 const ICamera& camera);*/
49
50
51private:
52 bool wasKeyDown(unsigned int keyID);
53
54 std::unordered_map<unsigned int, bool> _keyMap;
55 std::unordered_map<unsigned int, bool> _prevKeyMap;
56
57 glm::vec2 _mouseCoords = glm::vec2(0);
58
59 glm::vec2 _panningPoint = glm::vec2(0);
60
61 glm::vec2 _relativeObjectPos = glm::vec2(0);
62};
Definition ICamera.h:9
Definition InputManager.h:10