forked from qt-creator/qt-creator
		
	Import QtQuick3D 1.15 no longer works in Qt 6.2, so provide a separate set of qml files for each major Qt version. Fixes: QDS-4642 Change-Id: I3e17fb248f71f87fb9a40dcad3c03e037cafb0f4 Reviewed-by: Mahmoud Badri <mahmoud.badri@qt.io> Reviewed-by: Samuel Ghinet <samuel.ghinet@qt.io> Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
		
			
				
	
	
		
			97 lines
		
	
	
		
			3.0 KiB
		
	
	
	
		
			QML
		
	
	
	
	
	
			
		
		
	
	
			97 lines
		
	
	
		
			3.0 KiB
		
	
	
	
		
			QML
		
	
	
	
	
	
| /****************************************************************************
 | |
| **
 | |
| ** Copyright (C) 2020 The Qt Company Ltd.
 | |
| ** Contact: https://www.qt.io/licensing/
 | |
| **
 | |
| ** This file is part of Qt Creator.
 | |
| **
 | |
| ** Commercial License Usage
 | |
| ** Licensees holding valid commercial Qt licenses may use this file in
 | |
| ** accordance with the commercial license agreement provided with the
 | |
| ** Software or, alternatively, in accordance with the terms contained in
 | |
| ** a written agreement between you and The Qt Company. For licensing terms
 | |
| ** and conditions see https://www.qt.io/terms-conditions. For further
 | |
| ** information use the contact form at https://www.qt.io/contact-us.
 | |
| **
 | |
| ** GNU General Public License Usage
 | |
| ** Alternatively, this file may be used under the terms of the GNU
 | |
| ** General Public License version 3 as published by the Free Software
 | |
| ** Foundation with exceptions as appearing in the file LICENSE.GPL3-EXCEPT
 | |
| ** included in the packaging of this file. Please review the following
 | |
| ** information to ensure the GNU General Public License requirements will
 | |
| ** be met: https://www.gnu.org/licenses/gpl-3.0.html.
 | |
| **
 | |
| ****************************************************************************/
 | |
| 
 | |
| import QtQuick 2.15
 | |
| import QtQuick3D 1.15
 | |
| 
 | |
| View3D {
 | |
|     id: root
 | |
|     anchors.fill: parent
 | |
|     environment: sceneEnv
 | |
|     camera: theCamera
 | |
| 
 | |
|     property bool ready: false
 | |
|     property bool first: true
 | |
|     property real prevZoomFactor: -1
 | |
| 
 | |
|     function fitToViewPort()
 | |
|     {
 | |
|         if (first) {
 | |
|             first = false;
 | |
|             selectionBox.targetNode = root.importScene;
 | |
|         } else {
 | |
|             cameraControl.focusObject(selectionBox.model, theCamera.eulerRotation, true, false);
 | |
| 
 | |
|             if (cameraControl._zoomFactor < 0.1) {
 | |
|                 root.importScene.scale = root.importScene.scale.times(10);
 | |
|             } else if (cameraControl._zoomFactor > 10) {
 | |
|                 root.importScene.scale = root.importScene.scale.times(0.1);
 | |
|             } else {
 | |
|                 // We need one more render after zoom factor change, so only set ready when zoom factor
 | |
|                 // or scaling hasn't changed from the previous frame
 | |
|                 ready = _generalHelper.fuzzyCompare(cameraControl._zoomFactor, prevZoomFactor);
 | |
|                 prevZoomFactor = cameraControl._zoomFactor;
 | |
|                 selectionBox.visible = false;
 | |
|             }
 | |
|         }
 | |
|     }
 | |
| 
 | |
|     SceneEnvironment {
 | |
|         id: sceneEnv
 | |
|         antialiasingMode: SceneEnvironment.MSAA
 | |
|         antialiasingQuality: SceneEnvironment.High
 | |
|     }
 | |
| 
 | |
|     SelectionBox {
 | |
|         id: selectionBox
 | |
|         view3D: root
 | |
|         geometryName: "NodeNodeViewSB"
 | |
|     }
 | |
| 
 | |
|     EditCameraController {
 | |
|         id: cameraControl
 | |
|         camera: theCamera
 | |
|         anchors.fill: parent
 | |
|         view3d: root
 | |
|         ignoreToolState: true
 | |
|     }
 | |
| 
 | |
|     DirectionalLight {
 | |
|         eulerRotation.x: -30
 | |
|         eulerRotation.y: -30
 | |
|     }
 | |
| 
 | |
|     PerspectiveCamera {
 | |
|         id: theCamera
 | |
|         z: 600
 | |
|         y: 600
 | |
|         x: 600
 | |
|         eulerRotation.x: -45
 | |
|         eulerRotation.y: -45
 | |
|         clipFar: 10000
 | |
|         clipNear: 1
 | |
|     }
 | |
| }
 |