placedRefs method

Iterable<AnimateGroup> placedRefs()

Every group placed in the timeline, in tree order.

Implementation

Iterable<AnimateGroup> placedRefs() sync* {
  Iterable<AnimateGroup> visit(TimelineExpr e) sync* {
    switch (e) {
      case AnimateGroup g:
        yield g;
      case ParExpr p:
        for (var c in p.children) {
          yield* visit(c);
        }
      case SeqExpr s:
        for (var c in s.children) {
          yield* visit(c);
        }
      case AtExpr a:
        yield* visit(a.child);
      case SpeedExpr s:
        yield* visit(s.child);
      case RepeatExpr r:
        yield* visit(r.child);
    }
  }

  yield* visit(timeline);
}