def text.baseline
gralha-svg-render@0.1.0.1 · svg.bend:3360
import gralha-svg-render@0.1.0.1/svg.bend as Svg
import Base
import gralha-text-scan@0.1.0.1/scan.bend as U
import gralha-truetype@0.1.0.1/font.bend as Font
3360def text.baseline(+font: TextFont) -> F32:
3361 TextFont{size, face, weight, slant, anchor, letter, word, shift, baseline, kern, preserve, book} = font
3362 +base = baseline
3363 +ascender = Font.font.metric(book, face, "ascender", 1.069)
3364 +descender = Font.font.metric(book, face, "descender", F32.neg(0.293))
3365 (U.choose(F32, U.string.equal(base, "middle"), (size * Font.font.metric(book, face, "xheight", 0.536) / 2.0 : F32),
3366 U.choose(F32, U.string.equal(base, "central"), (size * (ascender + descender) / 2.0 : F32),
3367 U.choose(F32, U.string.equal(base, "text-before-edge") || U.string.equal(base, "before-edge"), (size * ascender : F32),
3368 U.choose(F32, U.string.equal(base, "text-after-edge") || U.string.equal(base, "after-edge"), (size * descender : F32), 0.0)))) - shift : F32)