My Project
Loading...
Searching...
No Matches
inputs.hh
Go to the documentation of this file.
1#pragma once
2#include <GLFW/glfw3.h>
3#include <unordered_map>
4
5#define GLFW_A_KEYCODE 65
6enum Key
7{
8 A = GLFW_A_KEYCODE, // 65 to keep GLFW compatiblity
9 B,
34 Length, // 'hack' to keep track of enum length
35};
36
38{
39private:
40 std::unordered_map<Key, bool> state;
41 Keyboard(void);
42
43public:
44 static Keyboard &
46 {
47 static Keyboard instance;
48 return instance;
49 }
50 bool get_state(const int key);
51 void set_state(const int key, const bool action);
52 bool key_in_bounds(int key);
53};
54
56{
57 float x;
58 float y;
59};
60
62{
65};
66
67class Mouse
68{
69private:
70 Mouse(void);
71 std::unordered_map<MouseKey, bool> state;
73
74public:
76 float scroll_y;
77
78 static Mouse &
80 {
81 static Mouse instance;
82 return instance;
83 }
84
87 void set_state(const int key, const bool action);
88 void update_position(float x, float y);
89 void next_frame();
90 bool get_state(const MouseKey key);
91 bool is_moving();
92};
Definition inputs.hh:38
Keyboard(void)
Definition inputs.cpp:7
static Keyboard & get_instance()
Definition inputs.hh:45
bool key_in_bounds(int key)
Definition inputs.cpp:31
bool get_state(const int key)
Definition inputs.cpp:14
std::unordered_map< Key, bool > state
Definition inputs.hh:40
void set_state(const int key, const bool action)
Definition inputs.cpp:22
Definition inputs.hh:68
MousePosition pointer_position
Definition inputs.hh:75
float scroll_y
Definition inputs.hh:76
bool get_state(const MouseKey key)
Definition inputs.cpp:47
void next_frame()
Definition inputs.cpp:74
static Mouse & get_instance()
Definition inputs.hh:79
Mouse(void)
Definition inputs.cpp:40
MousePosition get_diff_moviment()
Definition inputs.cpp:88
void set_state(const int key, const bool action)
Definition inputs.cpp:94
MousePosition get_last_position()
Definition inputs.cpp:82
std::unordered_map< MouseKey, bool > state
Definition inputs.hh:71
bool is_moving()
Definition inputs.cpp:53
MousePosition last_position
Definition inputs.hh:72
void update_position(float x, float y)
Definition inputs.cpp:64
MouseKey
Definition inputs.hh:62
@ LEFT
Definition inputs.hh:63
@ RIGHT
Definition inputs.hh:64
#define GLFW_A_KEYCODE
Definition inputs.hh:5
Key
Definition inputs.hh:7
@ J
Definition inputs.hh:17
@ R
Definition inputs.hh:25
@ T
Definition inputs.hh:27
@ V
Definition inputs.hh:29
@ N
Definition inputs.hh:21
@ G
Definition inputs.hh:14
@ B
Definition inputs.hh:9
@ A
Definition inputs.hh:8
@ H
Definition inputs.hh:15
@ M
Definition inputs.hh:20
@ Y
Definition inputs.hh:32
@ X
Definition inputs.hh:31
@ K
Definition inputs.hh:18
@ C
Definition inputs.hh:10
@ D
Definition inputs.hh:11
@ P
Definition inputs.hh:23
@ Q
Definition inputs.hh:24
@ Z
Definition inputs.hh:33
@ E
Definition inputs.hh:12
@ W
Definition inputs.hh:30
@ U
Definition inputs.hh:28
@ Length
Definition inputs.hh:34
@ I
Definition inputs.hh:16
@ L
Definition inputs.hh:19
@ S
Definition inputs.hh:26
@ F
Definition inputs.hh:13
@ O
Definition inputs.hh:22
Definition inputs.hh:56
float y
Definition inputs.hh:58
float x
Definition inputs.hh:57