Camera Control System
Location: GraphInput.cpp/h
Input Manager Methods:
_app->_inputManager.isKeyDown(SDLK_W)
_app->_inputManager.isKeyPressed(SDL_SPACE)
Camera Movement Logic:
WASD Movement (Perspective Camera):
if (_app->_inputManager.isKeyDown(SDLK_w) ||
_app->_inputManager.isKeyDown(SDLK_UP)) {
accelerationY += cameraAcceleration;
}
else if (_app->_inputManager.isKeyDown(SDLK_s) ||
_app->_inputManager.isKeyDown(SDLK_DOWN)) {
accelerationY -= cameraAcceleration;
}
Middle Mouse Rotation:
if (_app->_inputManager.isKeyPressed(SDL_BUTTON_MIDDLE)) {
_app->_inputManager.setPanningPoint(_viewportMousePosition);
main_camera2D->setPanningAimPos(main_camera2D->getAimPos() - main_camera2D->getPosition());
}
......
else if (_app->_inputManager.isKeyDown(SDL_BUTTON_MIDDLE)) {
glm::vec3 delta = glm::vec3(_app->_inputManager.calculatePanningDelta(_viewportMousePosition), 0.0f);
main_camera2D->moveAimPos(main_camera2D->getPanningAimPos(), delta);
}