// Keyboard input processing for camera translation
// Handles discrete directional commands with frame-rate independent timing
void processInput(GLFWwindow* window, Camera& camera, float deltaTime) {
// WASD movement scheme following standard FPS conventions
// Each key press translates to a specific directional movement relative to camera orientation
if (glfwGetKey(window, GLFW_KEY_W) == GLFW_PRESS)
camera.processKeyboard(CameraMovement::FORWARD, deltaTime); // Move forward along camera's front vector
if (glfwGetKey(window, GLFW_KEY_S) == GLFW_PRESS)
camera.processKeyboard(CameraMovement::BACKWARD, deltaTime); // Move backward opposite to front vector
if (glfwGetKey(window, GLFW_KEY_A) == GLFW_PRESS)
camera.processKeyboard(CameraMovement::LEFT, deltaTime); // Strafe left along camera's right vector
if (glfwGetKey(window, GLFW_KEY_D) == GLFW_PRESS)
camera.processKeyboard(CameraMovement::RIGHT, deltaTime); // Strafe right along camera's right vector
// Vertical movement controls for 3D navigation
// Space and Control provide intuitive up/down movement
if (glfwGetKey(window, GLFW_KEY_SPACE) == GLFW_PRESS)
camera.processKeyboard(CameraMovement::UP, deltaTime); // Move up along camera's up vector
if (glfwGetKey(window, GLFW_KEY_LEFT_CONTROL) == GLFW_PRESS)
camera.processKeyboard(CameraMovement::DOWN, deltaTime); // Move down opposite to up vector
}