TypeInterpolators

Handles interpolation of primitive and common value types.

Constructor

TypeInterpolators(path_resolver = None)

Initialize type interpolators.

Parameters

path_resolver
PathResolver instance for Point2D path functions (optional)

Methods

interpolate_angle

interpolate_angle(
    start_value: float,
    end_value: float,
    eased_t: Union[float, Tuple[float, float]]
) -> float

Interpolate between two angle values with wraparound handling.

Parameters

start_value
Starting angle
end_value
Ending angle
eased_t
Eased interpolation parameter

Returns

Interpolated angle

interpolate_color

interpolate_color(
    start_value: Color,
    end_value: Color,
    eased_t: Union[float, Tuple[float, float]]
) -> Color

Interpolate between two Color values.

Parameters

start_value
Starting Color
end_value
Ending Color
eased_t
Eased interpolation parameter

Returns

Interpolated Color

interpolate_numeric

interpolate_numeric(
    start_value: Union[int, float],
    end_value: Union[int, float],
    eased_t: Union[float, Tuple[float, float]]
) -> float

Interpolate between two numeric values.

Parameters

start_value
Starting number
end_value
Ending number
eased_t
Eased interpolation parameter

Returns

Interpolated number

interpolate_point2d

interpolate_point2d(
    start_value: Point2D,
    end_value: Point2D,
    eased_t: Union[float, Tuple[float, float]],
    field_name: str,
    segment_interpolation_config: Optional[Dict[str, Callable]] = None
) -> Point2D

Interpolate between two Point2D values.

Parameters

start_value
Starting Point2D
end_value
Ending Point2D
eased_t
Eased interpolation parameter (scalar or 2D tuple)
field_name
Name of the field being interpolated
segment_interpolation_config
Optional per-field path config dict

Returns

Interpolated Point2D

interpolate_step

interpolate_step(
    start_value: Any,
    end_value: Any,
    eased_t: Union[float, Tuple[float, float]]
) -> Any

Step interpolation for non-numeric values.

Parameters

start_value
Starting value
end_value
Ending value
eased_t
Eased interpolation parameter

Returns

start_value if t < 0.5, else end_value

is_angle_field

is_angle_field(state: State, field_name: str) -> bool

Check if a field represents an angle value.

Parameters

state
State object
field_name
Name of the field to check

Returns

True if field represents an angle