diff options
Diffstat (limited to 'tests/manual/animation-keyframe-simple')
6 files changed, 482 insertions, 169 deletions
diff --git a/tests/manual/animation-keyframe-simple/DefaultSceneEntity.qml b/tests/manual/animation-keyframe-simple/DefaultSceneEntity.qml index efffd44c9..f1c6110d6 100644 --- a/tests/manual/animation-keyframe-simple/DefaultSceneEntity.qml +++ b/tests/manual/animation-keyframe-simple/DefaultSceneEntity.qml @@ -1,11 +1,52 @@ -/************************************************************************* - * - * Copyright (c) 2016, Klaralvdalens Datakonsult AB (KDAB) - * All rights reserved. - * - * See the LICENSE.txt file shipped along with this file for the license. - * - *************************************************************************/ +/**************************************************************************** +** +** Copyright (C) 2017 Klaralvdalens Datakonsult AB (KDAB). +** Contact: https://www.qt.io/licensing/ +** +** This file is part of the Qt3D module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:BSD$ +** 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. +** +** BSD License Usage +** Alternatively, you may use this file under the terms of the BSD license +** as follows: +** +** "Redistribution and use in source and binary forms, with or without +** modification, are permitted provided that the following conditions are +** met: +** * Redistributions of source code must retain the above copyright +** notice, this list of conditions and the following disclaimer. +** * Redistributions in binary form must reproduce the above copyright +** notice, this list of conditions and the following disclaimer in +** the documentation and/or other materials provided with the +** distribution. +** * Neither the name of The Qt Company Ltd nor the names of its +** contributors may be used to endorse or promote products derived +** from this software without specific prior written permission. +** +** +** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." +** +** $QT_END_LICENSE$ +** +****************************************************************************/ import Qt3D.Core 2.0 import Qt3D.Render 2.0 diff --git a/tests/manual/animation-keyframe-simple/cubeanimation.json b/tests/manual/animation-keyframe-simple/cubeanimation.json index addf92907..3faff409c 100644 --- a/tests/manual/animation-keyframe-simple/cubeanimation.json +++ b/tests/manual/animation-keyframe-simple/cubeanimation.json @@ -1,87 +1,250 @@ { "animations": [ - { "object": "Cube", - "action": "CubeAction", - "range": [0.0, 60.0], - "groups": [ - { "group": "Location", - "channels": [ - { "name": "x", - "keyframes": [ - { "co": [0.0, 0.0], - "handle_left": [-0.4717472394307454, 0.0], - "handle_right": [0.4717472394307454, 0.0]} - ,{ "co": [1.2083333333333333, 2.430499792098999], - "handle_left": [0.7365860939025879, 1.4711904525756836], - "handle_right": [1.696347713470459, 3.42288875579834]} - ,{ "co": [2.4583333333333335, 5.0], - "handle_left": [1.9703189531962078, 5.0], - "handle_right": [2.9463475545247397, 5.0]} - ]} - ,{ "name": "z", - "keyframes": [ - { "co": [0.0, 0.0], - "handle_left": [-0.4717472394307454, 0.0], - "handle_right": [0.4717472394307454, 0.0]} - ,{ "co": [1.2083333333333333, 0.0], - "handle_left": [0.7365860939025879, 0.0], - "handle_right": [1.696347713470459, 0.0]} - ,{ "co": [2.4583333333333335, 0.0], - "handle_left": [1.9703189531962078, 0.0], - "handle_right": [2.9463475545247397, 0.0]} - ]} - ,{ "name": "y", - "keyframes": [ - { "co": [0.0, 0.0], - "handle_left": [-0.4717472394307454, 0.0], - "handle_right": [0.4717472394307454, 0.0]} - ,{ "co": [1.2083333333333333, 3.0], - "handle_left": [0.7365860939025879, 3.0], - "handle_right": [1.696347713470459, 3.0]} - ,{ "co": [2.4583333333333335, 0.0], - "handle_left": [1.9703189531962078, 0.0], - "handle_right": [2.9463475545247397, 0.0]} - ]} - ]} - ,{ "group": "Rotation", - "channels": [ - { "name": "w", - "keyframes": [ - { "co": [0.0, 1.0], - "handle_left": [-0.9597616195678711, 1.0], - "handle_right": [0.9597616195678711, 1.0]} - ,{ "co": [2.4583333333333335, -4.371138828673793e-08], - "handle_left": [1.4985717137654622, -4.371138828673793e-08], - "handle_right": [3.4180949529012046, -4.371138828673793e-08]} - ]} - ,{ "name": "x", - "keyframes": [ - { "co": [0.0, 0.0], - "handle_left": [-0.9597616195678711, 0.0], - "handle_right": [0.9597616195678711, 0.0]} - ,{ "co": [2.4583333333333335, 0.0], - "handle_left": [1.4985717137654622, 0.0], - "handle_right": [3.4180949529012046, 0.0]} - ]} - ,{ "name": "z", - "keyframes": [ - { "co": [0.0, -0.0], - "handle_left": [-0.9597616195678711, -0.0], - "handle_right": [0.9597616195678711, -0.0]} - ,{ "co": [2.4583333333333335, -1.0], - "handle_left": [1.4985717137654622, -1.0], - "handle_right": [3.4180949529012046, -1.0]} - ]} - ,{ "name": "y", - "keyframes": [ - { "co": [0.0, 0.0], - "handle_left": [-0.9597616195678711, 0.0], - "handle_right": [0.9597616195678711, 0.0]} - ,{ "co": [2.4583333333333335, 0.0], - "handle_left": [1.4985717137654622, 0.0], - "handle_right": [3.4180949529012046, 0.0]} - ]} - ]} - ]} - ] -} + { + "animationName": "CubeAction", + "channels": [ + { + "channelComponents": [ + { + "channelComponentName": "Location X", + "keyFrames": [ + { + "coords": [ + 0.0, + 0.0 + ], + "leftHandle": [ + -0.9597616195678711, + 0.0 + ], + "rightHandle": [ + 0.9597616195678711, + 0.0 + ] + }, + { + "coords": [ + 2.4583333333333335, + 5.0 + ], + "leftHandle": [ + 1.4985717137654622, + 5.0 + ], + "rightHandle": [ + 3.4180949529012046, + 5.0 + ] + } + ] + }, + { + "channelComponentName": "Location Z", + "keyFrames": [ + { + "coords": [ + 0.0, + 0.0 + ], + "leftHandle": [ + -0.9597616195678711, + 0.0 + ], + "rightHandle": [ + 0.9597616195678711, + 0.0 + ] + }, + { + "coords": [ + 2.4583333333333335, + 0.0 + ], + "leftHandle": [ + 1.4985717137654622, + 0.0 + ], + "rightHandle": [ + 3.4180949529012046, + 0.0 + ] + } + ] + }, + { + "channelComponentName": "Location Y", + "keyFrames": [ + { + "coords": [ + 0.0, + 0.0 + ], + "leftHandle": [ + -0.9597616195678711, + 0.0 + ], + "rightHandle": [ + 0.9597616195678711, + 0.0 + ] + }, + { + "coords": [ + 2.4583333333333335, + 0.0 + ], + "leftHandle": [ + 1.4985717137654622, + 0.0 + ], + "rightHandle": [ + 3.4180949529012046, + 0.0 + ] + } + ] + } + ], + "channelName": "Location" + }, + { + "channelComponents": [ + { + "channelComponentName": "Rotation W", + "keyFrames": [ + { + "coords": [ + 0.0, + 1.0 + ], + "leftHandle": [ + -0.9597616195678711, + 1.0 + ], + "rightHandle": [ + 0.9597616195678711, + 1.0 + ] + }, + { + "coords": [ + 2.4583333333333335, + -4.371138828673793e-08 + ], + "leftHandle": [ + 1.4985717137654622, + -4.371138828673793e-08 + ], + "rightHandle": [ + 3.4180949529012046, + -4.371138828673793e-08 + ] + } + ] + }, + { + "channelComponentName": "Rotation X", + "keyFrames": [ + { + "coords": [ + 0.0, + 0.0 + ], + "leftHandle": [ + -0.9597616195678711, + 0.0 + ], + "rightHandle": [ + 0.9597616195678711, + 0.0 + ] + }, + { + "coords": [ + 2.4583333333333335, + 0.0 + ], + "leftHandle": [ + 1.4985717137654622, + 0.0 + ], + "rightHandle": [ + 3.4180949529012046, + 0.0 + ] + } + ] + }, + { + "channelComponentName": "Rotation Z", + "keyFrames": [ + { + "coords": [ + 0.0, + -0.0 + ], + "leftHandle": [ + -0.9597616195678711, + -0.0 + ], + "rightHandle": [ + 0.9597616195678711, + -0.0 + ] + }, + { + "coords": [ + 2.4583333333333335, + -1.0 + ], + "leftHandle": [ + 1.4985717137654622, + -1.0 + ], + "rightHandle": [ + 3.4180949529012046, + -1.0 + ] + } + ] + }, + { + "channelComponentName": "Rotation Y", + "keyFrames": [ + { + "coords": [ + 0.0, + 0.0 + ], + "leftHandle": [ + -0.9597616195678711, + 0.0 + ], + "rightHandle": [ + 0.9597616195678711, + 0.0 + ] + }, + { + "coords": [ + 2.4583333333333335, + 0.0 + ], + "leftHandle": [ + 1.4985717137654622, + 0.0 + ], + "rightHandle": [ + 3.4180949529012046, + 0.0 + ] + } + ] + } + ], + "channelName": "Rotation" + } + ] + } + ] +}
\ No newline at end of file diff --git a/tests/manual/animation-keyframe-simple/main.cpp b/tests/manual/animation-keyframe-simple/main.cpp index fc48fc702..fce9ecc5f 100644 --- a/tests/manual/animation-keyframe-simple/main.cpp +++ b/tests/manual/animation-keyframe-simple/main.cpp @@ -1,11 +1,52 @@ -/************************************************************************* - * - * Copyright (c) 2016, Klaralvdalens Datakonsult AB (KDAB) - * All rights reserved. - * - * See the LICENSE.txt file shipped along with this file for the license. - * - *************************************************************************/ +/**************************************************************************** +** +** Copyright (C) 2017 Klaralvdalens Datakonsult AB (KDAB). +** Contact: https://www.qt.io/licensing/ +** +** This file is part of the Qt3D module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:BSD$ +** 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. +** +** BSD License Usage +** Alternatively, you may use this file under the terms of the BSD license +** as follows: +** +** "Redistribution and use in source and binary forms, with or without +** modification, are permitted provided that the following conditions are +** met: +** * Redistributions of source code must retain the above copyright +** notice, this list of conditions and the following disclaimer. +** * Redistributions in binary form must reproduce the above copyright +** notice, this list of conditions and the following disclaimer in +** the documentation and/or other materials provided with the +** distribution. +** * Neither the name of The Qt Company Ltd nor the names of its +** contributors may be used to endorse or promote products derived +** from this software without specific prior written permission. +** +** +** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." +** +** $QT_END_LICENSE$ +** +****************************************************************************/ #include <QGuiApplication> #include <Qt3DAnimation/QAnimationAspect> diff --git a/tests/manual/animation-keyframe-simple/main.qml b/tests/manual/animation-keyframe-simple/main.qml index 8546d8b34..79fb75fbd 100644 --- a/tests/manual/animation-keyframe-simple/main.qml +++ b/tests/manual/animation-keyframe-simple/main.qml @@ -1,16 +1,57 @@ -/************************************************************************* - * - * Copyright (c) 2016, Klaralvdalens Datakonsult AB (KDAB) - * All rights reserved. - * - * See the LICENSE.txt file shipped along with this file for the license. - * - *************************************************************************/ +/**************************************************************************** +** +** Copyright (C) 2017 Klaralvdalens Datakonsult AB (KDAB). +** Contact: https://www.qt.io/licensing/ +** +** This file is part of the Qt3D module of the Qt Toolkit. +** +** $QT_BEGIN_LICENSE:BSD$ +** 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. +** +** BSD License Usage +** Alternatively, you may use this file under the terms of the BSD license +** as follows: +** +** "Redistribution and use in source and binary forms, with or without +** modification, are permitted provided that the following conditions are +** met: +** * Redistributions of source code must retain the above copyright +** notice, this list of conditions and the following disclaimer. +** * Redistributions in binary form must reproduce the above copyright +** notice, this list of conditions and the following disclaimer in +** the documentation and/or other materials provided with the +** distribution. +** * Neither the name of The Qt Company Ltd nor the names of its +** contributors may be used to endorse or promote products derived +** from this software without specific prior written permission. +** +** +** THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS +** "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT +** LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR +** A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT +** OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, +** SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT +** LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, +** DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY +** THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT +** (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE +** OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE." +** +** $QT_END_LICENSE$ +** +****************************************************************************/ import Qt3D.Core 2.0 import Qt3D.Render 2.0 import Qt3D.Input 2.0 -import Qt3D.Animation 2.2 +import Qt3D.Animation 2.9 import Qt3D.Extras 2.0 DefaultSceneEntity { @@ -41,7 +82,7 @@ DefaultSceneEntity { loops: 3 onRunningChanged: console.log("running = " + running) - clip: AnimationClip { + clip: AnimationClipLoader { source: "cubeanimation.json" onDurationChanged: console.log("duration = " + duration) } @@ -62,64 +103,6 @@ DefaultSceneEntity { ] } - Entity { - id: sphere - - components: [ - Transform { - id: sphereTransform - translation: Qt.vector3d(5, 0, 0) - onTranslationChanged: console.log("t = " + translation) - }, - SphereMesh { - }, - PhongMaterial { - id: sphereMaterial - ambient: Qt.rgba(0.02, 0.02, 0.02, 1.0) - diffuse: "red" - shininess: 50 - }, - ObjectPicker { - onClicked: blendedAnimator.running = true - }, - BlendedClipAnimator { - id: blendedAnimator - loops: 2 - - onRunningChanged: console.log("running = " + running) - - blendTree: LerpBlend { - blendFactor: 0.5 - clips: [ - AnimationClip { - source: "cubeanimation.json" - onDurationChanged: console.log("duration = " + duration) - }, - AnimationClip { - source: "pulsing-moving-cube.json" - onDurationChanged: console.log("duration = " + duration) - }] - } - - - // By default introspect parent Entity and try - // to map fcurve groups to properties of QTransform - // mapping: AutomaticAnimationMapping {} - - // To do more, we can be explicit - channelMapper: ChannelMapper { - mappings: [ - ChannelMapping { channelName: "Location"; target: sphereTransform; property: "translation" }, - ChannelMapping { channelName: "Rotation"; target: sphereTransform; property: "rotation" }, - ChannelMapping { channelName: "Scaling"; target: sphereTransform; property: "scale3D" }, - ChannelMapping { channelName: "Diffuse Color"; target: sphereMaterial; property: "diffuse" } - ] - } - } - ] - } - - camera: Camera { position: Qt.vector3d(10, 3, 15) viewCenter: Qt.vector3d(2.5, 1, 0) diff --git a/tests/manual/animation-keyframe-simple/main.qrc b/tests/manual/animation-keyframe-simple/main.qrc index 323756a88..b59429895 100644 --- a/tests/manual/animation-keyframe-simple/main.qrc +++ b/tests/manual/animation-keyframe-simple/main.qrc @@ -4,5 +4,6 @@ <file>DefaultSceneEntity.qml</file> <file>cubeanimation.json</file> <file>pulsing-moving-cube.json</file> + <file>pulsing-cube-additive.json</file> </qresource> </RCC> diff --git a/tests/manual/animation-keyframe-simple/pulsing-cube-additive.json b/tests/manual/animation-keyframe-simple/pulsing-cube-additive.json new file mode 100644 index 000000000..1373a5002 --- /dev/null +++ b/tests/manual/animation-keyframe-simple/pulsing-cube-additive.json @@ -0,0 +1,84 @@ +{ + "animations": [ + { "object": "Cube", + "action": "CubeAction", + "range": [0.0, 60.0], + "groups": [ + { "group": "Scaling", + "channels": [ + { "name": "x", + "keyframes": [ + { "co": [0.0, 1.0], + "handle_left": [-0.1464043160279592, 1.0], + "handle_right": [0.14640430609385172, 1.0]} + ,{ "co": [0.375, 0.5], + "handle_left": [0.22859569390614828, 0.5], + "handle_right": [0.5376714468002319, 0.5]} + ,{ "co": [0.7916666666666666, 1.0], + "handle_left": [0.6289951801300049, 1.0], + "handle_right": [0.9543381532033285, 1.0]} + ,{ "co": [1.2083333333333333, 0.5], + "handle_left": [1.0456619262695312, 0.5], + "handle_right": [1.371035893758138, 0.5]} + ,{ "co": [1.625, 1.0], + "handle_left": [1.462328592936198, 1.0], + "handle_right": [1.787671407063802, 1.0]} + ,{ "co": [2.0416666666666665, 0.5], + "handle_left": [1.8789952596028645, 0.5], + "handle_right": [2.2043380737304688, 0.5]} + ,{ "co": [2.4583333333333335, 1.0], + "handle_left": [2.2956619262695312, 1.0], + "handle_right": [2.6210047403971353, 1.0]} + ]} + ,{ "name": "z", + "keyframes": [ + { "co": [0.0, 1.0], + "handle_left": [-0.1464043160279592, 1.0], + "handle_right": [0.14640430609385172, 1.0]} + ,{ "co": [0.375, 0.5], + "handle_left": [0.22859569390614828, 0.5], + "handle_right": [0.5376714468002319, 0.5]} + ,{ "co": [0.7916666666666666, 1.0], + "handle_left": [0.6289951801300049, 1.0], + "handle_right": [0.9543381532033285, 1.0]} + ,{ "co": [1.2083333333333333, 0.5], + "handle_left": [1.0456618467966716, 0.5], + "handle_right": [1.3710047403971355, 0.5]} + ,{ "co": [1.625, 1.0], + "handle_left": [1.462328592936198, 1.0], + "handle_right": [1.787671407063802, 1.0]} + ,{ "co": [2.0416666666666665, 0.5], + "handle_left": [1.8789952596028645, 0.5], + "handle_right": [2.2043380737304688, 0.5]} + ,{ "co": [2.4583333333333335, 1.0], + "handle_left": [2.2956619262695312, 1.0], + "handle_right": [2.6210047403971353, 1.0]} + ]} + ,{ "name": "y", + "keyframes": [ + { "co": [0.0, 1.0], + "handle_left": [-0.1464043160279592, 1.0], + "handle_right": [0.14640430609385172, 1.0]} + ,{ "co": [0.375, 0.5], + "handle_left": [0.22859569390614828, 0.5], + "handle_right": [0.5376714468002319, 0.5]} + ,{ "co": [0.7916666666666666, 1.0], + "handle_left": [0.6289951801300049, 1.0], + "handle_right": [0.9543381532033285, 1.0]} + ,{ "co": [1.2083333333333333, 0.5441937446594238], + "handle_left": [1.0456618467966716, 0.5441937446594238], + "handle_right": [1.3710047403971355, 0.5441937446594238]} + ,{ "co": [1.625, 1.0], + "handle_left": [1.462328592936198, 1.0], + "handle_right": [1.787671407063802, 1.0]} + ,{ "co": [2.0416666666666665, 0.5771476030349731], + "handle_left": [1.8789952596028645, 0.5771476030349731], + "handle_right": [2.2043380737304688, 0.5771476030349731]} + ,{ "co": [2.4583333333333335, 1.0], + "handle_left": [2.2956619262695312, 1.0], + "handle_right": [2.6210047403971353, 1.0]} + ]} + ]} + ]} + ] +} |