EasingResolver

Resolves easing functions for field animations using a 4-level priority system.

Priority (highest to lowest): 1. Segment-level easing overrides (per keystate segment) 2. Instance-level field easing (attribute_easing dict) 3. State class default easing (State.DEFAULT_EASING) 4. Global default (linear)

Constructor

EasingResolver(
    attribute_easing_dict: Optional[Dict[str, Callable[[float], float]]] = None
)

Initialize the easing resolver.

Parameters

attribute_easing
Instance-level easing overrides for specific attributes

Methods

get_easing_for_field

get_easing_for_field(
    state: State,
    field_name: str,
    segment_easing_overrides: Optional[Dict[str, Callable[[float], float]]] = None
) -> Callable[[float], float]

Get the easing function for a field following the 4-level priority.

Parameters

state
The state object containing the field
field_name
Name of the field being animated
segment_easing_overrides
Optional segment-level easing overrides

Returns

Easing function to apply

get_easing_for_field_timeline

get_easing_for_field_timeline(
    state: Optional[State],
    field_name: str
) -> Callable[[float], float]

Get fallback easing for custom field timelines.

Parameters

state
Optional state object for accessing class defaults
field_name
Name of the field

Returns

Easing function to apply