X-Git-Url: http://git.localhorst.tv/?a=blobdiff_plain;f=src%2Fcamera.cpp;h=fbf10bca2e1391a9f88522c0ba5ab9fe040475f1;hb=3baab6cca7423d55ea08288d96570b02380b1fe9;hp=8309fe6414965b2a67d7c560f7c30e3d34227db6;hpb=0a13b3fe342db83eef2c0ddc991a44452df77aa3;p=blank.git diff --git a/src/camera.cpp b/src/camera.cpp index 8309fe6..fbf10bc 100644 --- a/src/camera.cpp +++ b/src/camera.cpp @@ -7,16 +7,14 @@ namespace blank { Camera::Camera() -: fov(45.0f) +: FPSController() +, fov(45.0f) , aspect(1.0f) , near_clip(0.1f) , far_clip(100.0f) -, position(0, 0, 0) -, target(0, 0, -1) -, up(0, 1, 0) , projection(glm::perspective(fov, aspect, near_clip, far_clip)) -, view(glm::lookAt(position, target, up)) -, vp(projection * view) { +, view(glm::inverse(Transform())) +, vp(projection) { } @@ -55,14 +53,14 @@ void Camera::Clip(float near, float far) { } -void Camera::UpdateProjection() { - projection = glm::perspective(fov, aspect, near_clip, far_clip); +void Camera::Update(int dt) { + FPSController::Update(dt); + view = glm::inverse(Transform()); vp = projection * view; } -void Camera::UpdateView() { - view = glm::lookAt(position, target, up); - vp = projection * view; +void Camera::UpdateProjection() { + projection = glm::perspective(fov, aspect, near_clip, far_clip); } }