From ebbf64b63f5b6f0fc2f40c04ec232ad98c357c03 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Tur=C3=A1nszki=20J=C3=A1nos?= Date: Sun, 9 Apr 2023 10:43:44 +0200 Subject: [PATCH] editor: fixed camera snapping on model import (don't copy all camera properties, some could be uninitialized) --- Editor/Editor.cpp | 30 +++++++++++++++++++++--------- 1 file changed, 21 insertions(+), 9 deletions(-) diff --git a/Editor/Editor.cpp b/Editor/Editor.cpp index 348ddafdb..a981ee551 100644 --- a/Editor/Editor.cpp +++ b/Editor/Editor.cpp @@ -338,19 +338,31 @@ void EditorComponent::Load() Entity entity = GetCurrentScene().cameras.GetEntity(camera_count_prev); if (entity != INVALID_ENTITY) { - TransformComponent* camera_transform = GetCurrentScene().transforms.GetComponent(entity); - if (camera_transform != nullptr) - { - GetCurrentEditorScene().camera_transform = *camera_transform; - } - CameraComponent* cam = GetCurrentScene().cameras.GetComponent(entity); if (cam != nullptr) { - GetCurrentEditorScene().camera = *cam; + EditorScene& editorscene = GetCurrentEditorScene(); + editorscene.camera.Eye = cam->Eye; + editorscene.camera.At = cam->At; + editorscene.camera.Up = cam->Up; + editorscene.camera.fov = cam->fov; + editorscene.camera.zNearP = cam->zNearP; + editorscene.camera.zFarP = cam->zFarP; + editorscene.camera.focal_length = cam->focal_length; + editorscene.camera.aperture_size = cam->aperture_size; + editorscene.camera.aperture_shape = cam->aperture_shape; // camera aspect should be always for the current screen - GetCurrentEditorScene().camera.width = (float)renderPath->GetInternalResolution().x; - GetCurrentEditorScene().camera.height = (float)renderPath->GetInternalResolution().y; + editorscene.camera.width = (float)renderPath->GetInternalResolution().x; + editorscene.camera.height = (float)renderPath->GetInternalResolution().y; + + TransformComponent* camera_transform = GetCurrentScene().transforms.GetComponent(entity); + if (camera_transform != nullptr) + { + editorscene.camera_transform = *camera_transform; + editorscene.camera.TransformCamera(editorscene.camera_transform); + } + + editorscene.camera.UpdateCamera(); } } }