summaryrefslogtreecommitdiffstats
path: root/src/animation/backend/clipblendnode_p.h
diff options
context:
space:
mode:
Diffstat (limited to 'src/animation/backend/clipblendnode_p.h')
-rw-r--r--src/animation/backend/clipblendnode_p.h32
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>