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