#include "Camera.hpp" #include "AppConfig.hpp" #include Camera::Camera() : pos(10.0f, 10.0f, 5.0f) , lookAt(0.0, 0.0f, 0.0f) , perspective{ false } { } void Camera::Move(glm::vec3 pos) { auto lookVector = this->lookAt - /*Old pos*/ this->pos; this->pos = pos; this->lookAt = pos + lookVector; } void Camera::LookAtAngle(glm::vec3 lookVector) { this->lookAt = this->pos + lookVector; } void Camera::LookAtPos(glm::vec3 pos) { this->lookAt = pos; } void Camera::SetHasPerspective(bool perspective) { this->perspective = perspective; } glm::mat4 Camera::CalcViewMatrix() const { return glm::lookAt(pos, lookAt, glm::vec3(0, 1, 0)); } glm::mat4 Camera::CalcProjectionMatrix() const { if (perspective) { return glm::perspective(90.0f, AppConfig::mainWindowAspectRatio, 0.1f, 1000.0f); } else { return glm::ortho( pos.x - AppConfig::mainWidnowWidth / 2, pos.x + AppConfig::mainWidnowWidth / 2, pos.y - AppConfig::mainWindowHeight / 2, pos.y + AppConfig::mainWindowHeight / 2); } }