summaryrefslogtreecommitdiffstats
path: root/tests
diff options
context:
space:
mode:
authorSean Harmer <sean.harmer@kdab.com>2017-03-04 16:46:30 +0000
committerSean Harmer <sean.harmer@kdab.com>2017-03-17 08:37:35 +0000
commit8256e82d72f17721fb40428df6c7ba397b3e7edd (patch)
tree529e4624497812545d99dea4b0b1677659e65b6b /tests
parenta02e859b084c542bba472a4ae6f22acad07b085c (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')
-rw-r--r--tests/auto/animation/additiveclipblend/tst_additiveclipblend.cpp28
-rw-r--r--tests/auto/animation/clipblendnode/tst_clipblendnode.cpp5
-rw-r--r--tests/auto/animation/clipblendnodemanager/tst_clipblendnodemanager.cpp4
-rw-r--r--tests/auto/animation/clipblendvalue/tst_clipblendvalue.cpp24
-rw-r--r--tests/auto/animation/lerpclipblend/tst_lerpclipblend.cpp27
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)