{-# OPTIONS_GHC -Wno-missing-signatures -Wno-name-shadowing #-} module Glyphs (Glyph (..), Segs (..), Piece, doGlyphs, withSize, charHeight', lineHeight', spaceWidth', gap', charHeight, lineHeight, spaceWidth, gap, initials, finals, vowels, medials, num, numbers, punctuation, wave) where import Data.Map (Map) import qualified Data.Map.Strict as Map import GlyphsBase type Piece = (Glyph, [Segs]) initials :: Map Text Glyph initials = Map.fromList $ tGlyphs <> kGlyphs <> ƶGlyphs <> sGlyphs <> šGlyphs <> lGlyphs <> mGlyphs <> nGlyphs <> rGlyphs <> pGlyphs <> bGlyphs <> čGlyphs <> hGlyphs <> fGlyphs <> [("g", g), ("d", d), ("ǧ", ǧ), ("w", w), ("j", j)] finals :: Map Text Glyph finals = Map.fromList $ [("t",t0), ("ƶ", ƶ0), ("s",s0), ("š",š0), ("l",l0), ("m",m0), ("n", n0), ("r", r0), ("f", f0)] medials :: Map Text Segs medials = Map.fromList $ [("a", da), ("á", dá), ("i", di), ("í", dí), ("u", du), ("ú", dú), ("ai", dai), ("au", dau), ("ia", dia), ("ua", dua), ("ḿ", dḿ), ("ń", dń), ("ł", dł), ("ŕ", dŕ)] vowels :: Map Text Glyph vowels = Map.fromList vGlyphs tGlyphs = [("t",t), ("tt",tt), ("tk",tk), ("tg",tg), ("td",td), ("tƶ",tƶ), ("tp",tp), ("tb",tb), ("ts",ts), ("tš",tš), ("tl",tl), ("tm",tm), ("tn",tn), ("tr",tr), ("tč",tč), ("tǧ",tǧ), ("tw",tw), ("th",th), ("tf",tf), ("tj",tj)] t = G {path = tPath, width = 5} tt = G {path = ttPath, width = 6} tk = G {path = tkPath, width = 9} tg = G {path = tgPath, width = 9} td = G {path = tdPath, width = 9} tƶ = G {path = tƶPath, width = 9} tp = G {path = tpPath, width = 9} tb = G {path = tbPath, width = 10} ts = G {path = tsPath, width = 9} tš = G {path = tšPath, width = 9} tl = G {path = tlPath, width = 9} tm = G {path = tmPath, width = 10} tn = G {path = tnPath, width = 9} tr = G {path = trPath, width = 7} tč = G {path = tčPath, width = 9} tǧ = G {path = tǧPath, width = 10} tw = G {path = twPath, width = 10} th = G {path = thPath, width = 12} tf = G {path = tfPath, width = 10} tj = G {path = tjPath, width = 5} t0 = G {path = t0Path, width = 5} tPath = P [mA (1.5,0), lR (0,5), mA (0,0), lR (5,0), lR (0,5)] tPart ℓ = P [mA (2,0), lR (0,5), mA (0,0), lR (ℓ,0)] ttPath = P [mA (1,0), lR (0,5), mA (3,0), lR (0,5), mA (5,0), lR (0,5), mA (0,0), lR (7,0), lR (0,5)] tkPath = tPart 5 <> shiftX 5 kShort tgPath = tPart 5 <> shiftX 5 gShort tdPath = tPart 4 <> shiftX 4 dPath tƶPath = tdPath <> P [mA (6,-3), lR (3,0)] tpPath = P [mA (2,-3), lR (0,8), mA (0,-3), lR (5.5,0)] <> shiftX 4 pPath tbPath = tPart 6 <> shiftX 4 bPath tsPath = tPart 4 <> shiftX 4 sPath tšPath = tPart 4 <> shiftX 4 šPath tlPath = tPart 5 <> shiftX 4 lPath tmPath = tPart 4.5 <> shiftX 4 mPath tnPath = tPart 6 <> shiftX 4 nPath trPath = tPart 7 <> shiftX 4 rShort tčPath = tPart 3 <> shiftX 3 čFlat tǧPath = tPart 4 <> shiftX 5 ǧPath twPath = tPart 6 <> shiftX 4 wPath thPath = tPart 4 <> shiftX 4 hPath tfPath = tPart 4 <> shiftX 4 fPath tjPath = P [mA (2,0), lR (0,5), mA (0,0), lR (4,0), mA (0,-3), lR (5,0), lR (0,8)] t0Path = tPath <> P [mA (1.5,7), lR (3.5,0)] kGlyphs = [("k", k), ("kk", kk), ("ks", ks)] k = G {path = kPath, width = 5} kk = G {path = kkPath, width = 8} ks = G {path = ksPath, width = 9} kPath = P [mA (0,0), lR (0,5), sR (3,0) (5,-0.5), mA (5,-3), lR (0,8)] kShortPart = P [mA (0,0), lR (0,5), sR (2.6,0) (4,-0.5)] kShort = kShortPart <> P [mA (4,-3), lR (0,8)] kkPath = kShortPart <> shiftX 4 kShort ksPath = kShortPart <> shiftX 4 sPath g = G {path = gPath, width = 5} gPath = kPath <> P [mA (2,-3), lR (3,0), mA (5,5)] gShort = kShort <> P [mA (1.5,-3), lR (2.5,0), mA (4,5)] d = G {path = dPath, width = 5} dPath = dPart <> P [mA (5,-3), lR (0,8)] dPart = dBase <> dJoin dJoin = P [mA (2,5), cR (2,0) (3,-1) (3,-2)] dBase = P [mA (0,0), lR (3.5,0), cR (0,1.5) (-3.5,3.5) (-3.5,5), lR (2,0)] dFree = dBase <> P [mA (2,5), lR (1.5,0)] dLong = dFree <> shiftX 1.5 dJoin ƶGlyphs = [("ƶ",ƶ), ("ƶt",ƶt), ("ƶk",ƶk), ("ƶg",ƶg), ("ƶd",ƶd), ("ƶƶ",ƶƶ), ("ƶp",ƶp), ("ƶb",ƶb), ("ƶs",ƶs), ("ƶš",ƶš), ("ƶl",ƶl), ("ƶm",ƶm), ("ƶn",ƶn), ("ƶr",ƶr), ("ƶč",ƶč), ("ƶǧ",ƶǧ), ("ƶw",ƶw), ("ƶh",ƶh), ("ƶf",ƶf), ("ƶj",ƶj)] ƶ = G {path = ƶPath, width = 5} ƶt = G {path = ƶtPath, width = 10} ƶk = G {path = ƶkPath, width = 9} ƶg = G {path = ƶgPath, width = 9} ƶd = G {path = ƶdPath, width = 10} ƶƶ = G {path = ƶƶPath, width = 10} ƶp = G {path = ƶpPath, width = 10} ƶb = G {path = ƶbPath, width = 11} ƶs = G {path = ƶsPath, width = 10} ƶš = G {path = ƶšPath, width = 10} ƶl = G {path = ƶlPath, width = 10} ƶm = G {path = ƶmPath, width = 11} ƶn = G {path = ƶnPath, width = 10} ƶr = G {path = ƶrPath, width = 10} ƶč = G {path = ƶčPath, width = 10} ƶǧ = G {path = ƶǧPath, width = 10} ƶw = G {path = ƶwPath, width = 11} ƶh = G {path = ƶhPath, width = 13} ƶf = G {path = ƶfPath, width = 11} ƶj = G {path = ƶjPath, width = 7} ƶ0 = G {path = ƶ0Path, width = 3.5} ƶPath = dPath <> P [mA (1,-3), lR (4,0), mA (5,5)] ƶtPath = dLong <> shiftX 5 tPath ƶkPath = dPart <> shiftX 5 kShort ƶgPath = dPart <> shiftX 5 gShort ƶdPath = dFree <> shiftX 5 dPath <> P [mA (1,-2), lR (2,0)] ƶƶPath = dFree <> shiftX 5 ƶPath ƶpPath = dFree <> shiftX 5 pPath ƶbPath = dPart <> shiftX 5 bPath ƶsPath = dPart <> shiftX 5 sPath ƶšPath = dPart <> shiftX 5 šPath ƶlPath = dPart <> shiftX 5 lPath ƶmPath = dPart <> shiftX 5 mPath ƶnPath = dPart <> shiftX 5 nPath ƶrPath = dPart <> shiftX 5 rCursive ƶčPath = dFree <> shiftX 5 čPath ƶǧPath = dFree <> shiftX 5 ǧPath ƶwPath = dPart <> shiftX 5 wPath ƶhPath = dPart <> shiftX 5 hPath ƶfPath = dFree <> shiftX 4 fPath ƶjPath = dFree <> shiftX 4 fPath ƶ0Path = dFree <> P [mA (0,7), lR (3.5,0)] pGlyphs = [("p", p), ("pp", pp), ("ps", ps), ("pj", pj)] p = G {path = pPath, width = 5} pp = G {path = ppPath, width = 8} ps = G {path = psPath, width = 10} pj = G {path = pjPath, width = 9} pPath = P [mA (1.5,-3), lR (0,8), sR (-1.5,-3) (-1.5,-5), lR (5,0), lR (0,5)] ppPath = P [mA (1.5,-3), lR (0,8), sR (-1.5,-3) (-1.5,-5), mA (4,-3), lR (0,8), mA (0,0), lR (8,0), lR (0,5)] psPath = P [mA (1.5,-3), lR (0,8), sR (-1.5,-3) (-1.5,-5), lR (5,0)] <> shiftX 5 sPath pjPath = pPath <> P [mA (5,0), lR (4,0), lR (0,5)] bGlyphs = [("b", b), ("bj", bj)] b = G {path = bPath, width = 6} bj = G {path = bjPath, width = 9} bPath = wPart <> P [mA (2,-3), lR (4,0), lR (0,8)] bjPath = bPath <> P [mA (6,-3), lR (3,0), lR (0,8)] sGlyphs = [("s",s), ("st",st), ("sk",sk), ("sg",sg), ("sd",sd), ("sƶ",sƶ), ("sp",sp), ("sb",sb), ("ss",ss), ("sš",sš), ("sl",sl), ("sm",sm), ("sn",sn), ("sr",sr), ("sč",sč), ("sǧ",sǧ), ("sw",sw), ("sh",sh), ("sf",sf), ("sj",sj)] s = G {path = sPath, width = 5} st = G {path = stPath, width = 9} sk = G {path = skPath, width = 9} sg = G {path = sgPath, width = 9} sd = G {path = sdPath, width = 9} sƶ = G {path = sƶPath, width = 9} sp = G {path = spPath, width = 10} sb = G {path = sbPath, width = 10} ss = G {path = ssPath, width = 10} sš = G {path = sšPath, width = 10} sl = G {path = slPath, width = 10} sm = G {path = smPath, width = 11} sn = G {path = snPath, width = 10} sr = G {path = srPath, width = 9} sč = G {path = sčPath, width = 9} sǧ = G {path = sǧPath, width = 10} sw = G {path = swPath, width = 10} sh = G {path = shPath, width = 13} sf = G {path = sfPath, width = 10} sj = G {path = sjPath, width = 6} s0 = G {path = s0Path, width = 5} sPath = sPartLine <> P [mA (5,0), lR (0,5)] sPart = P [mA (0, 0), lR (0, 3.5), aR 1.5 1.5 0 Small CCW (3,0), lR (0,-3.5)] sPartLine = sPart <> P [mA (3,0), lR (2,0)] stPath = sPartLine <> shiftX 4 tPath skPath = sPartLine <> shiftX 5 kShort sgPath = sPartLine <> shiftX 5 gShort sdPath = sPart <> P [mA (3,0), lR (1,0)] <> shiftX 4 dPath sƶPath = sPart <> P [mA (3,0), lR (1,0)] <> shiftX 4 ƶPath spPath = sPart <> P [mA (3,0), lR (3.5,0)] <> shiftX 5 pPath sbPath = sPart <> shiftX 4 bPath <> P [mA (3,0), lR (0,-3), lR (3.5,0)] ssPath = sPartLine <> shiftX 5 sPath sšPath = sPartLine <> shiftX 5 šPath slPath = sPart <> P [mA (3,0), lR (3,0)] <> shiftX 5 lPath smPath = sPart <> P [mA (3,0), lR (2.5,0)] <> shiftX 5 mPath snPath = sPart <> P [mA (3,0), lR (4,0)] <> shiftX 5 nPath srPath = sPart <> P [mA (3,0), lR (4,0)] <> shiftX 4 rShort sčPath = sPart <> shiftX 3 čFlat sǧPath = sPart <> shiftX 4 ǧPath swPath = sPart <> P [mA (3,0), lR (3.5,0)] <> shiftX 4 wPath shPath = sPart <> shiftX 5 hPath sfPath = sPart <> shiftX 4 fPath sjPath = P [mA (0,0), lR (0,3.5), aR 1.5 1.5 0 Small CCW (3,0), lR (0,-1.5), mA (3,0), lR (3,0), lR (0,5), mA (3,2), lR (3,0)] s0Path = sPath <> P [mA (0.5,7), lR (4,0)] šGlyphs = [("š",š), ("št",št), ("šk",šk), ("šg",šg), ("šd",šd), ("šƶ",šƶ), ("šp",šp), ("šb",šb), ("šs",šs), ("šš",šš), ("šl",šl), ("šm",šm), ("šn",šn), ("šr",šr), ("šč",šč), ("šǧ",šǧ), ("šw",šw), ("šh",šh), ("šf",šf), ("šj",šj)] š = G {path = šPath, width = 5} šš = ss {path = ššPath} šp = sp {path = špPath} šb = sb {path = šbPath} št = s2š st šk = s2š sk šg = s2š sg šd = s2š sd šƶ = s2š sƶ šs = s2š ss šl = s2š sl šm = s2š sm šn = s2š sn šr = s2š sr šč = s2š sč šǧ = s2š sǧ šw = s2š sw šh = s2š sh šf = s2š sf šj = s2š sj š0 = s2š s0 šPath = sPath <> šLine <> P [mA (5,5)] šLine = P [mA (0.5,-1.5), lR (2,0)] ššPath = ssPath <> P [mA (1,-2), lR (7,0)] špPath = spPath <> P [mA (0,-3), lR (3,0)] šbPath = sPart <> šLine <> P [mA (3,0), lR (4,0)] <> shiftX 4 bPath s2š g@(G {path}) = g {path = path <> šLine} lGlyphs = [("l",l), ("lt",lt), ("lk",lk), ("lg",lg), ("ld",ld), ("lƶ",lƶ), ("lp",lp), ("lb",lb), ("ls",ls), ("lš",lš), ("lm",lm), ("ln",ln), ("lr",lr), ("lč",lč), ("lǧ",lǧ), ("lw",lw), ("lh",lh), ("lf",lf), ("lj",lj)] l = G {path = lPath, width = 5} lt = G {path = ltPath, width = 10} lk = G {path = lkPath, width = 9} lg = G {path = lgPath, width = 9} ld = G {path = ldPath, width = 10} lƶ = G {path = lƶPath, width = 10} lp = G {path = lpPath, width = 10} lb = G {path = lbPath, width = 11} ls = G {path = lsPath, width = 10} lš = G {path = lšPath, width = 10} lm = G {path = lmPath, width = 11} ln = G {path = lnPath, width = 10} lr = G {path = lrPath, width = 10} lč = G {path = lčPath, width = 10} lǧ = G {path = lǧPath, width = 10} lw = G {path = lwPath, width = 11} lh = G {path = lhPath, width = 13} lf = G {path = lfPath, width = 11} lj = G {path = ljPath, width = 6} l0 = G {path = l0Path, width = 4} lPath = lPart <> P [mA (4,4.5), lR (1,-0.7), mA (5,0), lR (0,5)] lBase = P [mA (4,0.5), cR (-2.25,-0.75) (-2.55,-0.5) (-2.75,-0.5), aR 1.25 1.25 0 Small CCW (0,2.5), lR (2,0), mR (-2,0), aR 1.25 1.25 0 Small CCW (0,2.5), lR (0.75,0)] lPart = lBase <> dJoin lPartFlat = lBaseFlat <> shiftX 1 dJoin lBaseFlat = P [mA (4,0), lR (-2.75,0), aR 1.25 1.25 0 Small CCW (0,2.5), lR (2,0), mR (-2,0), aR 1.25 1.25 0 Small CCW (0,2.5), lR (2,0)] lFree = P [mA (4,0.5), cR (-2.25,-0.75) (-2.55,-0.5) (-2.75,-0.5), aR 1.25 1.25 0 Small CCW (0,2.5), lR (2,0), mR (-2,0), aR 1.25 1.25 0 Small CCW (0,2.5), cR (0.2,0.25) (2.25,0) (2.75,-0.5)] lLong = lBase <> P [mA (2,5), lR (2,0)] <> shiftX 1.5 dJoin ltPath = lLong <> shiftX 5 tPath lkPath = lPart <> shiftX 5 kShort lgPath = lPart <> shiftX 5 gShort ldPath = lFree <> shiftX 5 dPath lƶPath = lFree <> shiftX 5 ƶPath lpPath = lFree <> shiftX 5 pPath lbPath = lPart <> shiftX 5 bPath lsPath = lPart <> shiftX 5 sPath lšPath = lPart <> shiftX 5 šPath lmPath = lPart <> shiftX 5 mPath lnPath = lPart <> shiftX 5 nPath lrPath = lPart <> shiftX 5 rCursive lčPath = lFree <> shiftX 5 čPath lǧPath = lFree <> shiftX 5 ǧPath lwPath = lPart <> shiftX 5 wPath lhPath = lPart <> shiftX 5 hPath lfPath = lFree <> shiftX 5 fPath ljPath = lPartFlat <> P [mA (4,0), lR (2,0), lR (0,5)] l0Path = lFree <> P [mA (0.25,7), lR (3.5,0)] mGlyphs = [("m",m), ("mt",mt), ("mk",mk), ("mg",mg), ("md",md), ("mƶ",mƶ), ("mp",mp), ("mb",mb), ("ms",ms), ("mš",mš), ("ml",ml), ("mm",mm), ("mn",mn), ("mr",mr), ("mč",mč), ("mǧ",mǧ), ("mw",mw), ("mh",mh), ("mf",mf), ("mj",mj)] m = G {path = mPath, width = 6} mt = G {path = mtPath, width = 10} mk = G {path = mkPath, width = 10} mg = G {path = mgPath, width = 10} md = G {path = mdPath, width = 12} mƶ = G {path = mƶPath, width = 12} mp = G {path = mpPath, width = 12} mb = G {path = mbPath, width = 12} ms = G {path = msPath, width = 11} mš = G {path = mšPath, width = 11} ml = G {path = mlPath, width = 11} mm = G {path = mmPath, width = 12} mn = G {path = mnPath, width = 11} mr = G {path = mrPath, width = 9} mč = G {path = mčPath, width = 12} mǧ = G {path = mǧPath, width = 12} mw = G {path = mwPath, width = 12} mh = G {path = mhPath, width = 14} mf = G {path = mfPath, width = 13} mj = G {path = mjPath, width = 9} m0 = G {path = m0Path, width = 6} mPath = mPart <> P [mA (6,0), lR (0,5)] mInit = P [mA (0.5,0), cR (-0.25,0.2) (-0.5,2.25) (-0.5,3.5)] mBump' = P [aR 1.5 1.5 0 Small CCW (3,0)] mBump = mBump' <> P [lR (0,-2), mR (0,2)] mPart = mInit <> mBump <> mBump' mLong = mInit <> mBump <> mBump' <> P [cR (2,0) (2,-1) (2,-2)] mtPath = mLong <> shiftX 5 tPath mkPath = mPart <> shiftX 6 kShort mgPath = mPart <> shiftX 6 gShort mdPath = ḿPath <> shiftX 7 dPath mƶPath = ḿPath <> shiftX 7 ƶPath mpPath = ḿPath <> shiftX 7 pPath mbPath = mPart <> shiftX 6 bPath msPath = mPart <> shiftX 6 sPath mšPath = mPart <> shiftX 6 šPath mlPath = mPart <> shiftX 6 lPath mmPath = mInit <> mBump <> mBump <> mBump <> mBump' <> P [mR (0,-3.5), lR (0,5)] mnPath = mPart <> shiftX 6 nPath mrPath = mInit <> mBump <> mBump <> mBump' <> P [mR (0,-6.5), lR (0,8)] mčPath = ḿPath <> shiftX 7 čPath mǧPath = ḿPath <> shiftX 7 ǧPath mwPath = mPart <> shiftX 6 wPath mhPath = mPart <> shiftX 6 hPath mfPath = ḿPath <> shiftX 7 fPath mjPath = ḿPath <> P [mA (5.5,0), lR (3.5,0), lR (0,5)] m0Path = ḿPath <> P [mA (0.5,7), lR (5,0)] nGlyphs = [("n", n), ("nt", nt), ("nk", nk), ("ng", ng), ("nd", nd), ("nƶ", nƶ), ("np", np), ("nb", nb), ("ns", ns), ("nš", nš), ("nl", nl), ("nm", nm), ("nn", nn), ("nr", nr), ("nč", nč), ("nǧ", nǧ), ("nw", nw), ("nh", nh), ("nf", nf), ("nj", nj)] n = G {path = nPath, width = 5} nt = G {path = ntPath, width = 10} nk = G {path = nkPath, width = 9} ng = G {path = ngPath, width = 9} nd = G {path = ndPath, width = 10} nƶ = G {path = nƶPath, width = 10} np = G {path = npPath, width = 9.5} nb = G {path = nbPath, width = 11} ns = G {path = nsPath, width = 10} nš = G {path = nšPath, width = 10} nl = G {path = nlPath, width = 10} nm = G {path = nmPath, width = 11} nn = G {path = nnPath, width = 10} nr = G {path = nrPath, width = 6} nč = G {path = nčPath, width = 10} nǧ = G {path = nǧPath, width = 9.5} nw = G {path = nwPath, width = 11} nh = G {path = nhPath, width = 13} nf = G {path = nfPath, width = 10.5} nj = G {path = njPath, width = 5} n0 = G {path = n0Path, width = 3.5} nPath = nPart <> P [mA (5,0), lR (0,5)] nPart = nPart' <> dJoin nPart' = P [mA (3.5,1.5), cR (0,-1) (-0.5,-1.5) (-1,-1.5), aR 2.5 2.5 0 Large CCW (0,5)] nLong = nPart' <> P [mA (2.5,5), lR (1.5,0)] <> shiftX 1.5 dJoin nFlat = P [mA (5,0), lR (-2.5,0), aR 2.5 2.5 0 Large CCW (0,5), cR (0.5,0) (1,-0.5) (1,-1.5)] ntPath = nLong <> shiftX 5 tPath nkPath = nFlat <> shiftX 5 kShort ngPath = nFlat <> shiftX 5 gShort ndPath = nFlat <> shiftX 5 dPath nƶPath = nFlat <> shiftX 5 ƶPath npPath = ńPath <> shiftX 4.5 pPath nbPath = nFlat <> P [mA (5,0), lR (2,0)] <> shiftX 5 bPath nsPath = nFlat <> shiftX 5 sPath nšPath = nFlat <> shiftX 5 šPath nlPath = nFlat <> P [mA (5,0), lR (1,0)] <> shiftX 5 lPath nmPath = nFlat <> P [mA (5,0), lR (0.5,0)] <> shiftX 5 mPath nnPath = nFlat <> P [mA (5,0), lR (2,0)] <> shiftX 5 nPath nrPath = nPart' <> P [mA (2.5,5), lR (0.5,0)] <> shiftX 3 rShort nčPath = nFlat <> shiftX 4 čFlat nǧPath = ńPath <> shiftX 4.5 ǧPath nwPath = nFlat <> P [mA (5,0), lR (2,0)] <> shiftX 5 wPath nhPath = nFlat <> shiftX 5 hPath nfPath = ńPath <> shiftX 4.5 fPath njPath = ńPath <> P [mA (1,-3), lR (4,0), lR (0,8)] n0Path = ńPath <> P [mA (0.5,7), lR (3,0)] rGlyphs = [("r", r), ("rt", rt), ("rk", rk), ("rg", rg), ("rd", rd), ("rƶ", rƶ), ("rp", rp), ("rb", rb), ("rs", rs), ("rš", rš), ("rl", rl), ("rm", rm), ("rr", rr), ("rč", rč), ("rǧ", rǧ), ("rw", rw), ("rh", rh), ("rf", rf), ("rj", rj)] r = G {path = rPath, width = 5} rt = G {path = rtPath, width = 7} rk = G {path = rkPath, width = 7} rg = G {path = rgPath, width = 7} rd = G {path = rdPath, width = 9.5} rƶ = G {path = rƶPath, width = 9.5} rp = G {path = rpPath, width = 9.5} rb = G {path = rbPath, width = 10.5} rs = G {path = rsPath, width = 9.5} rš = G {path = ršPath, width = 9.5} rl = G {path = rlPath, width = 9.5} rm = G {path = rmPath, width = 10.5} rr = G {path = rrPath, width = 6} rč = G {path = rčPath, width = 9.5} rǧ = G {path = rǧPath, width = 9.5} rw = G {path = rwPath, width = 10.5} rh = G {path = rhPath, width = 12.5} rf = G {path = rfPath, width = 10.5} rj = G {path = rjPath, width = 7.5} r0 = G {path = r0Path, width = 5} rPath = rPart <> P [mA (5,-3), lR (0,8)] rPart = P [mA (0,5), cR (3.5,0) (5,-1) (5,-2)] rPartCursive = P [mA (0,3), cR (0,1) (1,2) (3,2), cR (1,0) (2,-1) (2,-2)] rCursive = rPartCursive <> P [mA (5,-3), lR (0,8)] rPartMid = P [mA (0,5), cR (1.25,0) (3.5,-1) (3.5,-2)] rPartShort = P [mA (0,5), cR (1,0) (3,-1) (3,-2)] rShort = rPartShort <> P [mA (3,-3), lR (0,8)] rtPath = rPartMid <> shiftX 2 tPath rkPath = rPartShort <> shiftX 3 kShort rgPath = rPartShort <> shiftX 3 gShort rdPath = rMid <> shiftX 4.5 dPath rƶPath = rMid <> shiftX 4.5 ƶPath rpPath = rMid <> shiftX 4.5 pPath rbPath = rMid <> shiftX 4.5 bPath rsPath = rMid <> shiftX 4.5 sPath ršPath = rMid <> shiftX 4.5 šPath rlPath = rMid <> shiftX 4.5 lPath rmPath = rMid <> shiftX 4.5 mPath rrPath = rShort <> shiftX 3 rShort rčPath = rMid <> shiftX 4.5 čPath rǧPath = rMid <> shiftX 4.5 ǧPath rwPath = rMid <> shiftX 4.5 wPath rhPath = rMid <> shiftX 4.5 hPath rfPath = rMid <> shiftX 4.5 fPath rjPath = rMid <> P [mA (3.5,0), lR (4,0), lR (0,5)] rMid = rPartMid <> P [mA (3.5,0), lR (0,5)] r0Path = ŕPath <> P [mA (0.5,7), lR (4,0)] čGlyphs = [("č", č), ("čs", čs), ("čč", čč)] č = G {path = čPath, width = 5} čs = G {path = čsPath, width = 10} čč = G {path = ččPath, width = 10} čPath = čPart <> čJoin <> P [mA (5,0), lR (0,5)] čPart = P [mA (0,0.5), cR (2.25,-0.75) (2.55,-0.5) (2.75,-0.5)] <> čPart' čPart' = P [aR 1.25 1.25 0 Small CW (0,2.5), lR (-2,0), mR (2,0), aR 1.25 1.25 0 Small CW (0,2.5), cR (-0.2,0.25) (-2.25,0) (-2.75,-0.5)] -- FIXME? čJoin = P [mA (2.5,5), cR (1.5,0) (2.5,-0.5) (2.5,-1)] čPartFlat = P [mA (0,0), lR (3.5,0)] <> čPart' čFlat = čPartFlat <> shiftX 1 čJoin <> P [mA (6,0), lR (0,5)] čsPath = čPart <> shiftX 5 sPath ččPath = čPart <> shiftX 5 čPath ǧ = G {path = ǧPath, width = 5} ǧPath = ǧPart <> čJoin <> P [mA (5,-3), lR (0,8)] ǧPart = P [mA (0,-2), cR (2.25,-0.75) (2.55,-0.5) (2.75,-0.5), aR 1.25 1.25 0 Small CW (0,2.5), lR (-2,0), mR (2,0), aR 1.25 1.25 0 Small CW (0,2.5), lR (-2,0), mR (2,0), aR 1.25 1.25 0 Small CW (0,2.5), cR (-0.2,0.25) (-2.25,0) (-2.75,-0.5)] w = G {path = wPath, width = 6} wPath = wPart <> P [mA (6,0), lR (0,5)] wPart = P $ circA 2.5 (2.5,2.5) <> [mA (2.5,0), lR (3.5,0)] hGlyphs = [("h", h), ("hh", hh), ("hn", hn), ("hm", hm)] h = G {path = hPath, width = 8} hh = G {path = hhPath, width = 16} hn = G {path = hnPath, width = 14} hm = G {path = hmPath, width = 15} hPath = hPart <> P [mA (5,-3), lR (3,0), lR (0,8)] hPart = sPart <> P [mA (3,0), lR (1,0)] <> shiftX 4 sPart hhPath = hPart <> P [mA (7,0), lR (1,0)] <> shiftX 8 hPart <> P [mA (12,-3), lR (4,0), lR (0,8)] hnPath = hPath <> shiftX 9 nPath hmPath = hPath <> shiftX 9 mPath fGlyphs = [("f", f), ("fn", fn), ("fm", fm)] f = G {path = fPath, width = 6} fn = G {path = fnPath, width = 12} fm = G {path = fmPath, width = 12} f0 = G {path = f0Path, width = 6} fPath = fPart <> P [lR (0,2.5)] fPart = P [mA (3.5,2.5), lR (-1, 0), lR (0,2.5), aR 2.5 2.5 0 Large CW (0,-5), lR (1,0), aR 2.5 2.5 0 Small CW (2.5, 2.5)] fnPath = fPath <> shiftX 7 nPath fmPath = fPart <> P [lR (0,1)] <> mBump <> mBump' <> P [mA (12,0), lR (0,5)] f0Path = fPath <> P [mA (0.5,7), lR (5,0)] j = G {path = jPath, width = 5} jPath = P [mA (0,0), lR (5,0), lR (0,5)] vGlyphs = [("a", a), ("á", á), ("i", i), ("í", í), ("u", u), ("ú", ú), ("ai", ai), ("au", au), ("ia", ia), ("ua", ua), ("ḿ", ḿ), ("ń", ń), ("ł", ł), ("ŕ", ŕ)] a = G {path = aPath, width = 0} á = G {path = áPath, width = 3} i = j í = G {path = íPath, width = 5} u = G {path = uPath, width = 5} ú = G {path = úPath, width = 6} ai = G {path = aiPath, width = 5} au = G {path = auPath, width = 5} ia = G {path = iaPath, width = 5} ua = G {path = uaPath, width = 5} ḿ = G {path = ḿPath, width = 6} ń = G {path = ńPath, width = 3} ł = G {path = łPath, width = 4} ŕ = G {path = ŕPath, width = 5} aPath = P [mA (0,0), lR (5,0)] áPath = P [mA (0,0), lR (5,0), mA (3,0), lR (5,0)] íPath = P [mA (0,0), lR (3,0), lR (0,5), mR (0,-5), lR (2,0), lR (0,5)] uPath = P $ circA 2.5 (2.5,2.5) úPath = P $ ellipseA 1.5 2.5 (1.5,2.5) <> ellipseA 1.5 2.5 (4.5,2.5) aiPath = P [mA (0,0), lR (0,5), mR (2,-5), lR (3,0), lR (0,5), mA (2.5,7), lR (2,0)] auPath = P $ [mA (0,0), lR (0,5)] <> ellipseA 1.5 2.5 (3.5,2.5) <> [mA (2.5,7), lR (2,0)] iaPath = P [mA (0,0), lR (3,0), lR (0,5), mA (5,0), lR (0,5)] uaPath = P $ ellipseA 1.5 2.5 (1.5,2.5) <> [mA (5,0), lR (0,5)] ḿPath = P [mA (0.5,0), cR (-0.25,0.2) (-0.5,2.25) (-0.5,3.5), aR 1.5 1.5 0 Small CCW (3,0), lR (0,-2), mA (5.5,0), cR (0.25,0.2) (0.5,2.25) (0.5,3.5), aR 1.5 1.5 0 Small CW (-3,0)] ńPath = P [mA (3.5,1.5), cR (0,-1) (-0.5,-1.5) (-1,-1.5), aR 2.5 2.5 0 Large CCW (0,5), cR (0.5,0) (1,-0.5) (1,-1.5)] łPath = lFree ŕPath = rPart <> P [mA (5,0), lR (0,5)] adot = P . circR 0.2 da = P [lR (0,5)] dá = da <> adot (-3.5,-3) <> adot (2,0) di = da <> P [cR (1,-2) (3,-3) (0,-3)] dí = da <> P [cR (1,-2) (4,-3) (-4,-3)] du = da <> P [lR (-4,0)] dú = du <> P [mR (4,-3), lR (-3,0)] dai = da <> P [mR (-4,-3), lR (2.5,0), lR (0,3)] dau = da <> P (circR 1 (-2,-2)) <> P [mR (-1,0), lR (2,0)] dia = di <> adot (-1.5,0) dua = du <> adot (2,-2) dḿ = da <> P [mR (-4,-3), cR (-0.375,1.125) (-0.25,1.275) (-0.25,1.375), aR 0.625 0.625 0 Small CCW (1.5,0), lR (0,-1), mR (0,1), aR 0.625 0.625 0 Small CCW (1.5,0), cR (0.125,-0.1) (0,-1.125) (-0.25,-1.375)] dń = da <> P [mR (-3,-2.5), aR 1 1 0 Small CCW (0,2)] dł = da <> P [mR (-1.5,-3.5), cR (-1.125,-0.375) (-1.275,-0.25) (-1.375,-0.25), aR 0.625 0.625 0 Small CCW (0,1.5), lR (1,0), mR (-1,0), aR 0.625 0.625 0 Small CCW (0,1.5), cR (0.1,0.125) (1.125,0) (1.375,-0.25)] dŕ = da <> P [mR (-3,0), cR (1,0) (3,-1) (3,-2)] punctuation :: Map Text Glyph punctuation = Map.fromList [(".", eos), ("?", eos), ("!", eos), (",", eop), (":", eop), (";", eop)] eos = G {path = eosPath, width = 2} eosPath = P $ circA 1 (1,1) <> circA 1 (1,4) eop = G {path = eopPath, width = -2} eopPath = P $ circA 1 (-1,2.5) num = G {path = P [mA (0,0), lR (0,5)], width = 0} numbers = Map.fromList $ zip [0..9::Int] [u, t, n2, G dFree 3, n4, n5, ł, ḿ, ń, f] n2 = G n2Path 5 n2Path = P [mA (0,0), lR (0,5), sR (3,0) (5,-0.5), mA (5,0), lR (0,5)] n4 = G n4Path 5 n4Path = P [mA (1.5,0), lR (0,5), sR (-1.5,-3) (-1.5,-5), lR (5,0), lR (0,5)] n5 = G n5Path 4 n5Path = P [mA (0,0), lR (0,3.5), aR 1.5 1.5 0 Small CCW (1.5,1.5), lR (1,0), aR 1.5 1.5 0 Small CCW (1.5,-1.5), lR (0,-3.5)] wave :: Glyph wave = G {path = wavePath, width = 4} where wavePath = P [mA (0,2.5), cR (1.5,-2) (2.5,2) (4,0)]