From 26a118cfbce29014864f6cdddae66cccb65ffb4f Mon Sep 17 00:00:00 2001 From: Sean Harmer Date: Sat, 7 Nov 2015 19:02:14 +0000 Subject: Remove transforms property of QTransform Compound transformations are now built up using QMatrix4x4 in both QML and C++. Updating examples accordingly. Change-Id: I03c9abf1f6cdd1b56226dc0e16a7ad5ce84516dd Reviewed-by: Paul Lemire --- examples/qt3d/multiviewport/main.qml | 186 +++++++++++++---------------------- 1 file changed, 67 insertions(+), 119 deletions(-) (limited to 'examples/qt3d/multiviewport/main.qml') diff --git a/examples/qt3d/multiviewport/main.qml b/examples/qt3d/multiviewport/main.qml index 69d6b98ca..9c4626eb4 100644 --- a/examples/qt3d/multiviewport/main.qml +++ b/examples/qt3d/multiviewport/main.qml @@ -38,150 +38,98 @@ import QtQuick 2.0 import Qt3D.Core 2.0 import Qt3D.Render 2.0 - Entity { - id : rootNode + id: rootNode + components: [quadViewportFrameGraph] - CameraLens { - id : cameraLens - projectionType: CameraLens.PerspectiveProjection - fieldOfView: 45 - aspectRatio: 16/9 - nearPlane : 0.01 - farPlane : 1000.0 - } // cameraLens + QuadViewportFrameGraph { + id: quadViewportFrameGraph + topLeftCamera: cameraSet.cameras[0] + topRightCamera: cameraSet.cameras[1] + bottomLeftCamera: cameraSet.cameras[2] + bottomRightCamera: cameraSet.cameras[3] + } Entity { - id : sceneRoot - components: [frameGraph] - property real rotationAngle : 0 - - SequentialAnimation { - running : true - loops: Animation.Infinite - NumberAnimation {target : sceneRoot; property : "rotationAngle"; to : 360; duration : 2000;} - } - - property var cameras : [cameraViewport1, cameraViewport2, cameraViewport3, cameraViewport4] + id: cameraSet + property var cameras: [camera1, camera2, camera3, camera4] Timer { - running : true - interval : 10000 - repeat : true - property int count : 0 - onTriggered: - { - cameraSelectorTopLeftViewport.camera = sceneRoot.cameras[count++ % 4]; - cameraSelectorTopRightViewport.camera = sceneRoot.cameras[count % 4]; - cameraSelectorBottomLeftViewport.camera = sceneRoot.cameras[(count + 1) % 4]; - cameraSelectorBottomRightViewport.camera = sceneRoot.cameras[(count + 2) % 4]; + running: true + interval: 10000 + repeat: true + property int count: 0 + onTriggered: { + quadViewportFrameGraph.topLeftCamera = cameraSet.cameras[count++ % 4]; + quadViewportFrameGraph.topRightCamera = cameraSet.cameras[count % 4]; + quadViewportFrameGraph.bottomLeftCamera = cameraSet.cameras[(count + 1) % 4]; + quadViewportFrameGraph.bottomRightCamera = cameraSet.cameras[(count + 2) % 4]; } } - FrameGraph { - id : frameGraph - - Viewport { - id : mainViewport - rect: Qt.rect(0, 0, 1, 1) - - ClearBuffer { - buffers : ClearBuffer.ColorDepthBuffer - } - - Viewport { - id : topLeftViewport - rect : Qt.rect(0, 0, 0.5, 0.5) - CameraSelector {id : cameraSelectorTopLeftViewport; camera : sceneRoot.cameras[0]} - } - - Viewport { - id : topRightViewport - rect : Qt.rect(0.5, 0, 0.5, 0.5) - CameraSelector {id : cameraSelectorTopRightViewport; camera : sceneRoot.cameras[1]} - } - - Viewport { - id : bottomLeftViewport - rect : Qt.rect(0, 0.5, 0.5, 0.5) - CameraSelector {id : cameraSelectorBottomLeftViewport; camera : sceneRoot.cameras[2]} - } + CameraLens { + id : cameraLens + projectionType: CameraLens.PerspectiveProjection + fieldOfView: 45 + aspectRatio: 16/9 + nearPlane : 0.01 + farPlane : 1000.0 + } - Viewport { - id : bottomRightViewport - rect : Qt.rect(0.5, 0.5, 0.5, 0.5) - CameraSelector {id : cameraSelectorBottomRightViewport; camera : sceneRoot.cameras[3]} - } + SimpleCamera { + id: camera1 + lens: cameraLens + position: Qt.vector3d( 0.0, 0.0, -20.0 ) + } - } // mainViewport - } // frameGraph + SimpleCamera { + id: camera2 + lens: cameraLens + position: Qt.vector3d( 0.0, 0.0, 20.0 ) + viewCenter: Qt.vector3d( -3.0, 0.0, 10.0 ) + } - Entity { - id : cameraViewport1 - property Transform transform : Transform { - LookAt { - position: Qt.vector3d( 0.0, 0.0, -20.0 ) - upVector: Qt.vector3d( 0.0, 1.0, 0.0 ) - viewCenter: Qt.vector3d( 0.0, 0.0, 0.0 ) - } - } - components : [cameraLens, transform] + SimpleCamera { + id: camera3 + lens: cameraLens + position: Qt.vector3d( 0.0, 30.0, 30.0 ) + viewCenter: Qt.vector3d( -5.0, -20.0, -10.0 ) } - Entity { - id : cameraViewport2 - property Transform transform : Transform { - Rotate { - angle : sceneRoot.rotationAngle - axis : Qt.vector3d(0, 1, 0) - } - LookAt { - position: Qt.vector3d( 0.0, 0.0, 20.0 ) - upVector: Qt.vector3d( 0.0, 1.0, 0.0 ) - viewCenter: Qt.vector3d( -3.0, 0.0, 10.0 ) - } - } - components : [cameraLens, transform] + SimpleCamera { + id: camera4 + lens: cameraLens + position: Qt.vector3d( 0.0, 15.0, 20.0 ) + viewCenter: Qt.vector3d( 0.0, -15.0, -20.0 ) } + } - Entity { - id : cameraViewport3 - property Transform transform : Transform { - LookAt { - position: Qt.vector3d( 0.0, 30.0, 30.0 ) - upVector: Qt.vector3d( 0.0, 1.0, 0.0 ) - viewCenter: Qt.vector3d( -5.0, -20.0, -10.0 ) - } - } - components : [cameraLens, transform] + Entity { + id: sceneRoot + property real rotationAngle: 0 + + SequentialAnimation { + running: true + loops: Animation.Infinite + NumberAnimation { target: sceneRoot; property: "rotationAngle"; to: 360; duration: 2000; } } Entity { - components : [ + components: [ Transform { - Rotate { - angle : -sceneRoot.rotationAngle - axis : Qt.vector3d(0, 0, 1) + matrix: { + var m = Qt.matrix4x4(1, 0, 0, 0, + 0, 1, 0, 0, + 0, 0, 1, 0, + 0, 0, 0, 1); + m.rotate(-sceneRoot.rotationAngle, Qt.vector3d(0, 0, 1)); + return m; } }, SceneLoader { source: "qrc:/assets/test_scene.dae" - }] - } - - Entity { - id : cameraViewport4 - property Transform transform : Transform { - LookAt { - position: Qt.vector3d( 0.0, 15.0, 20.0 ) - upVector: Qt.vector3d( 0.0, 0.0, 1.0 ) - viewCenter: Qt.vector3d( 0.0, -15.0, -20.0 ) } - } - components : [cameraLens, transform] + ] } - - } // sceneRoot - } // rootNode -- cgit v1.2.3