X-Git-Url: http://git.localhorst.tv/?a=blobdiff_plain;ds=sidebyside;f=src%2Fcamera.cpp;h=239ddb2b429887ada5970dbe560acbfc14e003a6;hb=49c81f76b80e0de99ca57db49510eb5e3385e1d1;hp=21df87414cee2ce382a3e2014efb94187c602240;hpb=ea1ce7b0fb7709ae56977480821ac96a231a0686;p=blank.git diff --git a/src/camera.cpp b/src/camera.cpp index 21df874..239ddb2 100644 --- a/src/camera.cpp +++ b/src/camera.cpp @@ -7,14 +7,13 @@ namespace blank { Camera::Camera() -: fov(45.0f) +: Model() +, fov(45.0f) , aspect(1.0f) , near_clip(0.1f) , far_clip(100.0f) -, model() , projection(glm::perspective(fov, aspect, near_clip, far_clip)) -, view(model.Transform()) -, vp(projection * view) { +, vp(projection) { } @@ -53,14 +52,13 @@ void Camera::Clip(float near, float far) { } -void Camera::UpdateProjection() { - projection = glm::perspective(fov, aspect, near_clip, far_clip); - vp = projection * view; +void Camera::Update(int dt) { + Model::Update(dt); + vp = projection * glm::inverse(Transform()); } -void Camera::UpdateView() { - view = glm::inverse(model.Transform()); - vp = projection * view; +void Camera::UpdateProjection() { + projection = glm::perspective(fov, aspect, near_clip, far_clip); } }