forked from qt-creator/qt-creator
		
	When gobal picking is available (Qt 6.2+), use that instead of toggling models pickable properties. Task-number: QDS-4978 Change-Id: Id2a501ae97955128874447fa8a3b8afab3d1f2c7 Reviewed-by: Tomi Korpipää <tomi.korpipaa@qt.io> Reviewed-by: Thomas Hartmann <thomas.hartmann@qt.io> Reviewed-by: Qt CI Bot <qt_ci_bot@qt-project.org>
		
			
				
	
	
		
			98 lines
		
	
	
		
			2.9 KiB
		
	
	
	
		
			QML
		
	
	
	
	
	
			
		
		
	
	
			98 lines
		
	
	
		
			2.9 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 6.0
 | |
| import QtQuick3D 6.0
 | |
| 
 | |
| View3D {
 | |
|     id: root
 | |
|     anchors.fill: parent
 | |
|     environment: sceneEnv
 | |
|     camera: theCamera
 | |
| 
 | |
|     property bool ready: false
 | |
|     property real prevZoomFactor: -1
 | |
|     property Model sourceModel
 | |
| 
 | |
|     function fitToViewPort()
 | |
|     {
 | |
|         cameraControl.focusObject(model, theCamera.eulerRotation, true, false);
 | |
| 
 | |
|         if (cameraControl._zoomFactor < 0.1) {
 | |
|             model.scale = model.scale.times(10);
 | |
|         } else if (cameraControl._zoomFactor > 10) {
 | |
|             model.scale = model.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;
 | |
|         }
 | |
|     }
 | |
| 
 | |
|     SceneEnvironment {
 | |
|         id: sceneEnv
 | |
|         antialiasingMode: SceneEnvironment.MSAA
 | |
|         antialiasingQuality: SceneEnvironment.High
 | |
|     }
 | |
| 
 | |
|     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
 | |
|         eulerRotation.x: -45
 | |
|         clipFar: 10000
 | |
|         clipNear: 1
 | |
|     }
 | |
| 
 | |
|     Model {
 | |
|         id: model
 | |
|         readonly property bool _edit3dLocked: true // Make this non-pickable
 | |
|         eulerRotation.y: 45
 | |
| 
 | |
|         source: sourceModel.source
 | |
|         geometry: sourceModel.geometry
 | |
| 
 | |
|         materials: [
 | |
|             DefaultMaterial {
 | |
|                 diffuseColor: "#4aee45"
 | |
|             }
 | |
|         ]
 | |
|     }
 | |
| }
 |