summaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authorChristian Strømme <christian.stromme@qt.io>2019-01-09 16:35:05 +0100
committerLaszlo Agocs <laszlo.agocs@qt.io>2019-01-09 16:43:44 +0000
commit85ce7c19c965f3dfdbc3eaf7365e8e6d5dc81a3d (patch)
treeffab010d89bc9e837ff8a64e95957c9375714e8e /tests
parent66a48481616126929ae29a30b316a0dc930e3b2c (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.cpp11
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);