Using the generators in tweenr you can avoid calculating all needed frames up front, which can be prohibitive in memory. With a generator you can use get_frame() to extract any frame at a fractional location between 0 and 1 one by one as you need them. You can further get all raw data before and/or after a given point in time using get_raw_frames().

get_frame(generator, at, ...)

get_raw_frames(generator, at, before = 0, after = 0, ...)

Arguments

generator

A frame_generator object

at

A scalar numeric between 0 and 1

...

Arguments passed on to methods

before, after

Scalar numerics that define the time before and after at to search for raw data

Examples

data <- data.frame(
  x = c(1, 2, 2, 1, 2, 2),
  y = c(1, 2, 2, 2, 1, 1),
  time = c(1, 4, 8, 4, 8, 10),
  id = c(1, 1, 1, 2, 2, 2)
)

gen <- gen_components(data, 'cubic-in-out', time = time, id = id)

get_frame(gen, 0.3)
#>       x     y  time id     .phase
#> 1 1.996 1.996 3.988  1 transition

get_raw_frames(gen, 0.5, before = 0.5, after = 0.2)
#> $before
#>   x y time id .phase
#> 1 1 1    1  1    raw
#> 2 2 2    4  1    raw
#> 4 1 2    4  2    raw
#> 
#> $after
#> [1] x      y      time   id     .phase
#> <0 rows> (or 0-length row.names)
#>