summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSean Harmer <sean.harmer@kdab.com>2017-03-24 16:00:50 +0000
committerSean Harmer <sean.harmer@kdab.com>2017-03-26 07:29:52 +0000
commit57d700a414dd8e6fa301865771b9c738bb7aa8c6 (patch)
tree73029b665953e8c39e9e17cf82c2bed9caf533cf
parentd4181254c00086d735ecbf01a03a8129e788e0a5 (diff)
Add allDependencyIds() pure virtual and overrides to backend nodes
This will be used to visit all nodes by the visitor for the purpose of collecting vlaue nodes that should be evaluated. Change-Id: Iff84eed2ee139a0ecd3639994549e5859b5827d0 Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
-rw-r--r--src/animation/backend/additiveclipblend_p.h5
-rw-r--r--src/animation/backend/clipblendnode.cpp11
-rw-r--r--src/animation/backend/clipblendnode_p.h1
-rw-r--r--src/animation/backend/clipblendvalue_p.h5
-rw-r--r--src/animation/backend/lerpclipblend_p.h5
-rw-r--r--tests/auto/animation/additiveclipblend/tst_additiveclipblend.cpp5
-rw-r--r--tests/auto/animation/animationutils/tst_animationutils.cpp5
-rw-r--r--tests/auto/animation/clipblendnode/tst_clipblendnode.cpp5
-rw-r--r--tests/auto/animation/clipblendnodemanager/tst_clipblendnodemanager.cpp5
-rw-r--r--tests/auto/animation/lerpclipblend/tst_lerpclipblend.cpp5
10 files changed, 52 insertions, 0 deletions
diff --git a/src/animation/backend/additiveclipblend_p.h b/src/animation/backend/additiveclipblend_p.h
index 7267283a5..b3fe240ed 100644
--- a/src/animation/backend/additiveclipblend_p.h
+++ b/src/animation/backend/additiveclipblend_p.h
@@ -73,6 +73,11 @@ public:
void sceneChangeEvent(const Qt3DCore::QSceneChangePtr &e) Q_DECL_FINAL;
+ inline QVector<Qt3DCore::QNodeId> allDependencyIds() const Q_DECL_OVERRIDE
+ {
+ return currentDependencyIds();
+ }
+
inline QVector<Qt3DCore::QNodeId> currentDependencyIds() const Q_DECL_OVERRIDE
{
return { m_baseClipId, m_additiveClipId };
diff --git a/src/animation/backend/clipblendnode.cpp b/src/animation/backend/clipblendnode.cpp
index 26b4c75d7..4f236b11c 100644
--- a/src/animation/backend/clipblendnode.cpp
+++ b/src/animation/backend/clipblendnode.cpp
@@ -121,6 +121,17 @@ ClipResults ClipBlendNode::clipResults(Qt3DCore::QNodeId animatorId) const
*/
/*!
+ \fn QVector<Qt3DCore::QNodeId> ClipBlendNode::allDependencyIds() const
+ \internal
+
+ Similar to currentDependencyIds() but returns the ids of all potential
+ dependency nodes, not just those that are dependencies given the current
+ internal state. For example a generalised lerp node would return the ids
+ of all nodes that can participate in the lerp for any value of the blend
+ parameter. Not just those bounding the current blend value.
+*/
+
+/*!
\internal
Fetches the ClipResults from the nodes listed in the dependencyIds
diff --git a/src/animation/backend/clipblendnode_p.h b/src/animation/backend/clipblendnode_p.h
index 89cf09fa0..865536ea0 100644
--- a/src/animation/backend/clipblendnode_p.h
+++ b/src/animation/backend/clipblendnode_p.h
@@ -83,6 +83,7 @@ public:
void setClipResults(Qt3DCore::QNodeId animatorId, const ClipResults &clipResults);
ClipResults clipResults(Qt3DCore::QNodeId animatorId) const;
+ virtual QVector<Qt3DCore::QNodeId> allDependencyIds() const = 0;
virtual QVector<Qt3DCore::QNodeId> currentDependencyIds() const = 0;
virtual double duration() const = 0;
diff --git a/src/animation/backend/clipblendvalue_p.h b/src/animation/backend/clipblendvalue_p.h
index 8c6d85940..6da800f98 100644
--- a/src/animation/backend/clipblendvalue_p.h
+++ b/src/animation/backend/clipblendvalue_p.h
@@ -66,6 +66,11 @@ public:
void sceneChangeEvent(const Qt3DCore::QSceneChangePtr &e) Q_DECL_OVERRIDE;
+ inline QVector<Qt3DCore::QNodeId> allDependencyIds() const Q_DECL_OVERRIDE
+ {
+ return currentDependencyIds();
+ }
+
inline QVector<Qt3DCore::QNodeId> currentDependencyIds() const Q_DECL_OVERRIDE
{
return { m_clipId };
diff --git a/src/animation/backend/lerpclipblend_p.h b/src/animation/backend/lerpclipblend_p.h
index 56a67ca5d..e09987759 100644
--- a/src/animation/backend/lerpclipblend_p.h
+++ b/src/animation/backend/lerpclipblend_p.h
@@ -73,6 +73,11 @@ public:
void sceneChangeEvent(const Qt3DCore::QSceneChangePtr &e) Q_DECL_FINAL;
+ inline QVector<Qt3DCore::QNodeId> allDependencyIds() const Q_DECL_OVERRIDE
+ {
+ return currentDependencyIds();
+ }
+
inline QVector<Qt3DCore::QNodeId> currentDependencyIds() const Q_DECL_OVERRIDE
{
return { m_startClipId, m_endClipId };
diff --git a/tests/auto/animation/additiveclipblend/tst_additiveclipblend.cpp b/tests/auto/animation/additiveclipblend/tst_additiveclipblend.cpp
index b3b9d98da..28ab8917a 100644
--- a/tests/auto/animation/additiveclipblend/tst_additiveclipblend.cpp
+++ b/tests/auto/animation/additiveclipblend/tst_additiveclipblend.cpp
@@ -50,6 +50,11 @@ public:
, m_duration(duration)
{}
+ inline QVector<Qt3DCore::QNodeId> allDependencyIds() const Q_DECL_OVERRIDE
+ {
+ return currentDependencyIds();
+ }
+
QVector<Qt3DCore::QNodeId> currentDependencyIds() const Q_DECL_FINAL
{
return QVector<Qt3DCore::QNodeId>();
diff --git a/tests/auto/animation/animationutils/tst_animationutils.cpp b/tests/auto/animation/animationutils/tst_animationutils.cpp
index 7de3d42be..17815f5db 100644
--- a/tests/auto/animation/animationutils/tst_animationutils.cpp
+++ b/tests/auto/animation/animationutils/tst_animationutils.cpp
@@ -77,6 +77,11 @@ public:
m_value2Id = value2Id;
}
+ inline QVector<Qt3DCore::QNodeId> allDependencyIds() const Q_DECL_OVERRIDE
+ {
+ return currentDependencyIds();
+ }
+
QVector<Qt3DCore::QNodeId> currentDependencyIds() const Q_DECL_FINAL
{
return QVector<Qt3DCore::QNodeId>() << m_value1Id << m_value2Id;
diff --git a/tests/auto/animation/clipblendnode/tst_clipblendnode.cpp b/tests/auto/animation/clipblendnode/tst_clipblendnode.cpp
index c195b760c..b480a5ab8 100644
--- a/tests/auto/animation/clipblendnode/tst_clipblendnode.cpp
+++ b/tests/auto/animation/clipblendnode/tst_clipblendnode.cpp
@@ -54,6 +54,11 @@ public:
, m_clipResults(clipResults)
{}
+ inline QVector<Qt3DCore::QNodeId> allDependencyIds() const Q_DECL_OVERRIDE
+ {
+ return currentDependencyIds();
+ }
+
QVector<Qt3DCore::QNodeId> currentDependencyIds() const Q_DECL_FINAL
{
return QVector<Qt3DCore::QNodeId>();
diff --git a/tests/auto/animation/clipblendnodemanager/tst_clipblendnodemanager.cpp b/tests/auto/animation/clipblendnodemanager/tst_clipblendnodemanager.cpp
index b909bb3ad..7bcef28ae 100644
--- a/tests/auto/animation/clipblendnodemanager/tst_clipblendnodemanager.cpp
+++ b/tests/auto/animation/clipblendnodemanager/tst_clipblendnodemanager.cpp
@@ -49,6 +49,11 @@ public:
deadCount += 1;
}
+ inline QVector<Qt3DCore::QNodeId> allDependencyIds() const Q_DECL_OVERRIDE
+ {
+ return currentDependencyIds();
+ }
+
QVector<Qt3DCore::QNodeId> currentDependencyIds() const Q_DECL_FINAL
{
return QVector<Qt3DCore::QNodeId>();
diff --git a/tests/auto/animation/lerpclipblend/tst_lerpclipblend.cpp b/tests/auto/animation/lerpclipblend/tst_lerpclipblend.cpp
index f2d6263ae..003b1ef53 100644
--- a/tests/auto/animation/lerpclipblend/tst_lerpclipblend.cpp
+++ b/tests/auto/animation/lerpclipblend/tst_lerpclipblend.cpp
@@ -50,6 +50,11 @@ public:
, m_duration(duration)
{}
+ inline QVector<Qt3DCore::QNodeId> allDependencyIds() const Q_DECL_OVERRIDE
+ {
+ return currentDependencyIds();
+ }
+
QVector<Qt3DCore::QNodeId> currentDependencyIds() const Q_DECL_FINAL
{
return QVector<Qt3DCore::QNodeId>();