diff options
Diffstat (limited to 'tests/manual/scene3d/AnimatedEntity.qml')
-rw-r--r-- | tests/manual/scene3d/AnimatedEntity.qml | 101 |
1 files changed, 101 insertions, 0 deletions
diff --git a/tests/manual/scene3d/AnimatedEntity.qml b/tests/manual/scene3d/AnimatedEntity.qml new file mode 100644 index 000000000..42ecd56fb --- /dev/null +++ b/tests/manual/scene3d/AnimatedEntity.qml @@ -0,0 +1,101 @@ +// Copyright (C) 2015 Klaralvdalens Datakonsult AB (KDAB). +// SPDX-License-Identifier: LicenseRef-Qt-Commercial OR GPL-3.0-only + +import Qt3D.Core 2.15 +import Qt3D.Render 2.15 +import Qt3D.Input 2.0 +import Qt3D.Extras 2.15 + +import QtQuick 2.0 as QQ2 + + +Entity { + id: sceneRoot + property RenderCapabilities capabilities : renderSettings.renderCapabilities + + property bool validBounds: sphereMesh.implicitPointsValid + property vector3d sphereMinPt: sphereMesh.implicitMinPoint + property vector3d sphereMaxPt: sphereMesh.implicitMaxPoint + //! [0] + Camera { + id: camera + projectionType: CameraLens.PerspectiveProjection + fieldOfView: 45 + nearPlane : 0.1 + farPlane : 1000.0 + position: Qt.vector3d( 0.0, 0.0, 40.0 ) + upVector: Qt.vector3d( 0.0, 1.0, 0.0 ) + viewCenter: Qt.vector3d( 0.0, 0.0, 0.0 ) + } + //! [0] + + FirstPersonCameraController { camera: camera } + + components: [ + RenderSettings { + id: renderSettings + activeFrameGraph: ForwardRenderer { + camera: camera + clearColor: "transparent" + showDebugOverlay: true + } + }, + InputSettings { } + ] + + PhongMaterial { + id: material + } + + TorusMesh { + id: torusMesh + radius: 5 + minorRadius: 1 + rings: 100 + slices: 20 + } + + Transform { + id: torusTransform + scale3D: Qt.vector3d(1.5, 1, 0.5) + rotation: fromAxisAndAngle(Qt.vector3d(1, 0, 0), 45) + } + + Entity { + id: torusEntity + components: [ torusMesh, material, torusTransform ] + } + + SphereMesh { + id: sphereMesh + radius: 3 + generateTangents: true + } + + Transform { + id: sphereTransform + property real userAngle: 0.0 + matrix: { + var m = Qt.matrix4x4(); + m.rotate(userAngle, Qt.vector3d(0, 1, 0)) + m.translate(Qt.vector3d(20, 0, 0)); + return m; + } + } + + QQ2.NumberAnimation { + target: sphereTransform + property: "userAngle" + duration: 10000 + from: 0 + to: 360 + + loops: QQ2.Animation.Infinite + running: true + } + + Entity { + id: sphereEntity + components: [ sphereMesh, material, sphereTransform ] + } +} |