Class: AnimateIt::Composition::TransitionSeriesBuilder

Inherits:
Object
  • Object
show all
Defined in:
lib/animate_it/composition.rb

Instance Method Summary collapse

Constructor Details

#initialize(composition) ⇒ TransitionSeriesBuilder

Returns a new instance of TransitionSeriesBuilder.



324
325
326
327
# File 'lib/animate_it/composition.rb', line 324

def initialize(composition)
  @composition = composition
  @cursor = 0
end

Instance Method Details

#overlay(scene_class, duration:, offset: 0, name: nil) ⇒ Object



347
348
349
350
351
# File 'lib/animate_it/composition.rb', line 347

def overlay(scene_class, duration:, offset: 0, name: nil, **)
  from_frame = @cursor - (Units.frames(duration,
                                       fps: @composition.fps) / 2) + Units.frames(offset, fps: @composition.fps)
  @composition.scene(scene_class, from: from_frame, duration:, name:, **)
end

#scene(scene_class, duration:, name: nil) ⇒ Object



329
330
331
332
333
# File 'lib/animate_it/composition.rb', line 329

def scene(scene_class, duration:, name: nil, **)
  duration_frames = Units.frames(duration, fps: @composition.fps)
  @composition.scene(scene_class, from: @cursor, duration: duration_frames.frames, name:, **)
  @cursor += duration_frames
end

#transition(name, duration:) ⇒ Object



335
336
337
338
339
340
341
342
343
344
345
# File 'lib/animate_it/composition.rb', line 335

def transition(name, duration:)
  @cursor -= Units.frames(duration, fps: @composition.fps)
  @composition.timeline.add_segment(
    name: "#{name}-transition",
    from_frame: @cursor,
    duration_frames: Units.frames(duration, fps: @composition.fps),
    kind: :transition,
    transition: name,
    show_in_timeline: true
  )
end