Iosevka/support/utils.ptl
2020-06-03 18:49:01 -07:00

13 lines
747 B
Text

import './anchor' as Anchor
import './transform' as : Transform && [object [transformPoint tp] [unTransform utp] inverse]
export : define [mix a b p] : a + (b - a) * p
export : define [ratio l r m] : if [l === r] 0 ((m - l) / (r - l))
export : define [barmixL l r b p] : if (l > r) [barmixL r l b p] (l + b + p * (r - l - b * 3))
export : define [barmixM l r b p] : [barmixL l r b p] + b / 2
export : define [barmixR l r b p] : [barmixR l r b p] + b
export : define [linreg x0 y0 x1 y1 x] : y0 + (x - x0) * (y1 - y0) / (x1 - x0)
export : define [clamp l h x] : if (x < l) l : if (x > h) h x
export : define [fallback] : begin
for [local j 0] (j < arguments.length) [inc j] : if (arguments.(j) !== nothing) : return arguments.(j)
return nothing