diff options
author | Sean Harmer <sean.harmer@kdab.com> | 2017-03-04 16:46:30 +0000 |
---|---|---|
committer | Sean Harmer <sean.harmer@kdab.com> | 2017-03-17 08:37:35 +0000 |
commit | 8256e82d72f17721fb40428df6c7ba397b3e7edd (patch) | |
tree | 529e4624497812545d99dea4b0b1677659e65b6b /tests | |
parent | a02e859b084c542bba472a4ae6f22acad07b085c (diff) |
Add virtual to ClipBlendNode to allow querying dependencies
This will allow a job to build up a list of clips to be evaluated for
the blend tree. This has enough flexibility to allow us to support
many types of bend node in the future but still allow us to only
evaluate the clips actually needed at any given time and for the
current set of blend node states.
Change-Id: I6bfff6d18434af4f09764d890af6f8f429996994
Reviewed-by: Mike Krus <mike.krus@kdab.com>
Diffstat (limited to 'tests')
5 files changed, 88 insertions, 0 deletions
diff --git a/tests/auto/animation/additiveclipblend/tst_additiveclipblend.cpp b/tests/auto/animation/additiveclipblend/tst_additiveclipblend.cpp index e6777cd6a..bdae53ee3 100644 --- a/tests/auto/animation/additiveclipblend/tst_additiveclipblend.cpp +++ b/tests/auto/animation/additiveclipblend/tst_additiveclipblend.cpp @@ -171,6 +171,34 @@ private Q_SLOTS: // THEN QCOMPARE(computed, result); } + + void checkDependencyIds() + { + // GIVEN + Qt3DAnimation::Animation::AdditiveClipBlend addBlend; + auto baseClipId = Qt3DCore::QNodeId::createId(); + auto additiveClipId = Qt3DCore::QNodeId::createId(); + + // WHEN + addBlend.setBaseClipId(baseClipId); + addBlend.setAdditiveClipId(additiveClipId); + QVector<Qt3DCore::QNodeId> actualIds = addBlend.dependencyIds(); + + // THEN + QCOMPARE(actualIds.size(), 2); + QCOMPARE(actualIds[0], baseClipId); + QCOMPARE(actualIds[1], additiveClipId); + + // WHEN + auto anotherAdditiveClipId = Qt3DCore::QNodeId::createId(); + addBlend.setAdditiveClipId(anotherAdditiveClipId); + actualIds = addBlend.dependencyIds(); + + // THEN + QCOMPARE(actualIds.size(), 2); + QCOMPARE(actualIds[0], baseClipId); + QCOMPARE(actualIds[1], anotherAdditiveClipId); + } }; QTEST_MAIN(tst_AdditiveClipBlend) diff --git a/tests/auto/animation/clipblendnode/tst_clipblendnode.cpp b/tests/auto/animation/clipblendnode/tst_clipblendnode.cpp index 7174dff54..bc736ebb8 100644 --- a/tests/auto/animation/clipblendnode/tst_clipblendnode.cpp +++ b/tests/auto/animation/clipblendnode/tst_clipblendnode.cpp @@ -55,6 +55,11 @@ public: float blend(float , float ) const Q_DECL_FINAL { return 0.0f; } + QVector<Qt3DCore::QNodeId> dependencyIds() const Q_DECL_FINAL + { + return QVector<Qt3DCore::QNodeId>(); + } + using ClipBlendNode::setClipResults; }; diff --git a/tests/auto/animation/clipblendnodemanager/tst_clipblendnodemanager.cpp b/tests/auto/animation/clipblendnodemanager/tst_clipblendnodemanager.cpp index 962813d15..6721401ee 100644 --- a/tests/auto/animation/clipblendnodemanager/tst_clipblendnodemanager.cpp +++ b/tests/auto/animation/clipblendnodemanager/tst_clipblendnodemanager.cpp @@ -51,6 +51,10 @@ public: float blend(float , float ) const Q_DECL_FINAL { return 0.0f; } + QVector<Qt3DCore::QNodeId> dependencyIds() const Q_DECL_FINAL + { + return QVector<Qt3DCore::QNodeId>(); + } }; } // anonymous diff --git a/tests/auto/animation/clipblendvalue/tst_clipblendvalue.cpp b/tests/auto/animation/clipblendvalue/tst_clipblendvalue.cpp index 5bed23704..48b0f6931 100644 --- a/tests/auto/animation/clipblendvalue/tst_clipblendvalue.cpp +++ b/tests/auto/animation/clipblendvalue/tst_clipblendvalue.cpp @@ -108,6 +108,30 @@ private Q_SLOTS: QCOMPARE(backendClipBlendValue.clipId(), newValue.id()); } } + + void checkDependencyIds() + { + // GIVEN + Qt3DAnimation::Animation::ClipBlendValue clipNode; + auto clipId = Qt3DCore::QNodeId::createId(); + + // WHEN + clipNode.setClipId(clipId); + QVector<Qt3DCore::QNodeId> actualIds = clipNode.dependencyIds(); + + // THEN + QCOMPARE(actualIds.size(), 1); + QCOMPARE(actualIds[0], clipId); + + // WHEN + auto anotherClipId = Qt3DCore::QNodeId::createId(); + clipNode.setClipId(anotherClipId); + actualIds = clipNode.dependencyIds(); + + // THEN + QCOMPARE(actualIds.size(), 1); + QCOMPARE(actualIds[0], anotherClipId); + } }; QTEST_MAIN(tst_ClipBlendValue) diff --git a/tests/auto/animation/lerpclipblend/tst_lerpclipblend.cpp b/tests/auto/animation/lerpclipblend/tst_lerpclipblend.cpp index 18eaa064e..160049da7 100644 --- a/tests/auto/animation/lerpclipblend/tst_lerpclipblend.cpp +++ b/tests/auto/animation/lerpclipblend/tst_lerpclipblend.cpp @@ -142,6 +142,33 @@ private Q_SLOTS: QCOMPARE(computed, result); } + void checkDependencyIds() + { + // GIVEN + Qt3DAnimation::Animation::LerpClipBlend lerpBlend; + auto startClipId = Qt3DCore::QNodeId::createId(); + auto endClipId = Qt3DCore::QNodeId::createId(); + + // WHEN + lerpBlend.setStartClipId(startClipId); + lerpBlend.setEndClipId(endClipId); + QVector<Qt3DCore::QNodeId> actualIds = lerpBlend.dependencyIds(); + + // THEN + QCOMPARE(actualIds.size(), 2); + QCOMPARE(actualIds[0], startClipId); + QCOMPARE(actualIds[1], endClipId); + + // WHEN + auto anotherEndClipId = Qt3DCore::QNodeId::createId(); + lerpBlend.setEndClipId(anotherEndClipId); + actualIds = lerpBlend.dependencyIds(); + + // THEN + QCOMPARE(actualIds.size(), 2); + QCOMPARE(actualIds[0], startClipId); + QCOMPARE(actualIds[1], anotherEndClipId); + } }; QTEST_MAIN(tst_LerpClipBlend) |