Pure, headless easing curves of t in [0,1] for the organic-animation pass (swap/fall/combine juice), placed alongside the existing ease_out_cubic / ease_in_quad in board_anim.sx: ease_in_cubic, ease_in_out_cubic, ease_out_back (bounded overshoot, settles to exactly 1), spring (damped wobble to exactly 1), and squash_envelope (signed squash-&-stretch landing shape). The math module has no exp/pow, so the decaying curves use a (1-t)^n polynomial envelope that hits 0 at t==1, pinning f(1) precisely. Additive only: no render code calls the new curves yet. tests/easing.sx locks, per curve, the endpoints, overshoot/undershoot bounds, and monotonicity-where- required (booleans only, so the snapshot is platform-stable), structured so P16.2 can append illegal-swap bounce-back assertions. Test count 21 -> 22.
10 lines
483 B
Plaintext
10 lines
483 B
Plaintext
== endpoints locked ==
|
|
ease_in true ease_in_out true back true spring true squash true existing true
|
|
== monotonic where required ==
|
|
ease_in true ease_in_out true ease_out_cubic true ease_in_quad true
|
|
== overshoot bounded + settles ==
|
|
back_overshoots true back_bounded true spring_overshoots true spring_bounded true spring_wobbles true
|
|
== squash envelope bounded ==
|
|
squash_moves true squash_two_sided true squash_bounded true
|
|
ok: easing toolkit endpoints locked + amplitudes bounded
|