Files
untitled-game/src/engine/camera.cpp
2025-11-24 13:25:31 +00:00

44 lines
1.1 KiB
C++

#include "engine/camera.hpp"
// Camera Constructor
Camera::Camera(const glm::vec3& position, const glm::vec3& target, const glm::vec3& up)
: position(position), target(target), up(up) {
}
// Get View Matrix
glm::mat4 Camera::getViewMatrix() const {
return glm::lookAt(position, target, up);
}
// Set Position
void Camera::setPosition(const glm::vec3& position) {
this->position = position;
}
// Set Target
void Camera::setTarget(const glm::vec3& target) {
this->target = target;
}
// Set Up Vector
void Camera::setUp(const glm::vec3& up) {
this->up = up;
}
// Get Position
glm::vec3 Camera::getPosition() const {
return position;
}
// Get Projection Matrix
glm::mat4 Camera::getProjectionMatrix() const {
return glm::perspective(glm::radians(fov), aspectRatio, nearPlane, farPlane);
}
// Set Projection Matrix Parameters
void Camera::setProjectionMatrix(float fov, float aspectRatio, float nearPlane, float farPlane) {
this->fov = fov;
this->aspectRatio = aspectRatio;
this->nearPlane = nearPlane;
this->farPlane = farPlane;
}