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.



415
416
417
418
# File 'lib/animate_it/composition.rb', line 415

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

Instance Method Details

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



438
439
440
441
442
# File 'lib/animate_it/composition.rb', line 438

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



420
421
422
423
424
# File 'lib/animate_it/composition.rb', line 420

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



426
427
428
429
430
431
432
433
434
435
436
# File 'lib/animate_it/composition.rb', line 426

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