SceneTransition

Abstract base class for scene transitions.

A scene transition composites two scenes during an overlap period, creating visual effects like fades, wipes, slides, etc. Subclasses must implement the `composite` method which receives: - The outgoing scene (scene_out) and its current time - The incoming scene (scene_in) and its current time - A progress value (0.0-1.0) within the transition - A render context with dimensions and settings Attributes: duration: Duration of the transition as fraction of total sequence time easing: Easing function applied to the progress value overlapping: If True, scenes continue animating during the transition

Constructor

SceneTransition(
    duration: float = 0.5,
    easing: Callable[[float], float] = <function linear at 0x107ad0cc0>,
    overlapping: bool = False
) -> None

Initialize a scene transition.

Parameters

duration
Duration of the transition (0.0-1.0 of total sequence time)
easing
Easing function to apply to progress (default: linear)
overlapping
If True, scenes continue animating during the transition. If False (default), transition blends scene_out at t=1.0 with scene_in at t=0.0.
Raises
ValueError
If duration is not positive

Methods

composite

composite(
    scene_out: 'VScene',
    scene_in: 'VScene',
    progress: float,
    time_out: float,
    time_in: float,
    ctx: RenderContext
) -> Drawing

Composite two scenes during a transition.

Parameters

scene_out
The outgoing scene (transitioning away)
scene_in
The incoming scene (transitioning in)
progress
Progress through the transition (0.0-1.0), already eased
time_out
Current time within the outgoing scene (0.0-1.0)
time_in
Current time within the incoming scene (0.0-1.0)
ctx
Render context with dimensions and settings

Returns

A drawsvg Drawing containing the composited result