Page MenuHome

AnimFilter: Iterator
Needs ReviewPublic

Authored by Jeroen Bakker (jbakker) on Apr 3 2020, 3:44 PM.

Details

Summary

Animation Filter is the place where the animation data that is presented to the user is determined. The current code used a ListBase that was filled. A linked list was used as it could also add data before the last item. This was used as parents/containers were added after a child was added to the list.

This patch adds an iterator that gives the same result, but everything is added in order. Using an iterator will allow support for other data types than ListBase or even no data type at all by only giving a callback function.

Diff Detail

Repository
rB Blender
Branch
refactor-anim-filter (branched from master)
Build Status
Buildable 7510
Build 7510: arc lint + arc unit

Event Timeline

Jeroen Bakker (jbakker) edited the summary of this revision. (Show Details)Apr 3 2020, 3:51 PM

First try with a level iterator.
First impression is that this is much better as we don't need to do so much of data management and this would allow the full process to become iterative

Upload to do a side by side comparison

Added support for peeking.

I want to refactor peeking as multiple checks are currently done here. This could be made more generic

Jeroen Bakker (jbakker) edited the summary of this revision. (Show Details)Apr 8 2020, 8:26 AM
Jeroen Bakker (jbakker) edited the summary of this revision. (Show Details)

Moved common checks to animdata_filter_iter_data_increase_level

Jeroen Bakker (jbakker) retitled this revision from [WIP] AnimFilter: Refactor to AnimFilter: Iterator.Apr 9 2020, 10:13 AM
Jeroen Bakker (jbakker) edited the summary of this revision. (Show Details)

Does this have any effect on artists using Blender?