diff options
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>(); |