summaryrefslogtreecommitdiffstats
path: root/tests/auto/animation/clipblendnode
Commit message (Collapse)AuthorAgeFilesLines
* Remove last vestiges of parent-child data from ClipBlendNodeSean Harmer2017-03-261-2/+0
| | | | | Change-Id: I76c28fc48ee6683f3e86aceffd66e2b579899d5b Reviewed-by: Mike Krus <mike.krus@kdab.com>
* Add allDependencyIds() pure virtual and overrides to backend nodesSean Harmer2017-03-261-0/+5
| | | | | | | | 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>
* Rename dependencyIds() to currentDependencyIds()Sean Harmer2017-03-261-1/+1
| | | | | | | | | | We need to add another function that returns all potential dependencies rather than just those that are dependencies given the current state (blend value). Make room for that by renaming this to a more descriptive name. Change-Id: I06cdc2e471007e3bd40cd7b687a4a2c21e4b2828 Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* Rename QClipBlendNode::performBlend() to blend()Sean Harmer2017-03-261-1/+1
| | | | | | | | Now the old blend() virtual is gone we can give this function a nicer name. Change-Id: I74e427692f9667d52342d5c558bff3e7cf63c652 Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* Remove blend() virtual function from backend blend tree nodesSean Harmer2017-03-261-2/+0
| | | | | | | | No longer needed as replaced by the more general doBlend() protected virtual. Change-Id: I5f11c068f8a379baa53a033e5ce8ce63ff64d5ba Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* Remove ClipBlendNode::parentId() functionSean Harmer2017-03-261-2/+0
| | | | | | | | No longer needed. The tree is not managed by parent/child relationships any longer. Change-Id: I711e71a4b54491f5713732ea54100b7ce9526527 Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* Remove clips property from QAbstractClipBlendNode and friendsSean Harmer2017-03-261-110/+0
| | | | | | | | No longer needed as concrete subclasses each provide their own specific APIs for managing clips or sub trees. Change-Id: I8e090bcf18ad9bf0d19e36128d7556aaa6cd6edf Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* Add virtual doBlend to ClipBlendNode and subclassesSean Harmer2017-03-251-1/+52
| | | | | | | | | | | | | | | | | | | This is called by the non virtual performBlend (will be renamed once old implementation is removed). The key here is that all nodes in the blend tree will have the exact same layout for the ClipResults for a given animator. This means we don't need to have a mapping data structure for every node in the tree. This really simplifies the blending implementation and will allow us to parallelise this much better in the future as each blend node could make use of a parallel_for() or map() type operation. To achieve this we will need to perform a gather operation that maps the ClipResults coming straight out of an animation clip to the ClipResults layout used by the blend tree as described above. This will be done in a follow up commit. Change-Id: I389383d3b9197a6ef36b529f44ac89cb5c593023 Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* Add function to recursively calculate duration of a blend treeSean Harmer2017-03-251-0/+2
| | | | | | | | | | | | | | The resulting duration is independent of which animators the blend tree is associated with so this can be implemented as a simple set of virtual functions in the concrete classes. The value node simply returns the duration of the contained clip; the additive node returns the duration of the base node; and the lerp node lerps the durations of the start and end nodes. Change-Id: Ib6edea3fa495885493fa72d44437fea5a8c5a446 Reviewed-by: Paul Lemire <paul.lemire@kdab.com> Reviewed-by: Mike Krus <mike.krus@kdab.com>
* Add virtual to ClipBlendNode to allow querying dependenciesSean Harmer2017-03-171-0/+5
| | | | | | | | | | | 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>
* Use using namespace Qt3DAnimation::Animation in tst_clipblendnodeSean Harmer2017-03-171-22/+26
| | | | | | | Reduces visual clutter Change-Id: I807adbdabc2c010f0b33a7ebf89f7aeeaabd5b6d Reviewed-by: Mike Krus <mike.krus@kdab.com>
* Add ClipResults to ClipBlendNode indexed by animator idSean Harmer2017-03-171-0/+133
| | | | | | | | | | | | | | | | | | | | | A blend tree (or subset of) can be shared between multiple animators. This implies that when evaluating blend trees we need to be able to store and retrieve the results of node evaluations on a per animator basis (as each animator may well have a different start time and therefore map to different local times for the same blend tree). Presently this is done by storing the blend tree node evaluation results within the jobs themselves. Instead, let's delegate this to the blend tree nodes. This is the first step in making the blend tree more general to support more complicated blend operations such as generalised lerps, barycentric lerps, multidimensional lerps etc. Future commits will build up support for this in parallel with the current implementation and then remove the existing implementation when complete. Change-Id: Ife097ec11571c71e9e3d420b3ca67efa2e1639cc Reviewed-by: Mike Krus <mike.krus@kdab.com>
* Rename QLerpBlend to QLerpClipBlendSean Harmer2017-02-241-5/+5
| | | | | | | | Also rename backend class accordingly. Task-number: QTBUG-58904 Change-Id: I3a8d3898507e5055c2727e4bb1b19b06fdba988b Reviewed-by: Kevin Ottens <kevin.ottens@kdab.com>
* Introduce QAbstractAnimationClip and rename QAnimationClipSean Harmer2017-02-241-3/+3
| | | | | | | | | | | | | Introduced an abstract base class for types of animation clip. Also renamed QAnimationClip to QAnimationClipLoader since it loads data from files. Also renamed corresponding backend type and fixed up unit tests accordingly. Task-number: QTBUG-58898 Change-Id: I01a96e108cbbcd12e01913693e96610598965018 Reviewed-by: Kevin Ottens <kevin.ottens@kdab.com>
* ClipBlendNode: add a virtual pure blend methodPaul Lemire2017-01-301-0/+2
| | | | | | | Allows to make each subclass perform its own blending Change-Id: I0a8e32ebc549c988cf4cab59806152c7aa0825f4 Reviewed-by: Sean Harmer <sean.harmer@kdab.com>
* Add backend nodes for the blend nodesPaul Lemire2017-01-292-0/+236
Also adds a ClipBlendNode manager in the backend to have polymorphism and a proper tree structure Change-Id: I64e03d4d31acece6d924e15ec8b3b7565e14168c Reviewed-by: Sean Harmer <sean.harmer@kdab.com>