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