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 [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 export : define [TempFont] {.glyf {} .head {.} .hhea {.} .OS_2 {.panose {}} .name {.} .post {.}} export : define [includeGlyphPart cg gs nm] : begin if [not gs.(nm)] : throw : new Error "Glyph \(nm) is not defined, which is used for \(cg.name)." return : cg.include.apply cg [{gs.(nm)}.concat [{}.slice.call arguments 3]] export : define [compsiteMarkSet] : begin local h {.} foreach a [items-of arguments] : foreach k [items-of [Object.keys a.anchors]] : begin set h.(k) : new Anchor a.anchors.(k).x a.anchors.(k).y a.anchors.(k).type a.anchors.(k).mbx a.anchors.(k).mby return {.anchors h} extern global export : define [suggestGC] : begin if (global && global.gc) : global.gc return nothing