From 3d4fd8564887dbd2b532ee62023537d62c0020b9 Mon Sep 17 00:00:00 2001 From: Miikka Heikkinen Date: Mon, 17 Jun 2024 17:11:05 +0300 Subject: [PATCH] QmlDesigner: Fix 3D import preview camera FOV Adjust FOV orientation depending on width and height of the rendered viewport to ensure rendered scene stays within the viewport. Change-Id: I83ed2b547e3bdaeb106dd938b94c72c0b2b8c2e5 Reviewed-by: Mahmoud Badri --- .../qml2puppet/instances/qt5import3dnodeinstanceserver.cpp | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/tools/qml2puppet/qml2puppet/instances/qt5import3dnodeinstanceserver.cpp b/src/tools/qml2puppet/qml2puppet/instances/qt5import3dnodeinstanceserver.cpp index cfd8df339d3..7d86d6bc982 100644 --- a/src/tools/qml2puppet/qml2puppet/instances/qt5import3dnodeinstanceserver.cpp +++ b/src/tools/qml2puppet/qml2puppet/instances/qt5import3dnodeinstanceserver.cpp @@ -22,6 +22,7 @@ #ifdef QUICK3D_MODULE #include #include +#include #endif namespace QmlDesigner { @@ -84,6 +85,12 @@ void Qt5Import3dNodeInstanceServer::view3DAction([[maybe_unused]] const View3DAc QQmlProperty hProp(obj, "height", context()); wProp.write(size.width()); hProp.write(size.height()); + if (auto camera = qobject_cast(m_view3D->camera())) { + if (size.width() >= size.height()) + camera->setFieldOfViewOrientation(QQuick3DPerspectiveCamera::Vertical); + else + camera->setFieldOfViewOrientation(QQuick3DPerspectiveCamera::Horizontal); + } resizeCanvasToRootItem(); addCurrentNodeToRenderQueue(); }