From 3ae8049a0ebfe613390669ee8ece9376a19acdaf Mon Sep 17 00:00:00 2001 From: Belleve Invis Date: Mon, 20 Jul 2015 02:07:04 +0800 Subject: [PATCH] Added dotlessi, i, l. --- font.js | 358 +++++++++++++++++++++++++++++++++++++++----- font.patel | 165 +++++++++++++++++--- support/glyph.js | 15 +- support/glyph.patel | 5 +- 4 files changed, 480 insertions(+), 63 deletions(-) diff --git a/font.js b/font.js index a2562e0..c6d2878 100644 --- a/font.js +++ b/font.js @@ -1,5 +1,5 @@ { - var r0_font, r0_glyphList, r0_glyphs, r0_Glyph, r0_Stroke, r0_para, r0_variantSelector, r0_globalTransform, r0_UPWARD, r0_DOWNWARD, r0_RIGHTWARD, r0_LEFTWARD, r0_DESCENDER, r0_WIDTH, r0_CAP, r0_XH, r0_O, r0_OXHOOK, r0_SB, r0_HOOK, r0_AHOOK, r0_SHOOK, r0_SMOOTH, r0_SMALLSMOOTH, r0_STROKE, r0_DOTSIZE, r0_BARPOS, r0_GBARPOS, r0_XO, r0_CAPO, r0_HALFSTROKE, r0_RIGHTSB, r0_MIDDLE, r0_CAPMIDDLE, r0_CAP_SMOOTH, r0_DOTRADIUS, r0_SMOOTHA, r0_SMOOTHB, r0_SMALLSMOOTHA, r0_SMALLSMOOTHB, r0_ITALICCORS, r0_KAPPA, r0_COKAPPA, r0_BKAPPA, r0_COBKAPPA, r0_KAPPA_HOOK, r0_KAPPA_AHOOK, r0_Ring, r0_ORing, r0_xn$createglyph$7Hrq, _r0_t0, _r0_t1, _r0_t2, _r0_t3, _r0_t4, _r0_t5, _r0_t6, _r0_t7, _r0_t8, _r0_t9, _r0_t10, _r0_t11, _r0_t12, _r0_t13, _r0_t14, _r0_t15, _r0_t16, _r0_t17, _r0_t18, _r0_t19, _r0_t20, _r0_t21, _r0_t22, _r0_t23, _r0_t24, _r0_t25, _r0_t26, _r0_t27, _r0_t28, _r0_t29, _r0_t30, _r0_t31, _r0_t32, _r0_t33, _r0_t34, _r0_t35, _r0_t36, _r0_t37, _r0_t38, _r0_t39, _r0_t40, _r0_t41, _r0_t42, _r0_t43, _r0_t44, _r0_t45; + var r0_font, r0_glyphList, r0_glyphs, r0_Glyph, r0_Stroke, r0_para, r0_variantSelector, r0_globalTransform, r0_UPWARD, r0_DOWNWARD, r0_RIGHTWARD, r0_LEFTWARD, r0_DESCENDER, r0_WIDTH, r0_CAP, r0_XH, r0_O, r0_OXHOOK, r0_SB, r0_HOOK, r0_AHOOK, r0_SHOOK, r0_SMOOTH, r0_SMALLSMOOTH, r0_STROKE, r0_DOTSIZE, r0_BARPOS, r0_GBARPOS, r0_LONGSERIF, r0_ACCENT, r0_XO, r0_CAPO, r0_HALFSTROKE, r0_RIGHTSB, r0_MIDDLE, r0_CAPMIDDLE, r0_CAP_SMOOTH, r0_DOTRADIUS, r0_SMOOTHA, r0_SMOOTHB, r0_SMALLSMOOTHA, r0_SMALLSMOOTHB, r0_ITALICCORS, r0_KAPPA, r0_COKAPPA, r0_BKAPPA, r0_COBKAPPA, r0_KAPPA_HOOK, r0_KAPPA_AHOOK, r0_Ring, r0_ORing, r0_xn$createglyph$7Hrq, _r0_t0, _r0_t1, _r0_t2, _r0_t3, _r0_t4, _r0_t5, _r0_t6, _r0_t7, _r0_t8, _r0_t9, _r0_t10, _r0_t11, _r0_t12, _r0_t13, _r0_t14, _r0_t15, _r0_t16, _r0_t17, _r0_t18, _r0_t19, _r0_t20, _r0_t21, _r0_t22, _r0_t23, _r0_t24, _r0_t25, _r0_t26, _r0_t27, _r0_t28, _r0_t29, _r0_t30, _r0_t31, _r0_t32, _r0_t33, _r0_t34, _r0_t35, _r0_t36, _r0_t37, _r0_t38, _r0_t39, _r0_t40, _r0_t41, _r0_t42, _r0_t43, _r0_t44, _r0_t45, _r0_t46, _r0_t47, _r0_t48, _r0_t49, _r0_t50, _r0_t51, _r0_t52, _r0_t53, _r0_t54, _r0_t55, _r0_t56, _r0_t57; r0_font = require('./empty.json'); r0_glyphList = r0_font['glyf']; r0_glyphs = { '.notdef': r0_glyphList[0] }; @@ -7,8 +7,8 @@ r0_Stroke = require('./support/stroke')['Stroke']; r0_para = { 'width': 500, - 'stroke': 120, - 'dotsize': 100, + 'stroke': 80, + 'dotsize': 125, 'sb': 50, 'cap': 771, 'xheight': 560, @@ -24,7 +24,9 @@ 'kappa': 0.515, 'italicangle': 10, 'barpos': 0.44, - 'gbarpos': 0.37 + 'gbarpos': 0.37, + 'longserif': 175, + 'accent': 175 }; r0_variantSelector = { 'zero': 'slashed' }; r0_globalTransform = { @@ -67,6 +69,8 @@ r0_DOTSIZE = r0_para['dotsize']; r0_BARPOS = r0_para['barpos']; r0_GBARPOS = r0_para['gbarpos']; + r0_LONGSERIF = r0_para['longserif']; + r0_ACCENT = r0_para['accent']; r0_XO = r0_XH - r0_O; r0_CAPO = r0_CAP - r0_O; r0_HALFSTROKE = r0_STROKE / 2; @@ -535,7 +539,7 @@ r41_xn$reverselast$3qIs(); return void 0; }); - r0_xn$createglyph$7Hrq('O', function _r0_t20() { + r0_xn$createglyph$7Hrq('U', function _r0_t20() { var r43_xn$setwidth$9Jrj, r43_xn$assignunicode$7Hrq, r43_xn$startfrom$1aao, r43_xn$lineto$5sIl, r43_xn$curveto$1aao, r43_xn$cubicto$1aao, r43_xn$putshapes$9Jrj, r43_xn$reverselast$3qIs, r43_xn$includeglyph$3qIs, r43_xn$createstroke$7Hrq, r43_outline, _r43_t0; _r43_t0 = this; r43_xn$setwidth$9Jrj = _r43_t0['set-width']['bind'](_r43_t0); @@ -772,7 +776,7 @@ _r63_t0['set-width'](r0_WIDTH); r63_xn$setwidth$9Jrj(r0_WIDTH); r63_xn$assignunicode$7Hrq('o'); - r63_outline = r63_xn$createstroke$7Hrq()['start-from'](r0_MIDDLE, r0_XO)['set-width'](r0_STROKE, 0)['pen-direction'](r0_LEFTWARD)['arc-hv-to'](r0_SB, r0_XH - r0_SMALLSMOOTHA)['line-to'](r0_SB, r0_SMALLSMOOTHB)['arc-vh-to'](r0_MIDDLE, r0_O)['pen-direction'](r0_RIGHTWARD)['arc-hv-to'](r0_RIGHTSB, r0_SMALLSMOOTHA)['line-to'](r0_RIGHTSB, r0_XH - r0_SMALLSMOOTHB)['arc-vh-to'](r0_MIDDLE, r0_XO)['pen-direction'](r0_LEFTWARD); + r63_outline = r63_xn$createstroke$7Hrq()['start-from'](r0_MIDDLE, r0_XO)['set-width'](r0_STROKE, 0)['pen-direction'](r0_LEFTWARD)['arc-hv-to'](r0_SB + r0_O, r0_XH - r0_SMALLSMOOTHA)['line-to'](r0_SB + r0_O, r0_SMALLSMOOTHB)['arc-vh-to'](r0_MIDDLE, r0_O)['pen-direction'](r0_RIGHTWARD)['arc-hv-to'](r0_RIGHTSB - r0_O, r0_SMALLSMOOTHA)['line-to'](r0_RIGHTSB - r0_O, r0_XH - r0_SMALLSMOOTHB)['arc-vh-to'](r0_MIDDLE, r0_XO)['pen-direction'](r0_LEFTWARD); r63_xn$putshapes$9Jrj(r63_outline['form-stroke']()); return void 0; }); @@ -792,7 +796,7 @@ _r65_t0['gizmo'] = r0_globalTransform; _r65_t0['set-width'](r0_WIDTH); r65_xn$setwidth$9Jrj(r0_WIDTH); - r65_xn$putshapes$9Jrj(r65_xn$createstroke$7Hrq()['start-from'](r0_MIDDLE, r0_XO)['pen-direction'](r0_RIGHTWARD)['set-width'](0, r0_STROKE)['arc-hv-to'](r0_RIGHTSB, r0_XH - r0_SMALLSMOOTHB)['line-to'](r0_RIGHTSB, r0_SMALLSMOOTHA)['arc-vh-to'](r0_MIDDLE, r0_O)['pen-direction'](r0_LEFTWARD)['form-stroke']()); + r65_xn$putshapes$9Jrj(r65_xn$createstroke$7Hrq()['start-from'](r0_MIDDLE, r0_XO)['pen-direction'](r0_RIGHTWARD)['set-width'](0, r0_STROKE)['arc-hv-to'](r0_RIGHTSB - r0_O, r0_XH - r0_SMALLSMOOTHB)['line-to'](r0_RIGHTSB - r0_O, r0_SMALLSMOOTHA)['arc-vh-to'](r0_MIDDLE, r0_O)['pen-direction'](r0_LEFTWARD)['form-stroke']()); r65_xn$putshapes$9Jrj(r65_xn$createstroke$7Hrq()['start-from'](r0_MIDDLE, r0_O + r0_STROKE)['pen-direction'](r0_LEFTWARD)['set-width'](r0_STROKE, 0)['arc-hv-to'](r0_SB + r0_STROKE, r0_SMALLSMOOTHB - r0_STROKE * 0.05)['set-width'](r0_HALFSTROKE, 0)['line-to'](r0_SB + r0_STROKE, r0_XH - r0_SMALLSMOOTHA + r0_STROKE * 0.05)['set-width'](r0_HALFSTROKE, 0)['arc-vh-to'](r0_MIDDLE, r0_XO - r0_STROKE)['set-width'](r0_STROKE, 0)['pen-direction'](r0_RIGHTWARD)['form-stroke']()); return void 0; }); @@ -812,7 +816,7 @@ _r67_t0['gizmo'] = r0_globalTransform; _r67_t0['set-width'](r0_WIDTH); r67_xn$setwidth$9Jrj(r0_WIDTH); - r67_xn$putshapes$9Jrj(r67_xn$createstroke$7Hrq()['start-from'](r0_MIDDLE, r0_XO)['pen-direction'](r0_LEFTWARD)['set-width'](r0_STROKE, 0)['arc-hv-to'](r0_SB, r0_XH - r0_SMALLSMOOTHA)['line-to'](r0_SB, r0_SMALLSMOOTHB)['arc-vh-to'](r0_MIDDLE, r0_O)['pen-direction'](r0_RIGHTWARD)['form-stroke']()); + r67_xn$putshapes$9Jrj(r67_xn$createstroke$7Hrq()['start-from'](r0_MIDDLE, r0_XO)['pen-direction'](r0_LEFTWARD)['set-width'](r0_STROKE, 0)['arc-hv-to'](r0_SB + r0_O, r0_XH - r0_SMALLSMOOTHA)['line-to'](r0_SB + r0_O, r0_SMALLSMOOTHB)['arc-vh-to'](r0_MIDDLE, r0_O)['pen-direction'](r0_RIGHTWARD)['form-stroke']()); r67_xn$putshapes$9Jrj(r67_xn$createstroke$7Hrq()['start-from'](r0_MIDDLE, r0_O + r0_STROKE)['pen-direction'](r0_RIGHTWARD)['set-width'](0, r0_STROKE)['arc-hv-to'](r0_RIGHTSB - r0_STROKE, r0_SMALLSMOOTHA - r0_STROKE * 0.05)['set-width'](0, r0_HALFSTROKE)['line-to'](r0_RIGHTSB - r0_STROKE, r0_XH - r0_SMALLSMOOTHB + r0_STROKE * 0.05)['set-width'](0, r0_HALFSTROKE)['arc-vh-to'](r0_MIDDLE, r0_XO - r0_STROKE)['set-width'](0, r0_STROKE)['pen-direction'](r0_LEFTWARD)['form-stroke']()); return void 0; }); @@ -947,7 +951,7 @@ r79_xn$setwidth$9Jrj(r0_WIDTH); r79_xn$assignunicode$7Hrq('c'); r79_outline = r79_xn$createstroke$7Hrq(); - r79_outline['start-from'](r0_RIGHTSB - r0_OXHOOK, r0_XH - r0_HOOK)['curve-to'](r0_MIDDLE + r0_KAPPA_HOOK * (r0_MIDDLE - r0_para['sb']), r0_XO, r0_MIDDLE, r0_XO)['pen-direction'](r0_LEFTWARD)['arc-hv-to'](r0_SB, r0_XH - r0_SMALLSMOOTHA)['line-to'](r0_SB, r0_SMALLSMOOTHB)['arc-vh-to'](r0_MIDDLE, r0_O)['pen-direction'](r0_RIGHTWARD)['curve-to'](r0_MIDDLE + r0_KAPPA_HOOK * (r0_MIDDLE - r0_SB), r0_O, r0_RIGHTSB - r0_OXHOOK, r0_HOOK); + r79_outline['start-from'](r0_RIGHTSB - r0_OXHOOK, r0_XH - r0_HOOK)['curve-to'](r0_MIDDLE + r0_KAPPA_HOOK * (r0_MIDDLE - r0_para['sb']), r0_XO, r0_MIDDLE, r0_XO)['pen-direction'](r0_LEFTWARD)['arc-hv-to'](r0_SB + r0_O, r0_XH - r0_SMALLSMOOTHA)['line-to'](r0_SB + r0_O, r0_SMALLSMOOTHB)['arc-vh-to'](r0_MIDDLE, r0_O)['pen-direction'](r0_RIGHTWARD)['curve-to'](r0_MIDDLE + r0_KAPPA_HOOK * (r0_MIDDLE - r0_SB), r0_O, r0_RIGHTSB - r0_OXHOOK, r0_HOOK); r79_xn$putshapes$9Jrj(r79_outline['form-stroke'](r0_STROKE, 0)); return void 0; }); @@ -969,7 +973,7 @@ r81_xn$setwidth$9Jrj(r0_WIDTH); r81_xn$assignunicode$7Hrq('e'); r81_barbottom = r0_XH * r0_BARPOS; - r81_outline = r81_xn$createstroke$7Hrq()['start-from'](r0_RIGHTSB, r81_barbottom)['pen-direction'](r0_UPWARD)['set-width'](r0_STROKE, 0)['line-to'](r0_RIGHTSB, r0_XH - r0_SMALLSMOOTHB)['arc-vh-to'](r0_MIDDLE, r0_XO)['pen-direction'](r0_LEFTWARD)['arc-hv-to'](r0_SB, r0_XH - r0_SMALLSMOOTHA)['line-to'](r0_SB, r0_SMALLSMOOTHB)['arc-vh-to'](r0_MIDDLE, r0_O)['pen-direction'](r0_RIGHTWARD)['curve-to'](r0_MIDDLE + r0_KAPPA_HOOK * (r0_MIDDLE - r0_SB), r0_O, r0_RIGHTSB - r0_OXHOOK, r0_HOOK); + r81_outline = r81_xn$createstroke$7Hrq()['start-from'](r0_RIGHTSB - r0_O, r81_barbottom)['pen-direction'](r0_UPWARD)['set-width'](r0_STROKE, 0)['line-to'](r0_RIGHTSB - r0_O, r0_XH - r0_SMALLSMOOTHB)['arc-vh-to'](r0_MIDDLE, r0_XO)['pen-direction'](r0_LEFTWARD)['arc-hv-to'](r0_SB + r0_O, r0_XH - r0_SMALLSMOOTHA)['line-to'](r0_SB + r0_O, r0_SMALLSMOOTHB)['arc-vh-to'](r0_MIDDLE, r0_O)['pen-direction'](r0_RIGHTWARD)['curve-to'](r0_MIDDLE + r0_KAPPA_HOOK * (r0_MIDDLE - r0_SB), r0_O, r0_RIGHTSB - r0_OXHOOK, r0_HOOK); r81_bar = r81_xn$createstroke$7Hrq()['start-from'](r0_SB + r0_HALFSTROKE, r81_barbottom)['set-width'](r0_STROKE, 0)['pen-direction'](r0_RIGHTWARD)['line-to'](r0_RIGHTSB - r0_HALFSTROKE, r81_barbottom)['pen-direction'](r0_RIGHTWARD); r81_xn$putshapes$9Jrj(r81_outline['form-stroke']()); r81_xn$putshapes$9Jrj(r81_bar['form-stroke']()); @@ -993,7 +997,7 @@ r83_xn$setwidth$9Jrj(r0_WIDTH); r83_bartop = r0_XH * r0_BARPOS + r0_STROKE; r83_xn$putshapes$9Jrj(r83_xn$createstroke$7Hrq()['start-from'](r0_RIGHTSB, 0)['pen-direction'](r0_UPWARD)['set-width'](r0_STROKE, 0)['line-to'](r0_RIGHTSB, r0_XH - r0_SMOOTHA)['arc-vh-to'](r0_MIDDLE, r0_XO)['pen-direction'](r0_LEFTWARD)['curve-to'](r0_MIDDLE - r0_KAPPA_AHOOK * (r0_MIDDLE - r0_SB), r0_XO, r0_SB + r0_OXHOOK, r0_XH - r0_AHOOK)['form-stroke']()); - r83_xn$putshapes$9Jrj(r83_xn$createstroke$7Hrq()['start-from'](r0_WIDTH * 0.47, r0_O)['set-width'](0, r0_STROKE)['pen-direction'](r0_LEFTWARD)['arc-hv-to'](r0_SB, r83_bartop * 0.45)['arc-vh-to'](r0_WIDTH * 0.6, r83_bartop)['line-to'](r0_RIGHTSB, r83_bartop)['pen-direction'](r0_RIGHTWARD)['form-stroke']()); + r83_xn$putshapes$9Jrj(r83_xn$createstroke$7Hrq()['start-from'](r0_WIDTH * 0.47, r0_O)['set-width'](0, r0_STROKE)['pen-direction'](r0_LEFTWARD)['arc-hv-to'](r0_SB + r0_O, r83_bartop * 0.45)['arc-vh-to'](r0_WIDTH * 0.6, r83_bartop)['line-to'](r0_RIGHTSB, r83_bartop)['pen-direction'](r0_RIGHTWARD)['form-stroke']()); r83_xn$putshapes$9Jrj(r83_xn$createstroke$7Hrq()['start-from'](r0_WIDTH * 0.47, r0_O + r0_STROKE)['set-width'](0, r0_STROKE)['pen-direction'](r0_RIGHTWARD)['arc-hv-to'](r0_RIGHTSB - r0_STROKE, r0_SMALLSMOOTHA * 0.65)['pen-direction'](r0_UPWARD)['set-width'](0, r0_STROKE * 0.4)['form-stroke']()); return void 0; }); @@ -1063,8 +1067,8 @@ r89_xn$putshapes$9Jrj(r89_xn$createstroke$7Hrq()['start-from'](r0_RIGHTSB, 0)['pen-direction'](r0_UPWARD)['set-width'](r0_STROKE, 0)['line-to'](r0_RIGHTSB, r0_XH)['pen-direction'](r0_UPWARD)['form-stroke']()); return void 0; }); - r0_xn$createglyph$7Hrq('x', function _r0_t44() { - var r91_xn$setwidth$9Jrj, r91_xn$assignunicode$7Hrq, r91_xn$startfrom$1aao, r91_xn$lineto$5sIl, r91_xn$curveto$1aao, r91_xn$cubicto$1aao, r91_xn$putshapes$9Jrj, r91_xn$reverselast$3qIs, r91_xn$includeglyph$3qIs, r91_xn$createstroke$7Hrq, r91_TURN, r91_barone, r91_bartwo, _r91_t0; + r0_xn$createglyph$7Hrq('dotlessi.straight', function _r0_t44() { + var r91_xn$setwidth$9Jrj, r91_xn$assignunicode$7Hrq, r91_xn$startfrom$1aao, r91_xn$lineto$5sIl, r91_xn$curveto$1aao, r91_xn$cubicto$1aao, r91_xn$putshapes$9Jrj, r91_xn$reverselast$3qIs, r91_xn$includeglyph$3qIs, r91_xn$createstroke$7Hrq, _r91_t0; _r91_t0 = this; r91_xn$setwidth$9Jrj = _r91_t0['set-width']['bind'](_r91_t0); r91_xn$assignunicode$7Hrq = _r91_t0['assign-unicode']['bind'](_r91_t0); @@ -1078,17 +1082,11 @@ r91_xn$createstroke$7Hrq = _r91_t0['create-stroke']['bind'](_r91_t0); _r91_t0['gizmo'] = r0_globalTransform; _r91_t0['set-width'](r0_WIDTH); - r91_xn$setwidth$9Jrj(r0_WIDTH); - r91_xn$assignunicode$7Hrq('x'); - r91_TURN = r0_XH * 0.1; - r91_barone = r91_xn$createstroke$7Hrq()['start-from'](r0_SB + r0_HALFSTROKE, 0)['pen-direction'](r0_UPWARD)['set-width'](r0_HALFSTROKE, r0_HALFSTROKE)['cubic-to'](r0_SB + r0_HALFSTROKE, r91_TURN + 0.17 * (r0_XH - r91_TURN), r0_RIGHTSB - r0_HALFSTROKE, r0_XH - r91_TURN - 0.17 * (r0_XH - r91_TURN), r0_RIGHTSB - r0_HALFSTROKE, r0_XH)['pen-direction'](r0_UPWARD); - r91_bartwo = r91_xn$createstroke$7Hrq()['start-from'](r0_RIGHTSB - r0_HALFSTROKE, 0)['pen-direction'](r0_UPWARD)['set-width'](r0_HALFSTROKE, r0_HALFSTROKE)['cubic-to'](r0_RIGHTSB - r0_HALFSTROKE, r91_TURN + 0.17 * (r0_XH - r91_TURN), r0_SB + r0_HALFSTROKE, r0_XH - r91_TURN - 0.17 * (r0_XH - r91_TURN), r0_SB + r0_HALFSTROKE, r0_XH)['pen-direction'](r0_UPWARD); - r91_xn$putshapes$9Jrj(r91_barone['form-stroke']()); - r91_xn$putshapes$9Jrj(r91_bartwo['form-stroke']()); + r91_xn$putshapes$9Jrj(r91_xn$createstroke$7Hrq()['start-from'](r0_MIDDLE, 0)['pen-direction'](r0_UPWARD)['set-width'](r0_HALFSTROKE, r0_HALFSTROKE)['line-to'](r0_MIDDLE, r0_XH)['pen-direction'](r0_UPWARD)['form-stroke']()); return void 0; }); - r0_xn$createglyph$7Hrq('s', function _r0_t45() { - var r93_xn$setwidth$9Jrj, r93_xn$assignunicode$7Hrq, r93_xn$startfrom$1aao, r93_xn$lineto$5sIl, r93_xn$curveto$1aao, r93_xn$cubicto$1aao, r93_xn$putshapes$9Jrj, r93_xn$reverselast$3qIs, r93_xn$includeglyph$3qIs, r93_xn$createstroke$7Hrq, r93_slope, r93_expand, r93_coexpand, r93_ssmootha, r93_bowltop, r93_strokemiddle, r93_bowlbottom, _r93_t0; + r0_xn$createglyph$7Hrq('dotlessi.hooky', function _r0_t45() { + var r93_xn$setwidth$9Jrj, r93_xn$assignunicode$7Hrq, r93_xn$startfrom$1aao, r93_xn$lineto$5sIl, r93_xn$curveto$1aao, r93_xn$cubicto$1aao, r93_xn$putshapes$9Jrj, r93_xn$reverselast$3qIs, r93_xn$includeglyph$3qIs, r93_xn$createstroke$7Hrq, _r93_t0; _r93_t0 = this; r93_xn$setwidth$9Jrj = _r93_t0['set-width']['bind'](_r93_t0); r93_xn$assignunicode$7Hrq = _r93_t0['assign-unicode']['bind'](_r93_t0); @@ -1102,21 +1100,307 @@ r93_xn$createstroke$7Hrq = _r93_t0['create-stroke']['bind'](_r93_t0); _r93_t0['gizmo'] = r0_globalTransform; _r93_t0['set-width'](r0_WIDTH); - r93_xn$setwidth$9Jrj(r0_WIDTH); - r93_xn$assignunicode$7Hrq('s'); - r93_slope = 0.015; - r93_expand = 0.175; - r93_coexpand = (1 - r93_expand) / 2; - r93_ssmootha = r0_SMOOTHA * 0.87; - r93_bowltop = r93_xn$createstroke$7Hrq(); - r93_bowltop['start-from'](r0_RIGHTSB - r0_OXHOOK, r0_XH - r0_SHOOK)['set-width'](r0_STROKE, 0)['curve-to'](r0_MIDDLE + r0_KAPPA_AHOOK * (r0_MIDDLE - r0_para['sb']), r0_XO, r0_MIDDLE, r0_XO)['pen-direction'](r0_LEFTWARD)['arc-hv-to'](r0_SB, r0_XH - r93_ssmootha); - r93_strokemiddle = r93_xn$createstroke$7Hrq(); - r93_strokemiddle['start-from'](r0_SB + r0_STROKE / 2, r0_XH - r93_ssmootha)['set-width'](r0_STROKE / 2, r0_STROKE / 2)['curve-to'](r0_SB + r0_STROKE / 2, (0.5 + r93_slope) * r0_XH + 2 * r93_slope * r0_XH / (r93_expand * r0_WIDTH) * (r93_coexpand * r0_WIDTH - r0_SB - r0_STROKE / 2), r93_coexpand * r0_WIDTH, (0.5 + r93_slope) * r0_XH)['line-to']((1 - r93_coexpand) * r0_WIDTH, (0.5 - r93_slope) * r0_XH)['curve-to'](r0_RIGHTSB - r0_STROKE / 2, (0.5 - r93_slope) * r0_XH - 2 * r93_slope * r0_XH / (r93_expand * r0_WIDTH) * (r93_coexpand * r0_WIDTH - r0_SB - r0_STROKE / 2), r0_RIGHTSB - r0_STROKE / 2, r93_ssmootha); - r93_bowlbottom = r93_xn$createstroke$7Hrq(); - r93_bowlbottom['start-from'](r0_RIGHTSB, r93_ssmootha)['set-width'](0, r0_STROKE)['arc-vh-to'](r0_MIDDLE, r0_O)['pen-direction'](r0_LEFTWARD)['curve-to'](r0_MIDDLE - r0_KAPPA_AHOOK * (r0_MIDDLE - r0_para['sb']), r0_O, r0_SB + r0_OXHOOK, r0_SHOOK); - r93_xn$putshapes$9Jrj(r93_bowltop['form-stroke']()); - r93_xn$putshapes$9Jrj(r93_strokemiddle['form-stroke']()); - r93_xn$putshapes$9Jrj(r93_bowlbottom['form-stroke']()); + r93_xn$includeglyph$3qIs(r0_glyphs['dotlessi.straight']); + r93_xn$putshapes$9Jrj(r93_xn$createstroke$7Hrq()['start-from'](r0_MIDDLE + r0_HALFSTROKE, r0_XH)['pen-direction'](r0_LEFTWARD)['set-width'](r0_STROKE, 0)['line-to'](r0_MIDDLE - r0_LONGSERIF, r0_XH)['pen-direction'](r0_LEFTWARD)['form-stroke']()); + return void 0; + }); + r0_xn$createglyph$7Hrq('dotlessi.zshaped', function _r0_t46() { + var r95_xn$setwidth$9Jrj, r95_xn$assignunicode$7Hrq, r95_xn$startfrom$1aao, r95_xn$lineto$5sIl, r95_xn$curveto$1aao, r95_xn$cubicto$1aao, r95_xn$putshapes$9Jrj, r95_xn$reverselast$3qIs, r95_xn$includeglyph$3qIs, r95_xn$createstroke$7Hrq, _r95_t0; + _r95_t0 = this; + r95_xn$setwidth$9Jrj = _r95_t0['set-width']['bind'](_r95_t0); + r95_xn$assignunicode$7Hrq = _r95_t0['assign-unicode']['bind'](_r95_t0); + r95_xn$startfrom$1aao = _r95_t0['start-from']['bind'](_r95_t0); + r95_xn$lineto$5sIl = _r95_t0['line-to']['bind'](_r95_t0); + r95_xn$curveto$1aao = _r95_t0['curve-to']['bind'](_r95_t0); + r95_xn$cubicto$1aao = _r95_t0['cubic-to']['bind'](_r95_t0); + r95_xn$putshapes$9Jrj = _r95_t0['put-shapes']['bind'](_r95_t0); + r95_xn$reverselast$3qIs = _r95_t0['reverse-last']['bind'](_r95_t0); + r95_xn$includeglyph$3qIs = _r95_t0['include-glyph']['bind'](_r95_t0); + r95_xn$createstroke$7Hrq = _r95_t0['create-stroke']['bind'](_r95_t0); + _r95_t0['gizmo'] = r0_globalTransform; + _r95_t0['set-width'](r0_WIDTH); + r95_xn$includeglyph$3qIs(r0_glyphs['dotlessi.hooky']); + r95_xn$putshapes$9Jrj(r95_xn$createstroke$7Hrq()['start-from'](r0_MIDDLE - r0_HALFSTROKE, 0)['pen-direction'](r0_RIGHTWARD)['set-width'](r0_STROKE, 0)['line-to'](r0_MIDDLE + r0_LONGSERIF, 0)['pen-direction'](r0_RIGHTWARD)['form-stroke']()); + return void 0; + }); + r0_xn$createglyph$7Hrq('dotlessi.serifed', function _r0_t47() { + var r97_xn$setwidth$9Jrj, r97_xn$assignunicode$7Hrq, r97_xn$startfrom$1aao, r97_xn$lineto$5sIl, r97_xn$curveto$1aao, r97_xn$cubicto$1aao, r97_xn$putshapes$9Jrj, r97_xn$reverselast$3qIs, r97_xn$includeglyph$3qIs, r97_xn$createstroke$7Hrq, _r97_t0; + _r97_t0 = this; + r97_xn$setwidth$9Jrj = _r97_t0['set-width']['bind'](_r97_t0); + r97_xn$assignunicode$7Hrq = _r97_t0['assign-unicode']['bind'](_r97_t0); + r97_xn$startfrom$1aao = _r97_t0['start-from']['bind'](_r97_t0); + r97_xn$lineto$5sIl = _r97_t0['line-to']['bind'](_r97_t0); + r97_xn$curveto$1aao = _r97_t0['curve-to']['bind'](_r97_t0); + r97_xn$cubicto$1aao = _r97_t0['cubic-to']['bind'](_r97_t0); + r97_xn$putshapes$9Jrj = _r97_t0['put-shapes']['bind'](_r97_t0); + r97_xn$reverselast$3qIs = _r97_t0['reverse-last']['bind'](_r97_t0); + r97_xn$includeglyph$3qIs = _r97_t0['include-glyph']['bind'](_r97_t0); + r97_xn$createstroke$7Hrq = _r97_t0['create-stroke']['bind'](_r97_t0); + _r97_t0['gizmo'] = r0_globalTransform; + _r97_t0['set-width'](r0_WIDTH); + r97_xn$includeglyph$3qIs(r0_glyphs['dotlessi.zshaped']); + r97_xn$putshapes$9Jrj(r97_xn$createstroke$7Hrq()['start-from'](r0_MIDDLE + r0_HALFSTROKE, 0)['pen-direction'](r0_LEFTWARD)['set-width'](0, r0_STROKE)['line-to'](r0_MIDDLE - r0_LONGSERIF, 0)['pen-direction'](r0_LEFTWARD)['form-stroke']()); + return void 0; + }); + r0_xn$createglyph$7Hrq('dotlessi', function _r0_t48() { + var r99_xn$setwidth$9Jrj, r99_xn$assignunicode$7Hrq, r99_xn$startfrom$1aao, r99_xn$lineto$5sIl, r99_xn$curveto$1aao, r99_xn$cubicto$1aao, r99_xn$putshapes$9Jrj, r99_xn$reverselast$3qIs, r99_xn$includeglyph$3qIs, r99_xn$createstroke$7Hrq, r99_otherwise, _r99_t0, _r99_t1, _r99_t2, _r99_t3, _r99_t4, _r99_t5, _r99_t6, _r99_t7, _r99_t8; + _r99_t1 = this; + r99_xn$setwidth$9Jrj = _r99_t1['set-width']['bind'](_r99_t1); + r99_xn$assignunicode$7Hrq = _r99_t1['assign-unicode']['bind'](_r99_t1); + r99_xn$startfrom$1aao = _r99_t1['start-from']['bind'](_r99_t1); + r99_xn$lineto$5sIl = _r99_t1['line-to']['bind'](_r99_t1); + r99_xn$curveto$1aao = _r99_t1['curve-to']['bind'](_r99_t1); + r99_xn$cubicto$1aao = _r99_t1['cubic-to']['bind'](_r99_t1); + r99_xn$putshapes$9Jrj = _r99_t1['put-shapes']['bind'](_r99_t1); + r99_xn$reverselast$3qIs = _r99_t1['reverse-last']['bind'](_r99_t1); + r99_xn$includeglyph$3qIs = _r99_t1['include-glyph']['bind'](_r99_t1); + r99_xn$createstroke$7Hrq = _r99_t1['create-stroke']['bind'](_r99_t1); + _r99_t1['gizmo'] = r0_globalTransform; + _r99_t1['set-width'](r0_WIDTH); + r99_xn$setwidth$9Jrj(r0_WIDTH); + r99_xn$assignunicode$7Hrq(305); + _r99_t2 = r99_xn$includeglyph$3qIs; + _r99_t3 = r0_glyphs; + _r99_t0 = r0_variantSelector['zero']; + if ('straight' === _r99_t0) { + _r99_t4 = 'dotlessi.straight'; + } else { + if ('hooky' === _r99_t0) { + _r99_t5 = 'dotlessi.hooky'; + } else { + if ('zshaped' === _r99_t0) { + _r99_t6 = 'dotlessi.zshaped'; + } else { + if ('serifed' === _r99_t0) { + _r99_t7 = 'dotlessi.serifed'; + } else { + r99_otherwise = _r99_t0; + _r99_t7 = 'dotlessi.zshaped'; + } + _r99_t6 = _r99_t7; + } + _r99_t5 = _r99_t6; + } + _r99_t4 = _r99_t5; + } + _r99_t8 = _r99_t3[_r99_t4]; + _r99_t2(_r99_t8); + return void 0; + }); + r0_xn$createglyph$7Hrq('dotaccent', function _r0_t49() { + var r101_xn$setwidth$9Jrj, r101_xn$assignunicode$7Hrq, r101_xn$startfrom$1aao, r101_xn$lineto$5sIl, r101_xn$curveto$1aao, r101_xn$cubicto$1aao, r101_xn$putshapes$9Jrj, r101_xn$reverselast$3qIs, r101_xn$includeglyph$3qIs, r101_xn$createstroke$7Hrq, _r101_t0; + _r101_t0 = this; + r101_xn$setwidth$9Jrj = _r101_t0['set-width']['bind'](_r101_t0); + r101_xn$assignunicode$7Hrq = _r101_t0['assign-unicode']['bind'](_r101_t0); + r101_xn$startfrom$1aao = _r101_t0['start-from']['bind'](_r101_t0); + r101_xn$lineto$5sIl = _r101_t0['line-to']['bind'](_r101_t0); + r101_xn$curveto$1aao = _r101_t0['curve-to']['bind'](_r101_t0); + r101_xn$cubicto$1aao = _r101_t0['cubic-to']['bind'](_r101_t0); + r101_xn$putshapes$9Jrj = _r101_t0['put-shapes']['bind'](_r101_t0); + r101_xn$reverselast$3qIs = _r101_t0['reverse-last']['bind'](_r101_t0); + r101_xn$includeglyph$3qIs = _r101_t0['include-glyph']['bind'](_r101_t0); + r101_xn$createstroke$7Hrq = _r101_t0['create-stroke']['bind'](_r101_t0); + _r101_t0['gizmo'] = r0_globalTransform; + _r101_t0['set-width'](r0_WIDTH); + r101_xn$setwidth$9Jrj(r0_WIDTH); + r101_xn$putshapes$9Jrj([r0_Ring(r0_XH + r0_ACCENT + r0_DOTRADIUS, r0_XH + r0_ACCENT - r0_DOTRADIUS, r0_MIDDLE - r0_DOTRADIUS, r0_MIDDLE + r0_DOTRADIUS)]); + return void 0; + }); + r0_xn$createglyph$7Hrq('i', function _r0_t50() { + var r103_xn$setwidth$9Jrj, r103_xn$assignunicode$7Hrq, r103_xn$startfrom$1aao, r103_xn$lineto$5sIl, r103_xn$curveto$1aao, r103_xn$cubicto$1aao, r103_xn$putshapes$9Jrj, r103_xn$reverselast$3qIs, r103_xn$includeglyph$3qIs, r103_xn$createstroke$7Hrq, _r103_t0; + _r103_t0 = this; + r103_xn$setwidth$9Jrj = _r103_t0['set-width']['bind'](_r103_t0); + r103_xn$assignunicode$7Hrq = _r103_t0['assign-unicode']['bind'](_r103_t0); + r103_xn$startfrom$1aao = _r103_t0['start-from']['bind'](_r103_t0); + r103_xn$lineto$5sIl = _r103_t0['line-to']['bind'](_r103_t0); + r103_xn$curveto$1aao = _r103_t0['curve-to']['bind'](_r103_t0); + r103_xn$cubicto$1aao = _r103_t0['cubic-to']['bind'](_r103_t0); + r103_xn$putshapes$9Jrj = _r103_t0['put-shapes']['bind'](_r103_t0); + r103_xn$reverselast$3qIs = _r103_t0['reverse-last']['bind'](_r103_t0); + r103_xn$includeglyph$3qIs = _r103_t0['include-glyph']['bind'](_r103_t0); + r103_xn$createstroke$7Hrq = _r103_t0['create-stroke']['bind'](_r103_t0); + _r103_t0['gizmo'] = r0_globalTransform; + _r103_t0['set-width'](r0_WIDTH); + r103_xn$setwidth$9Jrj(r0_WIDTH); + r103_xn$assignunicode$7Hrq('i'); + r103_xn$includeglyph$3qIs(r0_glyphs['dotlessi']); + r103_xn$includeglyph$3qIs(r0_glyphs['dotaccent']); + return void 0; + }); + r0_xn$createglyph$7Hrq('l.straight', function _r0_t51() { + var r105_xn$setwidth$9Jrj, r105_xn$assignunicode$7Hrq, r105_xn$startfrom$1aao, r105_xn$lineto$5sIl, r105_xn$curveto$1aao, r105_xn$cubicto$1aao, r105_xn$putshapes$9Jrj, r105_xn$reverselast$3qIs, r105_xn$includeglyph$3qIs, r105_xn$createstroke$7Hrq, _r105_t0; + _r105_t0 = this; + r105_xn$setwidth$9Jrj = _r105_t0['set-width']['bind'](_r105_t0); + r105_xn$assignunicode$7Hrq = _r105_t0['assign-unicode']['bind'](_r105_t0); + r105_xn$startfrom$1aao = _r105_t0['start-from']['bind'](_r105_t0); + r105_xn$lineto$5sIl = _r105_t0['line-to']['bind'](_r105_t0); + r105_xn$curveto$1aao = _r105_t0['curve-to']['bind'](_r105_t0); + r105_xn$cubicto$1aao = _r105_t0['cubic-to']['bind'](_r105_t0); + r105_xn$putshapes$9Jrj = _r105_t0['put-shapes']['bind'](_r105_t0); + r105_xn$reverselast$3qIs = _r105_t0['reverse-last']['bind'](_r105_t0); + r105_xn$includeglyph$3qIs = _r105_t0['include-glyph']['bind'](_r105_t0); + r105_xn$createstroke$7Hrq = _r105_t0['create-stroke']['bind'](_r105_t0); + _r105_t0['gizmo'] = r0_globalTransform; + _r105_t0['set-width'](r0_WIDTH); + r105_xn$putshapes$9Jrj(r105_xn$createstroke$7Hrq()['start-from'](r0_MIDDLE, 0)['pen-direction'](r0_UPWARD)['set-width'](r0_HALFSTROKE, r0_HALFSTROKE)['line-to'](r0_MIDDLE, r0_CAP)['pen-direction'](r0_UPWARD)['form-stroke']()); + return void 0; + }); + r0_xn$createglyph$7Hrq('l.hooky', function _r0_t52() { + var r107_xn$setwidth$9Jrj, r107_xn$assignunicode$7Hrq, r107_xn$startfrom$1aao, r107_xn$lineto$5sIl, r107_xn$curveto$1aao, r107_xn$cubicto$1aao, r107_xn$putshapes$9Jrj, r107_xn$reverselast$3qIs, r107_xn$includeglyph$3qIs, r107_xn$createstroke$7Hrq, _r107_t0; + _r107_t0 = this; + r107_xn$setwidth$9Jrj = _r107_t0['set-width']['bind'](_r107_t0); + r107_xn$assignunicode$7Hrq = _r107_t0['assign-unicode']['bind'](_r107_t0); + r107_xn$startfrom$1aao = _r107_t0['start-from']['bind'](_r107_t0); + r107_xn$lineto$5sIl = _r107_t0['line-to']['bind'](_r107_t0); + r107_xn$curveto$1aao = _r107_t0['curve-to']['bind'](_r107_t0); + r107_xn$cubicto$1aao = _r107_t0['cubic-to']['bind'](_r107_t0); + r107_xn$putshapes$9Jrj = _r107_t0['put-shapes']['bind'](_r107_t0); + r107_xn$reverselast$3qIs = _r107_t0['reverse-last']['bind'](_r107_t0); + r107_xn$includeglyph$3qIs = _r107_t0['include-glyph']['bind'](_r107_t0); + r107_xn$createstroke$7Hrq = _r107_t0['create-stroke']['bind'](_r107_t0); + _r107_t0['gizmo'] = r0_globalTransform; + _r107_t0['set-width'](r0_WIDTH); + r107_xn$includeglyph$3qIs(r0_glyphs['l.straight']); + r107_xn$putshapes$9Jrj(r107_xn$createstroke$7Hrq()['start-from'](r0_MIDDLE + r0_HALFSTROKE, r0_CAP)['pen-direction'](r0_LEFTWARD)['set-width'](r0_STROKE, 0)['line-to'](r0_MIDDLE - r0_LONGSERIF, r0_CAP)['pen-direction'](r0_LEFTWARD)['form-stroke']()); + return void 0; + }); + r0_xn$createglyph$7Hrq('l.zshaped', function _r0_t53() { + var r109_xn$setwidth$9Jrj, r109_xn$assignunicode$7Hrq, r109_xn$startfrom$1aao, r109_xn$lineto$5sIl, r109_xn$curveto$1aao, r109_xn$cubicto$1aao, r109_xn$putshapes$9Jrj, r109_xn$reverselast$3qIs, r109_xn$includeglyph$3qIs, r109_xn$createstroke$7Hrq, _r109_t0; + _r109_t0 = this; + r109_xn$setwidth$9Jrj = _r109_t0['set-width']['bind'](_r109_t0); + r109_xn$assignunicode$7Hrq = _r109_t0['assign-unicode']['bind'](_r109_t0); + r109_xn$startfrom$1aao = _r109_t0['start-from']['bind'](_r109_t0); + r109_xn$lineto$5sIl = _r109_t0['line-to']['bind'](_r109_t0); + r109_xn$curveto$1aao = _r109_t0['curve-to']['bind'](_r109_t0); + r109_xn$cubicto$1aao = _r109_t0['cubic-to']['bind'](_r109_t0); + r109_xn$putshapes$9Jrj = _r109_t0['put-shapes']['bind'](_r109_t0); + r109_xn$reverselast$3qIs = _r109_t0['reverse-last']['bind'](_r109_t0); + r109_xn$includeglyph$3qIs = _r109_t0['include-glyph']['bind'](_r109_t0); + r109_xn$createstroke$7Hrq = _r109_t0['create-stroke']['bind'](_r109_t0); + _r109_t0['gizmo'] = r0_globalTransform; + _r109_t0['set-width'](r0_WIDTH); + r109_xn$includeglyph$3qIs(r0_glyphs['l.hooky']); + r109_xn$putshapes$9Jrj(r109_xn$createstroke$7Hrq()['start-from'](r0_MIDDLE - r0_HALFSTROKE, 0)['pen-direction'](r0_RIGHTWARD)['set-width'](r0_STROKE, 0)['line-to'](r0_MIDDLE + r0_LONGSERIF, 0)['pen-direction'](r0_RIGHTWARD)['form-stroke']()); + return void 0; + }); + r0_xn$createglyph$7Hrq('l.serifed', function _r0_t54() { + var r111_xn$setwidth$9Jrj, r111_xn$assignunicode$7Hrq, r111_xn$startfrom$1aao, r111_xn$lineto$5sIl, r111_xn$curveto$1aao, r111_xn$cubicto$1aao, r111_xn$putshapes$9Jrj, r111_xn$reverselast$3qIs, r111_xn$includeglyph$3qIs, r111_xn$createstroke$7Hrq, _r111_t0; + _r111_t0 = this; + r111_xn$setwidth$9Jrj = _r111_t0['set-width']['bind'](_r111_t0); + r111_xn$assignunicode$7Hrq = _r111_t0['assign-unicode']['bind'](_r111_t0); + r111_xn$startfrom$1aao = _r111_t0['start-from']['bind'](_r111_t0); + r111_xn$lineto$5sIl = _r111_t0['line-to']['bind'](_r111_t0); + r111_xn$curveto$1aao = _r111_t0['curve-to']['bind'](_r111_t0); + r111_xn$cubicto$1aao = _r111_t0['cubic-to']['bind'](_r111_t0); + r111_xn$putshapes$9Jrj = _r111_t0['put-shapes']['bind'](_r111_t0); + r111_xn$reverselast$3qIs = _r111_t0['reverse-last']['bind'](_r111_t0); + r111_xn$includeglyph$3qIs = _r111_t0['include-glyph']['bind'](_r111_t0); + r111_xn$createstroke$7Hrq = _r111_t0['create-stroke']['bind'](_r111_t0); + _r111_t0['gizmo'] = r0_globalTransform; + _r111_t0['set-width'](r0_WIDTH); + r111_xn$includeglyph$3qIs(r0_glyphs['l.zshaped']); + r111_xn$putshapes$9Jrj(r111_xn$createstroke$7Hrq()['start-from'](r0_MIDDLE + r0_HALFSTROKE, 0)['pen-direction'](r0_LEFTWARD)['set-width'](0, r0_STROKE)['line-to'](r0_MIDDLE - r0_LONGSERIF, 0)['pen-direction'](r0_LEFTWARD)['form-stroke']()); + return void 0; + }); + r0_xn$createglyph$7Hrq('l', function _r0_t55() { + var r113_xn$setwidth$9Jrj, r113_xn$assignunicode$7Hrq, r113_xn$startfrom$1aao, r113_xn$lineto$5sIl, r113_xn$curveto$1aao, r113_xn$cubicto$1aao, r113_xn$putshapes$9Jrj, r113_xn$reverselast$3qIs, r113_xn$includeglyph$3qIs, r113_xn$createstroke$7Hrq, r113_otherwise, _r113_t0, _r113_t1, _r113_t2, _r113_t3, _r113_t4, _r113_t5, _r113_t6, _r113_t7, _r113_t8; + _r113_t1 = this; + r113_xn$setwidth$9Jrj = _r113_t1['set-width']['bind'](_r113_t1); + r113_xn$assignunicode$7Hrq = _r113_t1['assign-unicode']['bind'](_r113_t1); + r113_xn$startfrom$1aao = _r113_t1['start-from']['bind'](_r113_t1); + r113_xn$lineto$5sIl = _r113_t1['line-to']['bind'](_r113_t1); + r113_xn$curveto$1aao = _r113_t1['curve-to']['bind'](_r113_t1); + r113_xn$cubicto$1aao = _r113_t1['cubic-to']['bind'](_r113_t1); + r113_xn$putshapes$9Jrj = _r113_t1['put-shapes']['bind'](_r113_t1); + r113_xn$reverselast$3qIs = _r113_t1['reverse-last']['bind'](_r113_t1); + r113_xn$includeglyph$3qIs = _r113_t1['include-glyph']['bind'](_r113_t1); + r113_xn$createstroke$7Hrq = _r113_t1['create-stroke']['bind'](_r113_t1); + _r113_t1['gizmo'] = r0_globalTransform; + _r113_t1['set-width'](r0_WIDTH); + r113_xn$setwidth$9Jrj(r0_WIDTH); + r113_xn$assignunicode$7Hrq('l'); + _r113_t2 = r113_xn$includeglyph$3qIs; + _r113_t3 = r0_glyphs; + _r113_t0 = r0_variantSelector['zero']; + if ('straight' === _r113_t0) { + _r113_t4 = 'l.straight'; + } else { + if ('hooky' === _r113_t0) { + _r113_t5 = 'l.hooky'; + } else { + if ('zshaped' === _r113_t0) { + _r113_t6 = 'l.zshaped'; + } else { + if ('serifed' === _r113_t0) { + _r113_t7 = 'l.serifed'; + } else { + r113_otherwise = _r113_t0; + _r113_t7 = 'l.zshaped'; + } + _r113_t6 = _r113_t7; + } + _r113_t5 = _r113_t6; + } + _r113_t4 = _r113_t5; + } + _r113_t8 = _r113_t3[_r113_t4]; + _r113_t2(_r113_t8); + return void 0; + }); + r0_xn$createglyph$7Hrq('x', function _r0_t56() { + var r115_xn$setwidth$9Jrj, r115_xn$assignunicode$7Hrq, r115_xn$startfrom$1aao, r115_xn$lineto$5sIl, r115_xn$curveto$1aao, r115_xn$cubicto$1aao, r115_xn$putshapes$9Jrj, r115_xn$reverselast$3qIs, r115_xn$includeglyph$3qIs, r115_xn$createstroke$7Hrq, r115_TURN, r115_barone, r115_bartwo, _r115_t0; + _r115_t0 = this; + r115_xn$setwidth$9Jrj = _r115_t0['set-width']['bind'](_r115_t0); + r115_xn$assignunicode$7Hrq = _r115_t0['assign-unicode']['bind'](_r115_t0); + r115_xn$startfrom$1aao = _r115_t0['start-from']['bind'](_r115_t0); + r115_xn$lineto$5sIl = _r115_t0['line-to']['bind'](_r115_t0); + r115_xn$curveto$1aao = _r115_t0['curve-to']['bind'](_r115_t0); + r115_xn$cubicto$1aao = _r115_t0['cubic-to']['bind'](_r115_t0); + r115_xn$putshapes$9Jrj = _r115_t0['put-shapes']['bind'](_r115_t0); + r115_xn$reverselast$3qIs = _r115_t0['reverse-last']['bind'](_r115_t0); + r115_xn$includeglyph$3qIs = _r115_t0['include-glyph']['bind'](_r115_t0); + r115_xn$createstroke$7Hrq = _r115_t0['create-stroke']['bind'](_r115_t0); + _r115_t0['gizmo'] = r0_globalTransform; + _r115_t0['set-width'](r0_WIDTH); + r115_xn$setwidth$9Jrj(r0_WIDTH); + r115_xn$assignunicode$7Hrq('x'); + r115_TURN = r0_XH * 0.1; + r115_barone = r115_xn$createstroke$7Hrq()['start-from'](r0_SB + r0_HALFSTROKE + r0_O, 0)['pen-direction'](r0_UPWARD)['set-width'](r0_HALFSTROKE, r0_HALFSTROKE)['cubic-to'](r0_SB + r0_HALFSTROKE + r0_O, r115_TURN + 0.17 * (r0_XH - r115_TURN), r0_RIGHTSB - r0_HALFSTROKE - r0_O, r0_XH - r115_TURN - 0.17 * (r0_XH - r115_TURN), r0_RIGHTSB - r0_HALFSTROKE - r0_O, r0_XH)['pen-direction'](r0_UPWARD); + r115_bartwo = r115_xn$createstroke$7Hrq()['start-from'](r0_RIGHTSB - r0_HALFSTROKE - r0_O, 0)['pen-direction'](r0_UPWARD)['set-width'](r0_HALFSTROKE, r0_HALFSTROKE)['cubic-to'](r0_RIGHTSB - r0_HALFSTROKE - r0_O, r115_TURN + 0.17 * (r0_XH - r115_TURN), r0_SB + r0_HALFSTROKE + r0_O, r0_XH - r115_TURN - 0.17 * (r0_XH - r115_TURN), r0_SB + r0_HALFSTROKE + r0_O, r0_XH)['pen-direction'](r0_UPWARD); + r115_xn$putshapes$9Jrj(r115_barone['form-stroke']()); + r115_xn$putshapes$9Jrj(r115_bartwo['form-stroke']()); + return void 0; + }); + r0_xn$createglyph$7Hrq('s', function _r0_t57() { + var r117_xn$setwidth$9Jrj, r117_xn$assignunicode$7Hrq, r117_xn$startfrom$1aao, r117_xn$lineto$5sIl, r117_xn$curveto$1aao, r117_xn$cubicto$1aao, r117_xn$putshapes$9Jrj, r117_xn$reverselast$3qIs, r117_xn$includeglyph$3qIs, r117_xn$createstroke$7Hrq, r117_slope, r117_expand, r117_coexpand, r117_ssmootha, r117_bowltop, r117_strokemiddle, r117_bowlbottom, _r117_t0; + _r117_t0 = this; + r117_xn$setwidth$9Jrj = _r117_t0['set-width']['bind'](_r117_t0); + r117_xn$assignunicode$7Hrq = _r117_t0['assign-unicode']['bind'](_r117_t0); + r117_xn$startfrom$1aao = _r117_t0['start-from']['bind'](_r117_t0); + r117_xn$lineto$5sIl = _r117_t0['line-to']['bind'](_r117_t0); + r117_xn$curveto$1aao = _r117_t0['curve-to']['bind'](_r117_t0); + r117_xn$cubicto$1aao = _r117_t0['cubic-to']['bind'](_r117_t0); + r117_xn$putshapes$9Jrj = _r117_t0['put-shapes']['bind'](_r117_t0); + r117_xn$reverselast$3qIs = _r117_t0['reverse-last']['bind'](_r117_t0); + r117_xn$includeglyph$3qIs = _r117_t0['include-glyph']['bind'](_r117_t0); + r117_xn$createstroke$7Hrq = _r117_t0['create-stroke']['bind'](_r117_t0); + _r117_t0['gizmo'] = r0_globalTransform; + _r117_t0['set-width'](r0_WIDTH); + r117_xn$setwidth$9Jrj(r0_WIDTH); + r117_xn$assignunicode$7Hrq('s'); + r117_slope = 0.015; + r117_expand = 0.175; + r117_coexpand = (1 - r117_expand) / 2; + r117_ssmootha = r0_SMOOTHA * 0.87; + r117_bowltop = r117_xn$createstroke$7Hrq(); + r117_bowltop['start-from'](r0_RIGHTSB - r0_OXHOOK, r0_XH - r0_SHOOK)['set-width'](r0_STROKE, 0)['curve-to'](r0_MIDDLE + r0_KAPPA_AHOOK * (r0_MIDDLE - r0_para['sb']), r0_XO, r0_MIDDLE, r0_XO)['pen-direction'](r0_LEFTWARD)['arc-hv-to'](r0_SB, r0_XH - r117_ssmootha); + r117_strokemiddle = r117_xn$createstroke$7Hrq(); + r117_strokemiddle['start-from'](r0_SB + r0_STROKE / 2, r0_XH - r117_ssmootha)['set-width'](r0_STROKE / 2, r0_STROKE / 2)['curve-to'](r0_SB + r0_STROKE / 2, (0.5 + r117_slope) * r0_XH + 2 * r117_slope * r0_XH / (r117_expand * r0_WIDTH) * (r117_coexpand * r0_WIDTH - r0_SB - r0_STROKE / 2), r117_coexpand * r0_WIDTH, (0.5 + r117_slope) * r0_XH)['line-to']((1 - r117_coexpand) * r0_WIDTH, (0.5 - r117_slope) * r0_XH)['curve-to'](r0_RIGHTSB - r0_STROKE / 2, (0.5 - r117_slope) * r0_XH - 2 * r117_slope * r0_XH / (r117_expand * r0_WIDTH) * (r117_coexpand * r0_WIDTH - r0_SB - r0_STROKE / 2), r0_RIGHTSB - r0_STROKE / 2, r117_ssmootha); + r117_bowlbottom = r117_xn$createstroke$7Hrq(); + r117_bowlbottom['start-from'](r0_RIGHTSB, r117_ssmootha)['set-width'](0, r0_STROKE)['arc-vh-to'](r0_MIDDLE, r0_O)['pen-direction'](r0_LEFTWARD)['curve-to'](r0_MIDDLE - r0_KAPPA_AHOOK * (r0_MIDDLE - r0_para['sb']), r0_O, r0_SB + r0_OXHOOK, r0_SHOOK); + r117_xn$putshapes$9Jrj(r117_bowltop['form-stroke']()); + r117_xn$putshapes$9Jrj(r117_strokemiddle['form-stroke']()); + r117_xn$putshapes$9Jrj(r117_bowlbottom['form-stroke']()); return void 0; }); exports['font'] = r0_font; diff --git a/font.patel b/font.patel index 5212aa9..9b3d681 100644 --- a/font.patel +++ b/font.patel @@ -8,8 +8,8 @@ define Stroke [require './support/stroke'].Stroke define para ( .width 500 - .stroke 120 - .dotsize 100 + .stroke 80 + .dotsize 125 .sb 50 .cap 771 .xheight 560 @@ -26,6 +26,8 @@ define para ( .italicangle 10 .barpos 0.44 .gbarpos 0.37 + .longserif 175 + .accent 175 ) define variantSelector ( @@ -63,6 +65,8 @@ define STROKE para.stroke define DOTSIZE para.dotsize define BARPOS para.barpos define GBARPOS para.gbarpos +define LONGSERIF para.longserif +define ACCENT para.accent # derived metrics @@ -639,12 +643,12 @@ create-glyph 'o' : glyph-construction { :.start-from MIDDLE XO :.set-width STROKE 0 :.pen-direction LEFTWARD - :.arc-hv-to SB [XH - SMALLSMOOTHA] - :.line-to SB SMALLSMOOTHB + :.arc-hv-to [SB + O] [XH - SMALLSMOOTHA] + :.line-to [SB + O] SMALLSMOOTHB :.arc-vh-to MIDDLE O :.pen-direction RIGHTWARD - :.arc-hv-to RIGHTSB SMALLSMOOTHA - :.line-to RIGHTSB [XH - SMALLSMOOTHB] + :.arc-hv-to [RIGHTSB - O] SMALLSMOOTHA + :.line-to [RIGHTSB - O] [XH - SMALLSMOOTHB] :.arc-vh-to MIDDLE XO :.pen-direction LEFTWARD put-shapes : outline.form-stroke @@ -656,8 +660,8 @@ create-glyph 'o.left' : glyph-construction { :.start-from MIDDLE XO :.pen-direction RIGHTWARD :.set-width 0 STROKE - :.arc-hv-to RIGHTSB [XH - SMALLSMOOTHB] - :.line-to RIGHTSB SMALLSMOOTHA + :.arc-hv-to [RIGHTSB - O] [XH - SMALLSMOOTHB] + :.line-to [RIGHTSB - O] SMALLSMOOTHA :.arc-vh-to MIDDLE O :.pen-direction LEFTWARD :.form-stroke @@ -666,9 +670,9 @@ create-glyph 'o.left' : glyph-construction { :.start-from MIDDLE [O + STROKE] :.pen-direction LEFTWARD :.set-width STROKE 0 - :.arc-hv-to [SB + STROKE] [SMALLSMOOTHB - STROKE * 0.05] + :.arc-hv-to [SB + STROKE] [SMALLSMOOTHB - STROKE * 0.05] :.set-width HALFSTROKE 0 - :.line-to [SB + STROKE] [XH - SMALLSMOOTHA + STROKE * 0.05] + :.line-to [SB + STROKE] [XH - SMALLSMOOTHA + STROKE * 0.05] :.set-width HALFSTROKE 0 :.arc-vh-to MIDDLE [XO - STROKE] :.set-width STROKE 0 @@ -682,8 +686,8 @@ create-glyph 'o.right' : glyph-construction { :.start-from MIDDLE XO :.pen-direction LEFTWARD :.set-width STROKE 0 - :.arc-hv-to SB [XH - SMALLSMOOTHA] - :.line-to SB SMALLSMOOTHB + :.arc-hv-to [SB + O] [XH - SMALLSMOOTHA] + :.line-to [SB + O] SMALLSMOOTHB :.arc-vh-to MIDDLE O :.pen-direction RIGHTWARD :.form-stroke @@ -785,8 +789,8 @@ create-glyph 'c' : glyph-construction { outline.start-from [RIGHTSB - OXHOOK] [XH - HOOK] :.curve-to [MIDDLE + KAPPA_HOOK * [MIDDLE - para.sb]] XO MIDDLE XO :.pen-direction LEFTWARD - :.arc-hv-to SB [XH - SMALLSMOOTHA] - :.line-to SB SMALLSMOOTHB + :.arc-hv-to [SB + O] [XH - SMALLSMOOTHA] + :.line-to [SB + O] SMALLSMOOTHB :.arc-vh-to MIDDLE O :.pen-direction RIGHTWARD :.curve-to [MIDDLE + KAPPA_HOOK * [MIDDLE - SB]] O [RIGHTSB - OXHOOK] HOOK @@ -799,14 +803,14 @@ create-glyph 'e' : glyph-construction { local barbottom [XH * BARPOS] local outline : create-stroke - :.start-from RIGHTSB barbottom + :.start-from [RIGHTSB - O] barbottom :.pen-direction UPWARD :.set-width STROKE 0 - :.line-to RIGHTSB [XH - SMALLSMOOTHB] + :.line-to [RIGHTSB - O] [XH - SMALLSMOOTHB] :.arc-vh-to MIDDLE XO :.pen-direction LEFTWARD - :.arc-hv-to SB [XH - SMALLSMOOTHA] - :.line-to SB SMALLSMOOTHB + :.arc-hv-to [SB + O] [XH - SMALLSMOOTHA] + :.line-to [SB + O] SMALLSMOOTHB :.arc-vh-to MIDDLE O :.pen-direction RIGHTWARD :.curve-to [MIDDLE + KAPPA_HOOK * [MIDDLE - SB]] O [RIGHTSB - OXHOOK] HOOK @@ -839,7 +843,7 @@ create-glyph 'a.upright' : glyph-construction { :.start-from [WIDTH * 0.47] O :.set-width 0 STROKE :.pen-direction LEFTWARD - :.arc-hv-to SB [bartop * 0.45] + :.arc-hv-to [SB + O] [bartop * 0.45] :.arc-vh-to [WIDTH * 0.6] bartop :.line-to RIGHTSB bartop :.pen-direction RIGHTWARD @@ -901,6 +905,121 @@ create-glyph 'u' : glyph-construction { :.form-stroke } +### i l +create-glyph 'dotlessi.straight' : glyph-construction { + put-shapes : create-stroke + :.start-from MIDDLE 0 + :.pen-direction UPWARD + :.set-width HALFSTROKE HALFSTROKE + :.line-to MIDDLE XH + :.pen-direction UPWARD + :.form-stroke +} +create-glyph 'dotlessi.hooky' : glyph-construction { + include-glyph glyphs.'dotlessi.straight' + put-shapes : create-stroke + :.start-from [MIDDLE + HALFSTROKE] XH + :.pen-direction LEFTWARD + :.set-width STROKE 0 + :.line-to [MIDDLE - LONGSERIF] XH + :.pen-direction LEFTWARD + :.form-stroke +} +create-glyph 'dotlessi.zshaped' : glyph-construction { + include-glyph glyphs.'dotlessi.hooky' + put-shapes : create-stroke + :.start-from [MIDDLE - HALFSTROKE] 0 + :.pen-direction RIGHTWARD + :.set-width STROKE 0 + :.line-to [MIDDLE + LONGSERIF] 0 + :.pen-direction RIGHTWARD + :.form-stroke +} +create-glyph 'dotlessi.serifed' : glyph-construction { + include-glyph glyphs.'dotlessi.zshaped' + put-shapes : create-stroke + :.start-from [MIDDLE + HALFSTROKE] 0 + :.pen-direction LEFTWARD + :.set-width 0 STROKE + :.line-to [MIDDLE - LONGSERIF] 0 + :.pen-direction LEFTWARD + :.form-stroke +} +create-glyph 'dotlessi' : glyph-construction { + set-width WIDTH + assign-unicode 0x131 + include-glyph glyphs.[match variantSelector.zero { + 'straight' 'dotlessi.straight' + 'hooky' 'dotlessi.hooky' + 'zshaped' 'dotlessi.zshaped' + 'serifed' 'dotlessi.serifed' + otherwise 'dotlessi.zshaped' + }] +} +create-glyph 'dotaccent' : glyph-construction { + set-width WIDTH + put-shapes : list { + Ring [XH + ACCENT + DOTRADIUS] [XH + ACCENT - DOTRADIUS] [MIDDLE - DOTRADIUS] [MIDDLE + DOTRADIUS] + } +} +create-glyph 'i' : glyph-construction { + set-width WIDTH + assign-unicode 'i' + include-glyph glyphs.dotlessi + include-glyph glyphs.dotaccent +} + +create-glyph 'l.straight' : glyph-construction { + put-shapes : create-stroke + :.start-from MIDDLE 0 + :.pen-direction UPWARD + :.set-width HALFSTROKE HALFSTROKE + :.line-to MIDDLE CAP + :.pen-direction UPWARD + :.form-stroke +} +create-glyph 'l.hooky' : glyph-construction { + include-glyph glyphs.'l.straight' + put-shapes : create-stroke + :.start-from [MIDDLE + HALFSTROKE] CAP + :.pen-direction LEFTWARD + :.set-width STROKE 0 + :.line-to [MIDDLE - LONGSERIF] CAP + :.pen-direction LEFTWARD + :.form-stroke +} +create-glyph 'l.zshaped' : glyph-construction { + include-glyph glyphs.'l.hooky' + put-shapes : create-stroke + :.start-from [MIDDLE - HALFSTROKE] 0 + :.pen-direction RIGHTWARD + :.set-width STROKE 0 + :.line-to [MIDDLE + LONGSERIF] 0 + :.pen-direction RIGHTWARD + :.form-stroke +} +create-glyph 'l.serifed' : glyph-construction { + include-glyph glyphs.'l.zshaped' + put-shapes : create-stroke + :.start-from [MIDDLE + HALFSTROKE] 0 + :.pen-direction LEFTWARD + :.set-width 0 STROKE + :.line-to [MIDDLE - LONGSERIF] 0 + :.pen-direction LEFTWARD + :.form-stroke +} +create-glyph 'l' : glyph-construction { + set-width WIDTH + assign-unicode 'l' + include-glyph glyphs.[match variantSelector.zero { + 'straight' 'l.straight' + 'hooky' 'l.hooky' + 'zshaped' 'l.zshaped' + 'serifed' 'l.serifed' + otherwise 'l.zshaped' + }] +} + ### x create-glyph 'x' : glyph-construction { set-width WIDTH @@ -909,17 +1028,17 @@ create-glyph 'x' : glyph-construction { local TURN [XH * 0.1] local barone : create-stroke - :.start-from [SB + HALFSTROKE] 0 + :.start-from [SB + HALFSTROKE + O] 0 :.pen-direction UPWARD :.set-width HALFSTROKE HALFSTROKE - :.cubic-to [SB + HALFSTROKE] [TURN + 0.17 * [XH - TURN]] [RIGHTSB - HALFSTROKE] [XH - TURN - 0.17 * [XH - TURN]] [RIGHTSB - HALFSTROKE] XH + :.cubic-to [SB + HALFSTROKE + O] [TURN + 0.17 * [XH - TURN]] [RIGHTSB - HALFSTROKE - O] [XH - TURN - 0.17 * [XH - TURN]] [RIGHTSB - HALFSTROKE - O] XH :.pen-direction UPWARD local bartwo : create-stroke - :.start-from [RIGHTSB - HALFSTROKE] 0 + :.start-from [RIGHTSB - HALFSTROKE - O] 0 :.pen-direction UPWARD :.set-width HALFSTROKE HALFSTROKE - :.cubic-to [RIGHTSB - HALFSTROKE] [TURN + 0.17 * [XH - TURN]] [SB + HALFSTROKE] [XH - TURN - 0.17 * [XH - TURN]] [SB + HALFSTROKE] XH + :.cubic-to [RIGHTSB - HALFSTROKE - O] [TURN + 0.17 * [XH - TURN]] [SB + HALFSTROKE + O] [XH - TURN - 0.17 * [XH - TURN]] [SB + HALFSTROKE + O] XH :.pen-direction UPWARD put-shapes : barone.form-stroke diff --git a/support/glyph.js b/support/glyph.js index ee5640d..9741142 100644 --- a/support/glyph.js +++ b/support/glyph.js @@ -35,9 +35,20 @@ return _r2_t0; }; r0_Glyph['prototype']['assign-unicode'] = function _r0_t2(r3_u) { - var r3_u, _r3_t0; + var r3_u, _r3_t0, _r3_t1, _r3_t2, _r3_t3, _r3_t4; _r3_t0 = this; - _r3_t0['unicode']['push'](r3_u['charCodeAt'](0)); + _r3_t1 = _r3_t0['unicode']; + _r3_t2 = _r3_t1['push']; + if (typeof r3_u === 'string') + _r3_t3 = r3_u['charCodeAt'](0); + else { + if (true) + _r3_t4 = r3_u; + else + _r3_t4 = void 0; + _r3_t3 = _r3_t4; + } + _r3_t2['call'](_r3_t1, _r3_t3); return _r3_t0; }; r0_Glyph['prototype']['start-from'] = function _r0_t3(r4_x, r4_y) { diff --git a/support/glyph.patel b/support/glyph.patel index 72bfc05..cc6fe92 100644 --- a/support/glyph.patel +++ b/support/glyph.patel @@ -31,7 +31,10 @@ define [Glyph.prototype.set-width w] : begin { return this } define [Glyph.prototype.assign-unicode u] : begin { - this.unicode.push [u.charCodeAt 0] + this.unicode.push : piecewise { + [[typeof u] === 'string'] : u.charCodeAt 0 + true u + } return this }