diff options
author | Christian Strømme <christian.stromme@qt.io> | 2019-01-09 16:35:05 +0100 |
---|---|---|
committer | Laszlo Agocs <laszlo.agocs@qt.io> | 2019-01-09 16:43:44 +0000 |
commit | 85ce7c19c965f3dfdbc3eaf7365e8e6d5dc81a3d (patch) | |
tree | ffab010d89bc9e837ff8a64e95957c9375714e8e /tests | |
parent | 66a48481616126929ae29a30b316a0dc930e3b2c (diff) |
Add support for dynamically adding/removing object from a slide
This change adds support for adding objects at run-time in the new
animation system. Note that this is now done in-place and requires
no rebuilding of the animation track for the slide, which means objects
with animations will start immediately at the right place.
Change-Id: I987aa1aeaa272f3506310304b5543bd6f9547d39
Reviewed-by: Laszlo Agocs <laszlo.agocs@qt.io>
Diffstat (limited to 'tests')
-rw-r--r-- | tests/manual/standalone/main.cpp | 11 |
1 files changed, 10 insertions, 1 deletions
diff --git a/tests/manual/standalone/main.cpp b/tests/manual/standalone/main.cpp index c8d207b..2fe598f 100644 --- a/tests/manual/standalone/main.cpp +++ b/tests/manual/standalone/main.cpp @@ -53,9 +53,13 @@ void buildDynamicSpawner(Q3DSUipPresentation *pres, Q3DSLayerNode *layer, Q3DSSl ++dyncounter; newmodel->appendChildNode(newmat); - newmodel->setMesh(QLatin1String("#Sphere")); + newmodel->setMesh(QLatin1String("#Cone")); newmodel->setPosition(QVector3D((qrand() % 600) - 300, (qrand() % 600) - 300, 0)); + Q3DSAnimationTrack anim(Q3DSAnimationTrack::Linear, newmodel, QLatin1String("rotation.y")); + anim.setKeyFrames({ { 0, 0 }, { 1, 45 }, { 2, 0 }, { 3, -45 }, { 4, 0 }, { 5, 45 }, { 6, 0 }, { 7, -45 }, { 8, 0 } }); + slide->addAnimation(anim); + slide->addObject(newmodel); slide->addObject(newmat); @@ -222,9 +226,14 @@ Q3DSUipPresentation *build() Q3DSSlide *masterSlide = mainPres->newObject<Q3DSSlide>("master"); Q3DSSlide *slide1 = mainPres->newObject<Q3DSSlide>("slide1"); slide1->setName(QLatin1String("Slide 1")); + slide1->setPlayMode(Q3DSSlide::PlayThroughTo); + slide1->setPlayThrough(Q3DSSlide::Next); masterSlide->appendChildNode(slide1); Q3DSSlide *slide2 = mainPres->newObject<Q3DSSlide>("slide2"); slide2->setName(QLatin1String("Slide 2")); + slide2->setPlayMode(Q3DSSlide::PlayThroughTo); + slide2->setPlayThrough(Q3DSSlide::Previous); + slide2->setEndTime(1000); masterSlide->appendChildNode(slide2); mainPres->setMasterSlide(masterSlide); |