class Castaway::Animation
Attributes
duration[R]
from[R]
to[R]
Public Class Methods
from_options(options)
click to toggle source
# File lib/castaway/animation.rb, line 8 def self.from_options(options) factory = Castaway::Interpolation.lookup(options) initial = options[:initial] || 0.0 final = options[:final] || (initial + 1.0) interpolator = factory.new(initial, final) from = options[:from] || raise(ArgumentError, 'animations require `from` time') to = options[:to] || (options[:length] ? from + options[:length] : nil) || raise(ArgumentError, 'animations require `to` or `length`') new(interpolator, from, to) end
new(interpolator, from, to)
click to toggle source
# File lib/castaway/animation.rb, line 23 def initialize(interpolator, from, to) @interpolator = interpolator @from = from.to_f @to = to.to_f @duration = @to - @from end
Public Instance Methods
[](t)
click to toggle source
# File lib/castaway/animation.rb, line 30 def [](t) # adjust t to 0..1 adjusted_t = duration.zero? ? 1.0 : (t - from) / duration.to_f @interpolator[adjusted_t] end