mirror of
https://github.com/storytold/effectcraft.git
synced 2026-10-14 19:27:05 -04:00
An EaseCurve is the temporal ease of one segment independent of its duration and values: the out side of the first key and the in side of the second, as influence (%) and speed relative to the segment's average speed (1 = linear, 0 = at rest). Its handles in the normalised value graph are cubic-bezier points. apply() eases a pair of keys per dimension, along the motion path for spatial values and as overall progress for paths and gradients, the way Easy Ease shapes them; an Auto Bezier key keeps its other side as it plays. measure() reads the curve a segment plays back. Non-finite numbers are rejected and influences and speeds clamped. Test: handles_round_trip_and_reject_non_finite_numbers, applied_curve_scales_to_each_dimension_and_measures_back, spatial_curve_follows_the_motion_path, linear_and_auto_bezier_sides_measure_as_they_play (effectcraft-keyframe). Co-Authored-By: Claude Opus 5.5 <[email protected]>