diff options
Diffstat (limited to 'src/animation/backend/clipblendnode_p.h')
-rw-r--r-- | src/animation/backend/clipblendnode_p.h | 32 |
1 files changed, 17 insertions, 15 deletions
diff --git a/src/animation/backend/clipblendnode_p.h b/src/animation/backend/clipblendnode_p.h index d3af9301b..17eeed9b3 100644 --- a/src/animation/backend/clipblendnode_p.h +++ b/src/animation/backend/clipblendnode_p.h @@ -67,35 +67,37 @@ public: enum BlendType { NoneBlendType, - LerpBlendType + LerpBlendType, + AdditiveBlendType, + ValueType }; void setClipBlendNodeManager(ClipBlendNodeManager *manager); + inline ClipBlendNodeManager *clipBlendNodeManager() const { return m_manager; } - ClipBlendNodeManager *clipBlendNodeManager() const; BlendType blendType() const; - Qt3DCore::QNodeId parentId() const; - Qt3DCore::QNodeIdVector childrenIds() const; - Qt3DCore::QNodeIdVector clipIds() const; - void sceneChangeEvent(const Qt3DCore::QSceneChangePtr &e) Q_DECL_OVERRIDE; + void blend(Qt3DCore::QNodeId animatorId); + + 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; protected: explicit ClipBlendNode(BlendType blendType); void initializeFromPeer(const Qt3DCore::QNodeCreatedChangeBasePtr &change) Q_DECL_OVERRIDE; + virtual ClipResults doBlend(const QVector<ClipResults> &blendData) const = 0; private: - void setParentId(Qt3DCore::QNodeId parentId); - void addChildId(Qt3DCore::QNodeId childId); - void removeChildId(Qt3DCore::QNodeId childId); - - // Can either contain clips or nothing (tree of other blend nodes) - Qt3DCore::QNodeIdVector m_clipIds; - - Qt3DCore::QNodeId m_parentId; - Qt3DCore::QNodeIdVector m_childrenIds; ClipBlendNodeManager *m_manager; BlendType m_blendType; + + // Store the results of evaluations indexed by animator id + QVector<Qt3DCore::QNodeId> m_animatorIds; + QVector<ClipResults> m_clipResults; }; template<typename Backend, typename Frontend> |