HPC_Voxel_Engine 0.2.0
High-Performance C++ Voxel Engine
Loading...
Searching...
No Matches
InputManager.h
Go to the documentation of this file.
1
6#pragma once
7
8// clang-format off
9#include <glad/glad.h>
10#include <GLFW/glfw3.h>
11// clang-format on
12
13#include "../core/MathUtils.h"
14
20public:
25 static InputManager objInstance;
26 return objInstance;
27 }
28
33 void Init(GLFWwindow *pWindow);
34
39 void Update();
40
41 bool IsKeyPressed(int iKey) const;
42 bool IsKeyJustPressed(int iKey) const;
43 bool IsMouseButtonPressed(int iButton) const;
44
47 double GetScroll() const { return m_dScrollY; }
48
49 static void FrameBufferSizeCallback(GLFWwindow *window, int width, int height);
50
51private:
52 InputManager() = default;
53
54 static void keyCallback(GLFWwindow *pWindow, int iKey, int iScanCode, int iAction, int iMods);
55 static void mouseButtonCallback(GLFWwindow *pWindow, int iButton, int iAction, int iMods);
56 static void mousePosCallback(GLFWwindow *pWindow, double dXPos, double dYPos);
57 static void scrollCallback(GLFWwindow *pWindow, double dXOffset, double dYOffset);
58
59 bool m_bKeys[1024] = {false};
60 bool m_bPrevKeys[1024] = {false};
61
62 bool m_bButtons[8] = {false};
63
67 double m_dScrollY = 0.0;
68 bool m_bFirstMouse = false;
69};
Singleton class that handles global input state.
Definition InputManager.h:19
bool m_bButtons[8]
Definition InputManager.h:62
static void FrameBufferSizeCallback(GLFWwindow *window, int width, int height)
Definition InputManager.cpp:25
double GetScroll() const
Definition InputManager.h:47
bool IsMouseButtonPressed(int iButton) const
Definition InputManager.cpp:54
void Init(GLFWwindow *pWindow)
Initializes input callbacks for the specified window.
Definition InputManager.cpp:10
Core::Vec3 m_objMousePosition
Definition InputManager.h:64
bool m_bFirstMouse
Definition InputManager.h:68
Core::Vec3 GetMousePosition() const
Definition InputManager.h:45
Core::Vec3 m_objMousePrevPosition
Definition InputManager.h:65
bool m_bKeys[1024]
Definition InputManager.h:59
bool IsKeyPressed(int iKey) const
Definition InputManager.cpp:41
void Update()
Updates internal state (previous keys, mouse delta) at the start of a frame.
Definition InputManager.cpp:31
bool IsKeyJustPressed(int iKey) const
Definition InputManager.cpp:47
bool m_bPrevKeys[1024]
Definition InputManager.h:60
static InputManager & GetInstance()
Retrieves the singleton instance.
Definition InputManager.h:24
double m_dScrollY
Definition InputManager.h:67
Core::Vec3 m_objMouseDelta
Definition InputManager.h:66
static void keyCallback(GLFWwindow *pWindow, int iKey, int iScanCode, int iAction, int iMods)
Definition InputManager.cpp:60
InputManager()=default
static void mouseButtonCallback(GLFWwindow *pWindow, int iButton, int iAction, int iMods)
Definition InputManager.cpp:74
static void scrollCallback(GLFWwindow *pWindow, double dXOffset, double dYOffset)
Definition InputManager.cpp:99
static void mousePosCallback(GLFWwindow *pWindow, double dXPos, double dYPos)
Definition InputManager.cpp:87
Core::Vec3 GetMouseDelta() const
Definition InputManager.h:46
A 3-component vector structure (x, y, z) with standard math operations.
Definition MathUtils.h:11