From d79514afb3b86d31592bb3b92e9d9a10af2b05c6 Mon Sep 17 00:00:00 2001 From: nclslbrn Date: Thu, 16 May 2024 16:27:23 +0200 Subject: [PATCH] downscale move glyph to the bottom to fix diacritics on uppercase + cleaning --- src/diacritics/glyphs.ts | 552 ++ src/diacritics/mergeDiacritics.ts | 105 + src/diacritics/utility.ts | 36 + src/glyphs/diacritics.ts | 280 - src/glyphs/lowercase/base.ts | 2372 --------- src/glyphs/lowercase/index.ts | 20 - src/glyphs/mergeDia.ts | 112 - src/glyphs/uppercase/base.ts | 413 -- src/index.ts | 8 +- src/lowercase/base.ts | 4724 +++++++++++++++++ .../lowercase/diaBaseAssociation.ts | 4 +- src/{glyphs/uppercase => lowercase}/index.ts | 7 +- src/{glyphs => }/number.ts | 44 +- src/{glyphs => }/poncuation.ts | 0 src/uppercase/base.ts | 817 +++ .../uppercase/diaBaseAssociation.ts | 32 +- src/uppercase/index.ts | 29 + 17 files changed, 6314 insertions(+), 3241 deletions(-) create mode 100644 src/diacritics/glyphs.ts create mode 100644 src/diacritics/mergeDiacritics.ts create mode 100644 src/diacritics/utility.ts delete mode 100644 src/glyphs/diacritics.ts delete mode 100644 src/glyphs/lowercase/base.ts delete mode 100644 src/glyphs/lowercase/index.ts delete mode 100644 src/glyphs/mergeDia.ts delete mode 100644 src/glyphs/uppercase/base.ts create mode 100644 src/lowercase/base.ts rename src/{glyphs => }/lowercase/diaBaseAssociation.ts (98%) rename src/{glyphs/uppercase => lowercase}/index.ts (67%) rename src/{glyphs => }/number.ts (69%) rename src/{glyphs => }/poncuation.ts (100%) create mode 100644 src/uppercase/base.ts rename src/{glyphs => }/uppercase/diaBaseAssociation.ts (66%) create mode 100644 src/uppercase/index.ts diff --git a/src/diacritics/glyphs.ts b/src/diacritics/glyphs.ts new file mode 100644 index 0000000..d759c95 --- /dev/null +++ b/src/diacritics/glyphs.ts @@ -0,0 +1,552 @@ +import type { Font } from "../type"; +/* + * Create diacritic to create latin extended + * @url https://en.wikipedia.org/wiki/Latin_Extended_Additional + */ +const diacritics = { + // grave accent + gr: [ + [ + [0.45, 0.171], + [0.55, 0.207], + ], + ], + // acute accent + ct: [ + [ + [0.45, 0.207], + [0.55, 0.171], + ], + ], + // circumflex accent + cr: [ + [ + [0.4, 0.207], + [0.5, 0.171], + [0.6, 0.207], + ], + ], + // circumflex bottom + crb: [ + [ + [0.4, 0.807], + [0.5, 0.771], + [0.6, 0.807], + ], + ], + // diaeresis + dr: [ + [ + [0.4, 0.171], + [0.4, 0.189], + ], + [ + [0.6, 0.171], + [0.6, 0.189], + ], + ], + // diaeresis bottom + drb: [ + [ + [0.4, 0.736], + [0.4, 0.754], + ], + [ + [0.6, 0.736], + [0.6, 0.739], + ], + ], + // tild + tl: [ + [ + [0.4, 0.207], + [0.4, 0.171], + [0.6, 0.207], + [0.6, 0.171], + ], + ], + // tild bottom + tlb: [ + [ + [0.4, 0.807], + [0.4, 0.771], + [0.6, 0.807], + [0.6, 0.771], + ], + ], + // breve + br: [ + [ + [0.4, 0.171], + [0.4, 0.207], + [0.6, 0.207], + [0.6, 0.171], + ], + ], + // breve bottom + brb: [ + [ + [0.4, 0.771], + [0.4, 0.807], + [0.6, 0.807], + [0.6, 0.771], + ], + ], + // breve inverse + bri: [ + [ + [0.4, 0.207], + [0.4, 0.171], + [0.6, 0.171], + [0.6, 0.207], + ], + ], + // half circle right + hcr: [ + [ + [0.6, 0.171], + [0.7, 0.171], + [0.7, 0.243], + [0.6, 0.243], + ], + ], + // half circle + hc: [ + [ + [0.4, 0.171], + [0.5, 0.207], + [0.6, 0.171], + ], + ], + // macron + mc: [ + [ + [0.3, 0.171], + [0.7, 0.171], + ], + ], + // angstorm + gs: [ + [ + [0.45, 0.207], + [0.45, 0.171], + [0.55, 0.171], + [0.55, 0.207], + [0.45, 0.207], + ], + ], + // angstorm bottom + gsb: [ + [ + [0.45, 0.843], + [0.45, 0.807], + [0.55, 0.807], + [0.55, 0.843], + [0.45, 0.843], + ], + ], + // cedilla + cd: [ + [ + [0.5, 0.7], + [0.5, 0.736], + [0.55, 0.736], + [0.55, 0.771], + [0.45, 0.771], + ], + ], + // cedilla bottom left + cdl: [ + [ + [0.15, 0.7], + [0.15, 0.736], + [0.2, 0.736], + [0.2, 0.771], + [0.2, 0.771], + ], + ], + // cedilla bottom right + cdr: [ + [ + [0.85, 0.7], + [0.85, 0.736], + [0.9, 0.736], + [0.9, 0.771], + [0.7, 0.771], + ], + ], + // dot below + db: [ + [ + [0.5, 0.771], + [0.5, 0.789], + ], + ], + // dot above + da: [ + [ + [0.5, 0.171], + [0.5, 0.189], + ], + ], + // haček + ha: [ + [ + [0.45, 0.343], + [0.55, 0.343], + [0.55, 0.379], + [0.5, 0.379], + [0.5, 0.414], + ], + ], + // hook bottom right + hbr: [ + [ + [0.85, 0.7], + [0.85, 0.807], + [0.83, 0.829], + [0.7, 0.843], + ], + ], + // hook bottom left + hbl: [ + [ + [0.15, 0.7], + [0.15, 0.807], + [0.17, 0.829], + [0.2, 0.843], + ], + ], + // line below + lb: [ + [ + [0.3, 0.771], + [0.7, 0.771], + ], + ], + // horm + hr: [ + [ + [0.85, 0.486], + [0.9, 0.45], + [0.9, 0.343], + ], + ], + // cross + crs: [ + [ + [0.9, 0.343], + [0.87, 0.357], + [0.85, 0.379], + [0.85, 0.414], + ], + ], + // barrd + brd: [ + [ + [0.65, 0.271], + [0.35, 0.871], + ], + ], + // ogonek + gnk: [ + [ + [0.85, 0.7], + [0.75, 0.736], + [0.85, 0.771], + ], + ], + // ogonek middle + gnkc: [ + [ + [0.5, 0.7], + [0.475, 0.736], + [0.5, 0.764], + [0.55, 0.771], + ], + ], + // coma + cm: [ + [ + [0.5, 0.736], + [0.49, 0.764], + [0.45, 0.771], + ], + ], +} as Font; +/* +const diacritics = { + // grave accent + gr: [ + [ + [0.45, 0.1], + [0.55, 0.15], + ], + ], + // acute accent + ct: [ + [ + [0.45, 0.15], + [0.55, 0.1], + ], + ], + // circumflex accent + cr: [ + [ + [0.4, 0.15], + [0.5, 0.1], + [0.6, 0.15], + ], + ], + // circumflex below + crb: [ + [ + [0.4, 0.85], + [0.5, 0.8], + [0.6, 0.85], + ], + ], + // diaeresis + dr: [ + [ + [0.4, 0.1], + [0.4, 0.125], + ], + [ + [0.6, 0.1], + [0.6, 0.125], + ], + ], + // diaeresis below + drb: [ + [ + [0.4, 0.75], + [0.4, 0.775], + ], + [ + [0.6, 0.75], + [0.6, 0.755], + ], + ], + // tild + tl: [ + [ + [0.4, 0.15], + [0.4, 0.1], + [0.6, 0.15], + [0.6, 0.1], + ], + ], + // tild bottom + tlb: [ + [ + [0.4, 0.85], + [0.4, 0.8], + [0.6, 0.85], + [0.6, 0.8], + ], + ], + // breve + br: [ + [ + [0.4, 0.1], + [0.4, 0.15], + [0.6, 0.15], + [0.6, 0.1], + ], + ], + // breve below + brb: [ + [ + [0.4, 0.8], + [0.4, 0.85], + [0.6, 0.85], + [0.6, 0.8], + ], + ], + // inverse breve + bri: [ + [ + [0.4, 0.15], + [0.4, 0.1], + [0.6, 0.1], + [0.6, 0.15], + ], + ], + // half circle right + hcr: [ + [ + [0.6, 0.1], + [0.7, 0.1], + [0.7, 0.2], + [0.6, 0.2], + ], + ], + // haček + hc: [ + [ + [0.4, 0.1], + [0.5, 0.15], + [0.6, 0.1], + ], + ], + // macron + mc: [ + [ + [0.3, 0.1], + [0.7, 0.1], + ], + ], + // angstorm or circle or ring (top) + gs: [ + [ + [0.45, 0.15], + [0.45, 0.1], + [0.55, 0.1], + [0.55, 0.15], + [0.45, 0.15], + ], + ], + // angstorm or circle or ring (bottom) + gsb: [ + [ + [0.45, 0.9], + [0.45, 0.85], + [0.55, 0.85], + [0.55, 0.9], + [0.45, 0.9], + ], + ], + + // cedilla + cd: [ + [ + [0.5, 0.7], + [0.5, 0.75], + [0.55, 0.75], + [0.55, 0.8], + [0.45, 0.8], + ], + ], + // cedilla left + cdl: [ + [ + [0.15, 0.7], + [0.15, 0.75], + [0.2, 0.75], + [0.2, 0.8], + [0.2, 0.8], + ], + ], + // cedilla right + cdr: [ + [ + [0.85, 0.7], + [0.85, 0.75], + [0.9, 0.75], + [0.9, 0.8], + [0.7, 0.8], + ], + ], + // ring/dot below + db: [ + [ + [0.5, 0.8], + [0.5, 0.825], + ], + ], + // dot above + da: [ + [ + [0.5, 0.1], + [0.5, 0.125], + ], + ], + // hook above + ha: [ + [ + [0.45, 0.2], + [0.55, 0.2], + [0.55, 0.25], + [0.5, 0.25], + [0.5, 0.3], + ], + ], + // hook bottom right + hbr: [ + [ + [0.85, 0.7], + [0.85, 0.85], + [0.83, 0.88], + [0.7, 0.9], + ], + ], + // hook bottom left + hbl: [ + [ + [0.15, 0.7], + [0.15, 0.85], + [0.17, 0.88], + [0.2, 0.9], + ], + ], + // line below + lb: [ + [ + [0.3, 0.8], + [0.7, 0.8], + ], + ], + // horn + hr: [ + [ + [0.85, 0.4], + [0.9, 0.35], + [0.9, 0.2], + ], + ], + // cross (right) + crs: [ + [ + [0.9, 0.2], + [0.87, 0.22], + [0.85, 0.25], + [0.85, 0.3], + ], + ], + // barred (kind of /) + brd: [ + [ + [0.65, 0.1], + [0.35, 0.8], + ], + ], + // ogonek + gnk: [ + [ + [0.85, 0.7], + [0.75, 0.75], + [0.85, 0.8], + ], + ], + // ogonek middle + gnkc: [ + [ + [0.5, 0.7], + [0.475, 0.75], + [0.5, 0.79], + [0.55, 0.8], + ], + ], + // coma + cm: [ + [ + [0.5, 0.75], + [0.49, 0.79], + [0.45, 0.8], + ], + ], +} as Font; + + */ +export default diacritics; diff --git a/src/diacritics/mergeDiacritics.ts b/src/diacritics/mergeDiacritics.ts new file mode 100644 index 0000000..cf594f1 --- /dev/null +++ b/src/diacritics/mergeDiacritics.ts @@ -0,0 +1,105 @@ +import { Font, Glyph, DiaGroup } from "../type"; +import { topDiaCount, moveDia, joinVector } from "../diacritics/utility"; + +const mergeDiacritics = (diaKeys: DiaGroup, diacritics: Font): Glyph => { + // check if theres is two diacritics and + // both are situated on top of letter + const multipleTopDia = diaKeys.reduce( + (acc: number, dia: keyof Font) => (acc += topDiaCount(dia)), + 0, + ); + if (diaKeys.length > 1 && multipleTopDia > 1) { + // double grave move first one on left and second on right + if ( + diaKeys.reduce( + (ct: number, k: keyof Font) => (ct += k === "gr" ? 1 : 0), + 0, + ) > 1 + ) { + return joinVector( + diaKeys.filter((k) => k != "gr").map((k) => diacritics[k]), + [...moveDia.lf(diacritics["gr"]), ...moveDia.rg(diacritics["gr"])], + ); + } + + // double acute move first one on left and second on right + else if ( + diaKeys.reduce( + (ct: number, k: keyof Font) => (ct += k === "ct" ? 1 : 0), + 0, + ) > 1 + ) { + return joinVector( + diaKeys.filter((k) => k != "ct").map((k) => diacritics[k]), + [...moveDia.lf(diacritics["ct"]), ...moveDia.rg(diacritics["ct"])], + ); + } + + // move tild down + else if (diaKeys.includes("tl")) { + return joinVector( + diaKeys.filter((k) => k != "tl").map((k) => diacritics[k]), + moveDia.bt(diacritics["tl"]), + ); + } + + // move circumflex down + else if (diaKeys.includes("cr")) { + return joinVector( + diaKeys + .filter((k) => k != "cr") + .map((k) => (k == "ha" ? moveDia.tp(diacritics[k]) : diacritics[k])), + moveDia.bt(diacritics["cr"]), + ); + } + + // move breve down + else if (diaKeys.includes("br")) { + return joinVector( + diaKeys + .filter((k) => k != "br") + .map((k) => (k == "ha" ? moveDia.tp(diacritics[k]) : diacritics[k])), + moveDia.bt(diacritics["br"]), + ); + } + + // move hacek down + else if (diaKeys.includes("hc")) { + return joinVector( + diaKeys.filter((k) => k != "hc").map((k) => diacritics[k]), + moveDia.bt(diacritics["hc"]), + ); + } + + // move macron down + else if (diaKeys.includes("mc")) { + return joinVector( + diaKeys.filter((k) => k != "mc").map((k) => diacritics[k]), + moveDia.bt(diacritics["mc"]), + ); + } + + // move angstorm down + else if (diaKeys.includes("gs")) { + return joinVector( + diaKeys.filter((k) => k != "gs").map((k) => diacritics[k]), + moveDia.bt(diacritics["gs"]), + ); + } + + + else { + return diaKeys.reduce( + (acc: Glyph, k: keyof Font) => [...acc, ...diacritics[k]], + [] as Glyph, + ); + } + } else { + return diaKeys.reduce( + (acc: Glyph, k: keyof Font) => [...acc, ...diacritics[k]], + [] as Glyph, + ); + } +}; + +export { mergeDiacritics }; diff --git a/src/diacritics/utility.ts b/src/diacritics/utility.ts new file mode 100644 index 0000000..471a489 --- /dev/null +++ b/src/diacritics/utility.ts @@ -0,0 +1,36 @@ +import { Font, Glyph, Line, Vec } from "../type"; +// A list of top keys diactricts +// Use to detect and move diacritics +const topDia = [ + "gr", + "ct", + "cr", + "dr", + "tl", + "br", + "bri", + "hcr", + "mc", + "gs", + "da", + "ha", + "hc", +] as Array; + +const topDiaCount = (diaKey: keyof Font): number => + topDia.includes(diaKey) ? 1 : 0; + +const moveDia = { + tp: (g: Glyph) => g.map((l: Line) => l.map((p: Vec) => [p[0], p[1] - 0.14])), + bt: (g: Glyph) => g.map((l: Line) => l.map((p: Vec) => [p[0], p[1] + 0.1])), + lf: (g: Glyph) => g.map((l: Line) => l.map((p: Vec) => [p[0] - 0.125, p[1]])), + rg: (g: Glyph) => g.map((l: Line) => l.map((p: Vec) => [p[0] + 0.125, p[1]])), +}; + +const joinVector = (diaStack: Glyph[], movedDia: Glyph): Glyph => + diaStack.reduce( + (out: Glyph, curr: Glyph) => [...out, ...curr], + [...movedDia], + ); + +export { topDia, topDiaCount, moveDia, joinVector }; diff --git a/src/glyphs/diacritics.ts b/src/glyphs/diacritics.ts deleted file mode 100644 index efc01ce..0000000 --- a/src/glyphs/diacritics.ts +++ /dev/null @@ -1,280 +0,0 @@ -import type { Font } from "../type"; -/* - * Create diacritic to create latin extended - * @url https://en.wikipedia.org/wiki/Latin_Extended_Additional - */ -const diacritics = { - // grave accent - gr: [ - [ - [0.45, 0.1], - [0.55, 0.15], - ], - ], - // acute accent - ct: [ - [ - [0.45, 0.15], - [0.55, 0.1], - ], - ], - // circumflex accent - cr: [ - [ - [0.4, 0.15], - [0.5, 0.1], - [0.6, 0.15], - ], - ], - // circumflex below - crb: [ - [ - [0.4, 0.85], - [0.5, 0.8], - [0.6, 0.85], - ], - ], - // diaeresis - dr: [ - [ - [0.4, 0.1], - [0.4, 0.125], - ], - [ - [0.6, 0.1], - [0.6, 0.125], - ], - ], - // diaeresis below - drb: [ - [ - [0.4, 0.75], - [0.4, 0.775], - ], - [ - [0.6, 0.75], - [0.6, 0.755], - ], - ], - - // tild - tl: [ - [ - [0.4, 0.15], - [0.4, 0.1], - [0.6, 0.15], - [0.6, 0.1], - ], - ], - // tild bottom - tlb: [ - [ - [0.4, 0.85], - [0.4, 0.8], - [0.6, 0.85], - [0.6, 0.8], - ], - ], - // breve - br: [ - [ - [0.4, 0.1], - [0.4, 0.15], - [0.6, 0.15], - [0.6, 0.1], - ], - ], - // breve below - brb: [ - [ - [0.4, 0.8], - [0.4, 0.85], - [0.6, 0.85], - [0.6, 0.8] - ] - ], - // inverse breve - bri: [ - [ - [0.4, 0.15], - [0.4, 0.1], - [0.6, 0.1], - [0.6, 0.15], - ], - ], - // half circle right - hcr: [ - [ - [0.6, 0.1], - [0.7, 0.1], - [0.7, 0.2], - [0.6, 0.2], - ], - ], - // haček - hc: [ - [ - [0.4, 0.1], - [0.5, 0.15], - [0.6, 0.1], - ], - ], - // macron - mc: [ - [ - [0.3, 0.1], - [0.7, 0.1], - ], - ], - // angstorm or circle or ring (top) - gs: [ - [ - [0.45, 0.15], - [0.45, 0.1], - [0.55, 0.1], - [0.55, 0.15], - [0.45, 0.15], - ], - ], - // angstorm or circle or ring (bottom) - gsb: [ - [ - [0.45, 0.9], - [0.45, 0.85], - [0.55, 0.85], - [0.55, 0.9], - [0.45, 0.9], - ], - ], - - // cedilla - cd: [ - [ - [0.5, 0.7], - [0.5, 0.75], - [0.55, 0.75], - [0.55, 0.8], - [0.45, 0.8], - ], - ], - // cedilla left - cdl: [ - [ - [0.15, 0.7], - [0.15, 0.75], - [0.2, 0.75], - [0.2, 0.8], - [0.2, 0.8], - ], - ], - // cedilla right - cdr: [ - [ - [0.85, 0.7], - [0.85, 0.75], - [0.9, 0.75], - [0.9, 0.8], - [0.7, 0.8], - ], - ], - // ring/dot below - db: [ - [ - [0.5, 0.8], - [0.5, 0.825] - ], - ], - // dot above - da: [ - [ - [0.5, 0.1], - [0.5, 0.125] - ], - ], - // hook above - ha: [ - [ - [0.45, 0.2], - [0.55, 0.2], - [0.55, 0.25], - [0.5, 0.25], - [0.5, 0.3], - ], - ], - // hook bottom right - hbr: [ - [ - [0.85, 0.7], - [0.85, 0.85], - [0.83, 0.88], - [0.7, 0.9] - ] - ], - // hook bottom left - hbl: [ - [ - [0.15, 0.7], - [0.15, 0.85], - [0.17, 0.88], - [0.2, 0.9] - ] - ], - // line below - lb: [ - [ - [0.3, 0.8], - [0.7, 0.8], - ], - ], - // horn - hr: [ - [ - [0.85, 0.4], - [0.9, 0.35], - [0.9, 0.2], - ], - ], - // cross (right) - crs: [ - [ - [0.90, 0.2], - [0.87, 0.22], - [0.85, 0.25], - [0.85, 0.3], - ] , - ], - // barred (kind of /) - brd: [ - [ - [0.65, 0.1], - [0.35, 0.8], - ], - ], - // ogonek - gnk: [ - [ - [0.85, 0.7], - [0.75, 0.75], - [0.85, 0.8] - ] - ], - // ogonek middle - gnkc: [ - [ - [0.5, 0.7], - [0.475, 0.75], - [0.5, 0.79], - [0.55, 0.8] - ] - ], - // coma - cm: [ - [ - [0.5, 0.75], - [0.49, 0.79], - [0.45, 0.8], - ], - ], - } as Font; - -export default diacritics; diff --git a/src/glyphs/lowercase/base.ts b/src/glyphs/lowercase/base.ts deleted file mode 100644 index 5af3d26..0000000 --- a/src/glyphs/lowercase/base.ts +++ /dev/null @@ -1,2372 +0,0 @@ -import { type Font } from "../../type"; - -/* - * Base alphabet - */ -const base = { - a: [ - [ - [0.85, 0.5], - [0.15, 0.5], - [0.15, 0.7], - [0.85, 0.7], - ], - [ - [0.85, 0.725], - [0.85, 0.3], - [0.3, 0.3], - ], - ], - æ: [ - [ - [0.5, 0.3], - [0.85, 0.3], - [0.85, 0.5], - [0.15, 0.5], - [0.15, 0.7], - [0.5, 0.7], - [0.5, 0.3], - [0.15, 0.3], - ], - [ - [0.5, 0.7], - [0.85, 0.7], - ], - ], - ɐ: [ - [ - [0.15, 0.5], - [0.85, 0.5], - [0.85, 0.3], - [0.15, 0.3], - [0.15, 0.7], - [0.7, 0.7], - ], - ], - ɑ: [ - [ - [0.85, 0.5], - [0.15, 0.5], - [0.15, 0.7], - [0.85, 0.7], - ], - [ - [0.85, 0.725], - [0.85, 0.3], - ], - ], - ɒ: [ - [ - [0.15, 0.5], - [0.85, 0.5], - [0.85, 0.3], - [0.15, 0.3], - ], - [ - [0.15, 0.275], - [0.15, 0.7], - ], - ], - - b: [ - [ - [0.15, 0.1], - [0.15, 0.725], - ], - [ - [0.15, 0.7], - [0.85, 0.7], - [0.85, 0.3], - [0.15, 0.3], - ], - ], - ʙ: [ - [ - [0.55, 0.5], - [0.55, 0.35], - [0.35, 0.35], - [0.35, 0.65], - [0.65, 0.65], - [0.65, 0.5], - [0.35, 0.5], - ], - ], - ƀ: [ - [ - [0.15, 0.1], - [0.15, 0.725], - ], - [ - [0.15, 0.7], - [0.85, 0.7], - [0.85, 0.3], - [0.15, 0.3], - ], - [ - [0.05, 0.165], - [0.25, 0.165], - ], - ], - ɓ: [ - [ - [0.35, 0.1], - [0.15, 0.1], - [0.15, 0.725], - ], - [ - [0.15, 0.7], - [0.85, 0.7], - [0.85, 0.3], - [0.15, 0.3], - ], - ], - ƃ: [ - [ - [0.85, 0.1], - [0.15, 0.1], - [0.15, 0.725], - ], - [ - [0.15, 0.7], - [0.85, 0.7], - [0.85, 0.3], - [0.15, 0.3], - ], - ], - - c: [ - [ - [0.85, 0.3], - [0.15, 0.3], - [0.15, 0.7], - [0.85, 0.7], - ], - ], - ɕ: [ - [ - [0.85, 0.3], - [0.15, 0.3], - [0.15, 0.7], - [0.85, 0.7], - [0.5, 0.55], - [0.15, 0.75], - ], - ], - - d: [ - [ - [0.85, 0.1], - [0.85, 0.725], - ], - [ - [0.85, 0.7], - [0.15, 0.7], - [0.15, 0.3], - [0.85, 0.3], - ], - ], - đ: [ - [ - [0.85, 0.1], - [0.85, 0.725], - ], - [ - [0.85, 0.7], - [0.15, 0.7], - [0.15, 0.3], - [0.85, 0.3], - ], - [ - [0.75, 0.165], - [0.95, 0.165], - ], - ], - ð: [ - [ - [0.5, 0.1], - [0.85, 0.3], - [0.85, 0.725], - ], - [ - [0.85, 0.7], - [0.15, 0.7], - [0.15, 0.3], - [0.85, 0.3], - ], - [ - [0.5, 0.2], - [0.65, 0.1], - ], - ], - ȸ: [ - [ - [0.5, 0.1], - [0.5, 0.725], - ], - [ - [0.15, 0.3], - [0.85, 0.3], - [0.85, 0.7], - [0.15, 0.7], - [0.15, 0.3], - ], - ], - dz: [ - [ - [0.45, 0.1], - [0.45, 0.725], - ], - [ - [0.45, 0.7], - [0.15, 0.7], - [0.15, 0.3], - [0.45, 0.3], - ], - [ - [0.55, 0.3], - [0.85, 0.3], - [0.55, 0.7], - [0.85, 0.7], - ], - ], - ʣ: [ - [ - [0.5, 0.1], - [0.5, 0.725], - ], - [ - [0.5, 0.7], - [0.15, 0.7], - [0.15, 0.3], - [0.5, 0.3], - ], - [ - [0.5, 0.3], - [0.85, 0.3], - [0.5, 0.7], - [0.85, 0.7], - ], - ], - dž: [ - [ - [0.45, 0.1], - [0.45, 0.725], - ], - [ - [0.45, 0.7], - [0.15, 0.7], - [0.15, 0.3], - [0.45, 0.3], - ], - [ - [0.55, 0.3], - [0.85, 0.3], - [0.55, 0.7], - [0.85, 0.7], - ], - [ - [0.55, 0.1], - [0.7, 0.2], - [0.85, 0.1], - ], - ], - ʥ: [ - [ - [0.5, 0.1], - [0.5, 0.725], - ], - [ - [0.5, 0.7], - [0.15, 0.7], - [0.15, 0.3], - [0.5, 0.3], - ], - [ - [0.5, 0.3], - [0.85, 0.3], - [0.5, 0.7], - [0.85, 0.7], - [0.85, 0.6], - [0.65, 0.8], - ], - ], - ʤ: [ - [ - [0.5, 0.1], - [0.5, 0.725], - ], - [ - [0.5, 0.7], - [0.15, 0.7], - [0.15, 0.3], - [0.5, 0.3], - ], - [ - [0.5, 0.3], - [0.85, 0.3], - [0.55, 0.55], - [0.85, 0.7], - [0.7, 0.9], - [0.5, 0.8], - ], - ], - ɗ: [ - [ - [0.95, 0.1], - [0.91, 0.11], - [0.85, 0.15], - [0.85, 0.725], - ], - [ - [0.85, 0.7], - [0.15, 0.7], - [0.15, 0.3], - [0.85, 0.3], - ], - ], - ƌ: [ - [ - [0.15, 0.15], - [0.85, 0.15], - [0.85, 0.725], - ], - [ - [0.85, 0.7], - [0.15, 0.7], - [0.15, 0.3], - [0.85, 0.3], - ], - ], - ȡ: [ - [ - [0.65, 0.1], - [0.65, 0.725], - ], - [ - [0.65, 0.7], - [0.15, 0.7], - [0.15, 0.3], - [0.65, 0.3], - ], - [ - [0.5, 0.7], - [0.85, 0.7], - [0.85, 0.6], - [0.65, 0.8], - ], - ], - ẟ: [ - [ - [0.75, 0.1], - [0.25, 0.1], - [0.25, 0.3], - [0.75, 0.3], - [0.75, 0.7], - [0.25, 0.7], - [0.25, 0.5], - [0.75, 0.5], - ], - ], - - e: [ - [ - [0.15, 0.5], - [0.85, 0.5], - [0.85, 0.3], - [0.15, 0.3], - [0.15, 0.7], - [0.85, 0.7], - ], - ], - ə: [ - [ - [0.85, 0.5], - [0.15, 0.5], - [0.15, 0.7], - [0.85, 0.7], - [0.85, 0.3], - [0.15, 0.3], - ], - ], - ǝ: [ - [ - [0.75, 0.5], - [0.25, 0.5], - [0.25, 0.65], - [0.75, 0.65], - [0.75, 0.35], - [0.25, 0.35], - ], - ], - ɛ: [ - [ - [0.75, 0.3], - [0.25, 0.3], - [0.25, 0.7], - [0.75, 0.7] - ], - [ - [0.25, 0.5], - [0.75, 0.5] - ] - ], - ɘ: [ - [ - [0.85, 0.5], - [0.15, 0.5], - [0.15, 0.3], - [0.85, 0.3], - [0.85, 0.7], - [0.15, 0.7], - ], - ], - ɚ: [ - [ - [0.95, 0.5], - [0.9, 0.45], - [0.9, 0.4], - [0.15, 0.55], - [0.225, 0.8], - [0.85, 0.7], - [0.75, 0.3], - [0.25, 0.4], - ], - ], - ɜ: [ - [ - [0.15, 0.3], - [0.85, 0.3], - [0.85, 0.7], - [0.15, 0.7], - ], - [ - [0.5, 0.5], - [0.85, 0.5], - ], - ], - ɝ: [ - [ - [0.15, 0.3], - [0.7, 0.3], - [0.7, 0.7], - [0.15, 0.7], - ], - [ - [0.5, 0.5], - [0.73, 0.5], - ], - [ - [0.85, 0.5], - [0.8, 0.45], - [0.8, 0.4], - [0.7, 0.4], - ], - ], - ɞ: [ - [ - [0.2, 0.3], - [0.8, 0.3], - [0.8, 0.7], - [0.2, 0.7], - [0.2, 0.3], - ], - [ - [0.5, 0.5], - [0.8, 0.5], - ], - ], - ʚ: [ - [ - [0.2, 0.3], - [0.8, 0.3], - [0.8, 0.7], - [0.2, 0.7], - [0.2, 0.3], - ], - [ - [0.2, 0.5], - [0.5, 0.5], - ], - ], - ɤ: [ - [ - [0.15, 0.4], - [0.25, 0.3], - [0.65, 0.6], - [0.5, 0.7], - [0.35, 0.6], - [0.75, 0.3], - [0.85, 0.4], - ], - ], - - f: [ - [ - [0.15, 0.5], - [0.7, 0.5], - ], - [ - [0.3, 0.7], - [0.3, 0.2], - [0.85, 0.2], - ], - ], - ʩ: [ - [ - [0.15, 0.5], - [0.5, 0.5], - ], - [ - [0.25, 0.7], - [0.25, 0.2], - [0.5, 0.2], - ], - [ - [0.5, 0.475], - [0.5, 0.7], - ], - [ - [0.5, 0.5], - [0.85, 0.5], - [0.85, 0.8], - [0.825, 0.85], - [0.75, 0.9], - ], - ], - ƒ: [ - [ - [0.15, 0.35], - [0.7, 0.35], - ], - [ - [0.25, 0.825], - [0.3, 0.89], - [0.325, 0.9], - [0.35, 0.89], - [0.4, 0.825], - [0.4, 0.8], - [0.4, 0.2], - [0.85, 0.2], - ], - ], - - g: [ - [ - [0.85, 0.7], - [0.15, 0.7], - [0.15, 0.3], - [0.85, 0.3], - ], - [ - [0.85, 0.275], - [0.85, 0.9], - [0.5, 0.9], - ], - ], - ɡ: [ - [ - [0.885, 0.72], - [0.115, 0.72], - [0.115, 0.28], - [0.885, 0.28], - ], - [ - [0.885, 0.2525], - [0.885, 0.94], - [0.5, 0.94], - ], - ], - ɢ: [ - [ - [0.725, 0.3], - [0.265, 0.3], - [0.265, 0.628], - [0.725, 0.628], - [0.725, 0.5], - [0.5, 0.5], - ], - ], - ǥ: [ - [ - [0.75, 0.7], - [0.15, 0.7], - [0.15, 0.3], - [0.75, 0.3], - ], - [ - [0.75, 0.275], - [0.75, 0.9], - [0.5, 0.9], - ], - [ - [0.65, 0.8], - [0.85, 0.8], - ], - ], - ʛ: [ - [ - [0.8, 0.2], - [0.75, 0.225], - [0.725, 0.25], - [0.725, 0.3], - [0.265, 0.3], - [0.265, 0.628], - [0.725, 0.628], - [0.725, 0.5], - [0.5, 0.5], - ], - ], - ɣ: [ - [ - [0.35, 0.3], - [0.55, 0.8], - [0.5, 0.85], - [0.45, 0.8], - [0.65, 0.3], - ], - ], - ƣ: [ - [ - [0.15, 0.4], - [0.65, 0.4], - [0.65, 0.75], - [0.15, 0.75], - [0.15, 0.4], - ], - [ - [0.65, 0.4], - [0.75, 0.35], - [0.85, 0.4], - [0.85, 0.9], - ], - ], - - h: [ - [ - [0.15, 0.7], - [0.15, 0.1], - ], - [ - [0.125, 0.3], - [0.85, 0.3], - [0.85, 0.7], - ], - ], - ħ: [ - [ - [0.25, 0.7], - [0.25, 0.1], - ], - [ - [0.225, 0.3], - [0.85, 0.3], - [0.85, 0.7], - ], - [ - [0.15, 0.2], - [0.35, 0.2], - ], - ], - ʜ: [ - [ - [0.265, 0.3], - [0.265, 0.628], - ], - [ - [0.265, 0.5], - [0.73, 0.5], - ], - [ - [0.73, 0.3], - [0.73, 0.628], - ], - ], - ƕ: [ - [ - [0.15, 0.7], - [0.15, 0.1], - ], - [ - [0.125, 0.3], - [0.5, 0.3], - [0.5, 0.7], - [0.85, 0.7], - [0.85, 0.3], - ], - ], - ɦ: [ - [ - [0.15, 0.7], - [0.15, 0.2], - [0.16, 0.145], - [0.2, 0.1], - ], - [ - [0.125, 0.3], - [0.85, 0.3], - [0.85, 0.7], - ], - ], - ɧ: [ - [ - [0.15, 0.7], - [0.15, 0.2], - [0.16, 0.145], - [0.2, 0.1], - ], - [ - [0.125, 0.3], - [0.85, 0.3], - [0.85, 0.8], - [0.83, 0.85], - [0.75, 0.9], - ], - ], - - i: [ - [ - [0.5, 0.1], - [0.5, 0.125], - ], - [ - [0.15, 0.3], - [0.5, 0.3], - [0.5, 0.7], - [0.65, 0.7], - ], - [ - [0.15, 0.7], - [0.85, 0.7], - ], - ], - ij: [ - [ - [0.35, 0.1], - [0.35, 0.125], - ], - [ - [0.15, 0.3], - [0.35, 0.3], - [0.35, 0.7], - [0.4, 0.7], - ], - [ - [0.35, 0.7], - [0.35, 0.7], - ], - [ - [0.65, 0.1], - [0.65, 0.125], - ], - [ - [0.5, 0.3], - [0.8, 0.3], - ], - [ - [0.65, 0.3], - [0.65, 0.9], - [0.35, 0.9], - ], - ], - ı: [ - [ - [0.15, 0.3], - [0.5, 0.3], - [0.5, 0.7], - [0.65, 0.7], - ], - [ - [0.15, 0.7], - [0.85, 0.7], - ], - ], - ɪ: [ - [ - [0.265, 0.3], - [0.73, 0.3], - ], - [ - [0.265, 0.628], - [0.73, 0.628], - ], - [ - [0.5, 0.3], - [0.5, 0.628], - ], - ], - ɨ: [ - [ - [0.5, 0.1], - [0.5, 0.125], - ], - [ - [0.15, 0.3], - [0.5, 0.3], - [0.5, 0.7], - [0.65, 0.7], - ], - [ - [0.15, 0.7], - [0.85, 0.7], - ], - [ - [0.35, 0.45], - [0.65, 0.45], - ], - ], - ɩ: [ - [ - [0.5, 0.3], - [0.5, 0.6], - [0.55, 0.65], - [0.6, 0.68], - [0.65, 0.7], - ], - ], - - j: [ - [ - [0.6, 0.1], - [0.6, 0.125], - ], - [ - [0.15, 0.3], - [0.85, 0.3], - ], - [ - [0.6, 0.3], - [0.6, 0.9], - [0.15, 0.9], - ], - ], - ȷ: [ - [ - [0.15, 0.3], - [0.85, 0.3], - ], - [ - [0.6, 0.3], - [0.6, 0.9], - [0.15, 0.9], - ], - ], - ɉ: [ - [ - [0.6, 0.1], - [0.6, 0.125], - ], - [ - [0.15, 0.3], - [0.85, 0.3], - ], - [ - [0.6, 0.3], - [0.6, 0.9], - [0.15, 0.9], - ], - [ - [0.45, 0.45], - [0.75, 0.45], - ], - ], - ʝ: [ - [ - [0.6, 0.1], - [0.6, 0.125], - ], - [ - [0.15, 0.3], - [0.85, 0.3], - ], - [ - [0.6, 0.3], - [0.6, 0.9], - [0.15, 0.9], - [0.15, 0.7], - [0.75, 0.7], - ], - ], - ɟ: [ - [ - [0.15, 0.3], - [0.85, 0.3], - ], - [ - [0.6, 0.3], - [0.6, 0.9], - [0.15, 0.9], - ], - [ - [0.45, 0.65], - [0.75, 0.65], - ], - ], - ʄ: [ - [ - [0.75, 0.15], - [0.7, 0.15], - [0.64, 0.18], - [0.6, 0.25], - [0.6, 0.9], - [0.15, 0.9], - ], - [ - [0.45, 0.65], - [0.75, 0.65], - ], - ], - - k: [ - [ - [0.15, 0.7], - [0.15, 0.1], - ], - [ - [0.85, 0.3], - [0.15, 0.5], - [0.85, 0.7], - ], - ], - ƙ: [ - [ - [0.15, 0.7], - [0.15, 0.3], - [0.17, 0.2], - [0.23, 0.12], - [0.3, 0.1], - ], - [ - [0.85, 0.3], - [0.15, 0.5], - [0.85, 0.7], - ], - ], - ʞ: [ - [ - [0.85, 0.3], - [0.85, 0.9], - ], - [ - [0.15, 0.7], - [0.85, 0.5], - [0.15, 0.3], - ], - ], - l: [ - [ - [0.15, 0.1], - [0.4, 0.1], - [0.4, 0.7], - ], - [ - [0.15, 0.7], - [0.85, 0.7], - ], - ], - ł: [ - [ - [0.15, 0.1], - [0.4, 0.1], - [0.4, 0.7], - ], - [ - [0.15, 0.7], - [0.85, 0.7], - ], - [ - [0.25, 0.5], - [0.55, 0.4], - ], - ], - ŀ: [ - [ - [0.15, 0.1], - [0.4, 0.1], - [0.4, 0.7], - ], - [ - [0.15, 0.7], - [0.85, 0.7], - ], - [ - [0.6, 0.425], - [0.6, 0.475], - ], - ], - lj: [ - [ - [0.15, 0.1], - [0.35, 0.1], - [0.35, 0.7], - ], - [ - [0.15, 0.7], - [0.55, 0.7], - ], - - [ - [0.65, 0.1], - [0.65, 0.125], - ], - [ - [0.5, 0.3], - [0.85, 0.3], - ], - [ - [0.65, 0.3], - [0.65, 0.9], - [0.5, 0.9], - ], - ], - ỻ: [ - [ - [0.35, 0.1], - [0.35, 0.7], - ], - [ - [0.65, 0.1], - [0.65, 0.7], - ], - [ - [0.25, 0.15], - [0.75, 0.15], - ], - ], - ʪ: [ - [ - [0.15, 0.1], - [0.35, 0.1], - [0.35, 0.7], - ], - [ - [0.15, 0.7], - [0.85, 0.7], - [0.85, 0.5], - [0.55, 0.5], - [0.55, 0.2], - [0.85, 0.2], - ], - ], - ʫ: [ - [ - [0.15, 0.1], - [0.35, 0.1], - [0.35, 0.7], - ], - [ - [0.15, 0.7], - [0.85, 0.7], - ], - [ - [0.5, 0.2], - [0.85, 0.2], - [0.5, 0.7], - ], - ], - ʟ: [ - [ - [0.265, 0.3], - [0.265, 0.628], - [0.73, 0.628], - ], - ], - ƚ: [ - [ - [0.15, 0.1], - [0.4, 0.1], - [0.4, 0.7], - ], - [ - [0.15, 0.7], - [0.85, 0.7], - ], - [ - [0.25, 0.45], - [0.55, 0.45], - ], - ], - ɫ: [ - [ - [0.15, 0.1], - [0.4, 0.1], - [0.4, 0.7], - ], - [ - [0.15, 0.7], - [0.85, 0.7], - ], - [ - [0.25, 0.5], - [0.25, 0.4], - [0.55, 0.5], - [0.55, 0.4], - ], - ], - ɬ: [ - [ - [0.15, 0.1], - [0.4, 0.1], - [0.4, 0.7], - ], - [ - [0.15, 0.7], - [0.85, 0.7], - ], - [ - [0.4, 0.45], - [0.4, 0.4], - [0.25, 0.4], - [0.25, 0.55], - [0.75, 0.55], - ], - ], - ɭ: [ - [ - [0.15, 0.1], - [0.4, 0.1], - [0.4, 0.9], - [0.5, 0.9], - ], - ], - ȴ: [ - [ - [0.5, 0.1], - [0.5, 0.9], - [0.75, 0.9], - [0.75, 0.7], - [0.3, 0.8], - [0.3, 0.9], - ], - ], - ɮ: [ - [ - [0.15, 0.1], - [0.35, 0.1], - [0.35, 0.7], - ], - [ - [0.15, 0.7], - [0.5, 0.7], - ], - [ - [0.35, 0.3], - [0.85, 0.3], - [0.55, 0.55], - [0.85, 0.7], - [0.7, 0.9], - [0.5, 0.8], - ], - ], - ƛ: [ - [ - [0.3, 0.15], - [0.5, 0.2], - [0.85, 0.7], - ], - [ - [0.62, 0.4], - [0.15, 0.7], - ], - [ - [0.48, 0.35], - [0.65, 0.25], - ], - ], - ʎ: [ - [ - [0.7, 0.15], - [0.5, 0.2], - [0.15, 0.7], - ], - [ - [0.38, 0.4], - [0.85, 0.7], - ], - ], - - m: [ - [ - [0.15, 0.7], - [0.15, 0.275], - ], - [ - [0.15, 0.3], - [0.85, 0.3], - [0.85, 0.7], - ], - [ - [0.5, 0.3], - [0.5, 0.7], - ], - ], - - n: [ - [ - [0.15, 0.7], - [0.15, 0.275], - ], - [ - [0.15, 0.3], - [0.85, 0.3], - [0.85, 0.7], - ], - ], - nj: [ - [ - [0.15, 0.7], - [0.15, 0.275], - ], - [ - [0.15, 0.3], - [0.45, 0.3], - [0.45, 0.7], - ], - [ - [0.7, 0.1], - [0.7, 0.125], - ], - [ - [0.55, 0.3], - [0.85, 0.3], - ], - [ - [0.7, 0.3], - [0.7, 0.9], - [0.45, 0.9], - ], - ], - ɴ: [ - [ - [0.265, 0.628], - [0.265, 0.3], - [0.73, 0.628], - [0.73, 0.3], - ], - ], - ɲ: [ - [ - [0.1, 0.77], - [0.125, 0.75], - [0.15, 0.7], - [0.15, 0.275], - ], - [ - [0.15, 0.3], - [0.85, 0.3], - [0.85, 0.7], - ], - ], - ƞ: [ - [ - [0.15, 0.7], - [0.15, 0.275], - ], - [ - [0.15, 0.3], - [0.85, 0.3], - [0.85, 0.9], - ], - ], - ɳ: [ - [ - [0.15, 0.7], - [0.15, 0.275], - ], - [ - [0.15, 0.3], - [0.77, 0.3], - [0.77, 0.85], - [0.85, 0.9], - ], - ], - ȵ: [ - [ - [0.15, 0.7], - [0.15, 0.275], - ], - [ - [0.15, 0.3], - [0.65, 0.3], - [0.65, 0.9], - [0.85, 0.9], - [0.85, 0.7], - [0.5, 0.9], - ], - ], - - o: [ - [ - [0.15, 0.7], - [0.15, 0.3], - [0.85, 0.3], - [0.85, 0.7], - [0.15, 0.7], - ], - ], - ɶ: [ - [ - [0.265, 0.3], - [0.265, 0.628], - [0.5, 0.628], - [0.5, 0.3], - [0.265, 0.3], - ], - [ - [0.73, 0.3], - [0.5, 0.3], - ], - [ - [0.5, 0.628], - [0.73, 0.628], - ], - [ - [0.5, 0.5], - [0.65, 0.5], - ], - ], - ɔ: [ - [ - [0.15, 0.7], - [0.85, 0.7], - [0.85, 0.3], - [0.15, 0.3], - ], - ], - ɵ: [ - [ - [0.15, 0.7], - [0.15, 0.3], - [0.85, 0.3], - [0.85, 0.7], - [0.15, 0.7], - ], - [ - [0.15, 0.5], - [0.85, 0.5], - ], - ], - ɷ: [ - [ - [0.15, 0.7], - [0.15, 0.3], - [0.85, 0.3], - [0.85, 0.7], - [0.15, 0.7], - ], - [ - [0.5, 0.7], - [0.5, 0.5], - ], - ], - ȣ: [ - [ - [0.15, 0.7], - [0.15, 0.3], - [0.85, 0.3], - [0.85, 0.7], - [0.15, 0.7], - ], - [ - [0.15, 0.3], - [0.15, 0.1], - ], - [ - [0.85, 0.3], - [0.85, 0.1], - ], - ], - œ: [ - [ - [0.5, 0.3], - [0.85, 0.3], - [0.85, 0.5], - [0.5, 0.5], - [0.5, 0.3], - [0.15, 0.3], - [0.15, 0.7], - [0.5, 0.7], - [0.5, 0.5], - ], - [ - [0.5, 0.7], - [0.85, 0.7], - ], - ], - - p: [ - [ - [0.15, 0.9], - [0.15, 0.3], - [0.85, 0.3], - [0.85, 0.7], - [0.125, 0.7], - ], - ], - - ƥ: [ - [ - [0.15, 0.3], - [0.85, 0.3], - [0.85, 0.7], - [0.15, 0.7], - ], - [ - [0.15, 0.9], - [0.15, 0.2], - [0.16, 0.145], - [0.2, 0.1], - ], - ], - ɸ: [ - [ - [0.15, 0.7], - [0.15, 0.3], - [0.85, 0.3], - [0.85, 0.7], - [0.15, 0.7], - ], - [ - [0.5, 0.9], - [0.5, 0.1], - ], - ], - - q: [ - [ - [0.85, 0.9], - [0.85, 0.3], - [0.15, 0.3], - [0.15, 0.7], - [0.875, 0.7], - ], - ], - ȹ: [ - [ - [0.85, 0.7], - [0.85, 0.3], - [0.15, 0.3], - [0.15, 0.7], - [0.85, 0.7], - ], - [ - [0.5, 0.3], - [0.5, 0.9], - ], - ], - ɋ: [ - [ - [0.85, 0.9], - [0.77, 0.85], - [0.77, 0.3], - [0.15, 0.3], - [0.15, 0.7], - [0.8, 0.7], - ], - ], - ĸ: [ - [ - [0.265, 0.3], - [0.265, 0.628], - ], - [ - [0.73, 0.3], - [0.265, 0.5], - [0.73, 0.628], - ], - ], - - r: [ - [ - [0.85, 0.3], - [0.35, 0.3], - [0.15, 0.4], - ], - [ - [0.15, 0.275], - [0.15, 0.7], - ], - ], - ʀ: [ - [ - [0.265, 0.5], - [0.73, 0.5], - [0.73, 0.3], - [0.265, 0.3], - [0.265, 0.628], - ], - [ - [0.265, 0.5], - [0.73, 0.628], - ], - ], - ɍ: [ - [ - [0.85, 0.3], - [0.45, 0.3], - [0.25, 0.4], - ], - [ - [0.25, 0.275], - [0.25, 0.7], - ], - [ - [0.15, 0.5125], - [0.35, 0.5125], - ], - ], - ɹ: [ - [ - [0.15, 0.7], - [0.65, 0.7], - [0.85, 0.6], - ], - [ - [0.85, 0.725], - [0.85, 0.3], - ], - ], - ɺ: [ - [ - [0.15, 0.7], - [0.65, 0.7], - [0.85, 0.6], - ], - [ - [0.85, 0.725], - [0.85, 0.1], - ], - ], - ɻ: [ - [ - [0.15, 0.7], - [0.65, 0.7], - [0.77, 0.6], - ], - [ - [0.85, 0.9], - [0.77, 0.85], - [0.77, 0.725], - [0.77, 0.3], - ], - ], - ɼ: [ - [ - [0.85, 0.3], - [0.35, 0.3], - [0.15, 0.4], - ], - [ - [0.15, 0.275], - [0.15, 0.9], - ], - ], - ɽ: [ - [ - [0.85, 0.3], - [0.35, 0.3], - [0.15, 0.4], - ], - [ - [0.15, 0.275], - [0.15, 0.85], - [0.175, 0.875], - [0.25, 0.9], - ], - ], - ɾ: [ - [ - [0.85, 0.3], - [0.35, 0.3], - [0.15, 0.4], - [0.15, 0.7], - ], - ], - ɿ: [ - [ - [0.15, 0.3], - [0.65, 0.3], - [0.85, 0.4], - [0.85, 0.9], - ], - ], - ʁ: [ - [ - [0.265, 0.5], - [0.73, 0.5], - [0.73, 0.7], - [0.265, 0.7], - [0.265, 0.364], - ], - [ - [0.265, 0.496], - [0.73, 0.364], - ], - ], - - s: [ - [ - [0.85, 0.3], - [0.15, 0.3], - [0.15, 0.5], - [0.85, 0.5], - [0.85, 0.7], - [0.15, 0.7], - ], - ], - ſ: [ - [ - [0.85, 0.3], - [0.35, 0.3], - [0.35, 0.9], - ], - ], - ß: [ - [ - [0.15, 0.7], - [0.15, 0.25], - [0.5, 0.25], - [0.5, 0.35], - [0.35, 0.35], - [0.35, 0.5], - [0.85, 0.5], - [0.85, 0.7], - [0.35, 0.7], - ], - ], - ȿ: [ - [ - [0.85, 0.3], - [0.15, 0.3], - [0.15, 0.5], - [0.85, 0.5], - [0.85, 0.7], - [0.15, 0.7], - ], - [ - [0.15, 0.7], - [0.25, 0.8], - [0.35, 0.8], - ], - ], - ẜ: [ - [ - [0.85, 0.3], - [0.35, 0.3], - [0.35, 0.9], - ], - [ - [0.15, 0.6], - [0.55, 0.4], - ], - ], - ẝ: [ - [ - [0.85, 0.3], - [0.35, 0.3], - [0.35, 0.9], - ], - [ - [0.15, 0.55], - [0.55, 0.55], - ], - ], - ʃ: [ - [ - [0.85, 0.3], - [0.5, 0.3], - [0.5, 0.9], - [0.15, 0.9], - ], - ], - ƪ: [ - [ - [0.45, 0.45], - [0.3, 0.45], - [0.3, 0.3], - [0.45, 0.3], - [0.45, 0.9], - [0.75, 0.9], - ], - ], - ʅ: [ - [ - [0.25, 0.3], - [0.5, 0.3], - [0.5, 0.9], - [0.75, 0.9], - ], - ], - ʆ: [ - [ - [0.85, 0.3], - [0.45, 0.3], - [0.45, 0.9], - [0.25, 0.9], - [0.25, 0.75], - [0.5, 0.75], - ], - ], - - t: [ - [ - [0.15, 0.3], - [0.85, 0.3], - ], - [ - [0.35, 0.2], - [0.35, 0.7], - [0.85, 0.7], - ], - ], - ʨ: [ - [ - [0.15, 0.3], - [0.5, 0.3], - ], - [ - [0.25, 0.2], - [0.25, 0.7], - [0.85, 0.6], - [0.85, 0.7], - [0.6, 0.7], - [0.6, 0.3], - [0.85, 0.3], - ], - ], - ƾ: [ - [ - [0.15, 0.3], - [0.85, 0.3], - ], - [ - [0.35, 0.2], - [0.35, 0.5], - [0.65, 0.5], - [0.65, 0.7], - [0.15, 0.7], - ], - ], - ʦ: [ - [ - [0.15, 0.3], - [0.5, 0.3], - ], - [ - [0.25, 0.2], - [0.25, 0.7], - [0.85, 0.7], - [0.85, 0.5], - [0.6, 0.5], - [0.6, 0.3], - [0.85, 0.3], - ], - ], - ʧ: [ - [ - [0.15, 0.3], - [0.5, 0.3], - ], - [ - [0.25, 0.2], - [0.25, 0.7], - [0.5, 0.7], - ], - [ - [0.75, 0.15], - [0.5, 0.15], - [0.5, 0.9], - [0.4, 0.9], - ], - ], - ŧ: [ - [ - [0.15, 0.3], - [0.85, 0.3], - ], - [ - [0.15, 0.5], - [0.85, 0.5], - ], - [ - [0.35, 0.2], - [0.35, 0.7], - [0.85, 0.7], - ], - ], - ƭ: [ - [ - [0.15, 0.3], - [0.85, 0.3], - ], - [ - [0.5, 0.2], - [0.35, 0.2], - [0.35, 0.7], - [0.85, 0.7], - ], - ], - ʈ: [ - [ - [0.15, 0.3], - [0.85, 0.3], - ], - [ - [0.35, 0.2], - [0.35, 0.9], - [0.65, 0.9], - ], - ], - ȶ: [ - [ - [0.25, 0.3], - [0.85, 0.3], - ], - [ - [0.5, 0.2], - [0.5, 0.7], - [0.85, 0.7], - [0.85, 0.5], - [0.25, 0.7], - ], - ], - ʇ: [ - [ - [0.85, 0.7], - [0.15, 0.7], - ], - [ - [0.65, 0.8], - [0.65, 0.3], - [0.15, 0.3], - ], - ], - - u: [ - [ - [0.15, 0.3], - [0.15, 0.7], - [0.85, 0.7], - ], - [ - [0.85, 0.75], - [0.85, 0.3], - ], - ], - ʉ: [ - [ - [0.25, 0.3], - [0.25, 0.7], - [0.75, 0.7], - ], - [ - [0.75, 0.75], - [0.75, 0.3], - ], - [ - [0.15, 0.45], - [0.85, 0.45], - ], - ], - ɥ: [ - [ - [0.25, 0.3], - [0.25, 0.7], - [0.8, 0.7], - ], - [ - [0.75, 0.9], - [0.75, 0.3], - ], - ], - ʮ: [ - [ - [0.25, 0.3], - [0.35, 0.3], - [0.35, 0.7], - [0.8, 0.7], - ], - [ - [0.75, 0.9], - [0.75, 0.3], - ], - ], - ʯ: [ - [ - [0.25, 0.3], - [0.35, 0.3], - [0.35, 0.7], - [0.8, 0.7], - ], - [ - [0.85, 0.9], - [0.75, 0.9], - [0.75, 0.3], - ], - ], - ɯ: [ - [ - [0.85, 0.3], - [0.85, 0.725], - ], - [ - [0.85, 0.7], - [0.15, 0.7], - [0.15, 0.3], - ], - [ - [0.5, 0.3], - [0.5, 0.7], - ], - ], - ɰ: [ - [ - [0.75, 0.3], - [0.75, 0.9], - ], - [ - [0.75, 0.7], - [0.25, 0.7], - [0.25, 0.3], - ], - [ - [0.5, 0.3], - [0.5, 0.7], - ], - ], - ʊ: [ - [ - [0.15, 0.3], - [0.45, 0.3], - [0.25, 0.7], - [0.75, 0.7], - [0.55, 0.3], - [0.85, 0.3], - ], - ], - - v: [ - [ - [0.15, 0.3], - [0.5, 0.7], - [0.85, 0.3], - ], - ], - ʋ: [ - [ - [0.15, 0.3], - [0.5, 0.7], - [0.85, 0.3], - [0.65, 0.3], - ], - ], - ỽ: [ - [ - [0.15, 0.15], - [0.5, 0.7], - [0.85, 0.4], - [0.65, 0.4], - ], - ], - ʌ: [ - [ - [0.15, 0.7], - [0.5, 0.3], - [0.85, 0.7], - ], - ], - - w: [ - [ - [0.15, 0.3], - [0.15, 0.725], - ], - [ - [0.15, 0.7], - [0.85, 0.7], - [0.85, 0.3], - ], - [ - [0.5, 0.3], - [0.5, 0.7], - ], - ], - ʍ: [ - [ - [0.85, 0.7], - [0.85, 0.275], - ], - [ - [0.85, 0.3], - [0.15, 0.3], - [0.15, 0.7], - ], - [ - [0.5, 0.7], - [0.5, 0.3], - ], - ], - - x: [ - [ - [0.15, 0.3], - [0.85, 0.7], - ], - [ - [0.85, 0.3], - [0.15, 0.7], - ], - ], - - y: [ - [ - [0.15, 0.3], - [0.15, 0.7], - [0.875, 0.7], - ], - [ - [0.85, 0.3], - [0.85, 0.9], - [0.5, 0.9], - ], - ], - ʏ: [ - [ - [0.265, 0.3], - [0.5, 0.5], - [0.73, 0.3], - ], - [ - [0.5, 0.5], - [0.5, 0.628], - ], - ], - ɏ: [ - [ - [0.25, 0.3], - [0.25, 0.7], - [0.775, 0.7], - ], - [ - [0.75, 0.3], - [0.75, 0.9], - [0.5, 0.9], - ], - [ - [0.15, 0.5], - [0.85, 0.5], - ], - ], - ƴ: [ - [ - [0.15, 0.3], - [0.15, 0.7], - [0.775, 0.7], - ], - [ - [0.85, 0.3], - [0.75, 0.3], - [0.75, 0.9], - [0.5, 0.9], - ], - ], - ỿ: [ - [ - [0.15, 0.3], - [0.15, 0.7], - [0.775, 0.7], - ], - [ - [0.75, 0.3], - [0.75, 0.9], - [0.5, 0.9], - [0.85, 0.7], - ], - ], - ȝ: [ - [ - [0.25, 0.4], - [0.75, 0.3], - [0.75, 0.65], - [0.25, 0.75], - ], - [ - [0.5, 0.55], - [0.75, 0.5], - ], - ], - - z: [ - [ - [0.15, 0.3], - [0.85, 0.3], - [0.15, 0.7], - [0.85, 0.7], - ], - ], - ƍ: [ - [ - [0.15, 0.3], - [0.85, 0.3], - [0.85, 0.7], - [0.15, 0.7], - [0.15, 0.3], - ], - [ - [0.15, 0.7], - [0.85, 0.9], - [0.15, 0.9], - ], - ], - ƶ: [ - [ - [0.15, 0.3], - [0.85, 0.3], - [0.15, 0.7], - [0.85, 0.7], - ], - [ - [0.35, 0.5], - [0.65, 0.5], - ], - ], - ʐ: [ - [ - [0.15, 0.3], - [0.85, 0.3], - [0.15, 0.7], - [0.85, 0.7], - [0.85, 0.87], - [0.9, 0.9], - ], - ], - ʑ: [ - [ - [0.15, 0.3], - [0.85, 0.3], - [0.15, 0.7], - [0.85, 0.7], - [0.85, 0.6], - [0.65, 0.6], - [0.35, 0.8], - ], - ], - ɀ: [ - [ - [0.15, 0.3], - [0.85, 0.3], - [0.15, 0.7], - [0.5, 0.9], - [0.85, 0.9], - ], - ], - ʒ: [ - [ - [0.15, 0.3], - [0.85, 0.3], - [0.5, 0.7], - [0.85, 0.7], - [0.85, 0.9], - [0.15, 0.9], - ], - ], - ƹ: [ - [ - [0.85, 0.3], - [0.15, 0.3], - [0.5, 0.7], - [0.15, 0.7], - [0.15, 0.9], - [0.85, 0.9], - ], - ], - ƺ: [ - [ - [0.15, 0.3], - [0.85, 0.3], - [0.5, 0.5], - [0.85, 0.5], - [0.85, 0.7], - [0.15, 0.7], - [0.15, 0.9], - [0.7, 0.9], - ], - ], - ʓ: [ - [ - [0.15, 0.3], - [0.85, 0.3], - [0.5, 0.5], - [0.85, 0.5], - [0.85, 0.7], - [0.15, 0.7], - [0.15, 0.5], - [0.65, 0.9], - ], - ], - þ: [ - [ - [0.25, 0.3], - [0.75, 0.3], - [0.75, 0.7], - [0.25, 0.7], - ], - [ - [0.25, 0.1], - [0.25, 0.9], - ], - ], - ƿ: [ - [ - [0.25, 0.3], - [0.75, 0.1], - [0.75, 0.5], - [0.25, 0.7], - ], - [ - [0.25, 0.3], - [0.25, 0.9], - ], - ], - ƨ: [ - [ - [0.15, 0.3], - [0.85, 0.3], - [0.85, 0.4], - [0.15, 0.6], - [0.15, 0.7], - [0.85, 0.7], - ], - ], - ƽ: [ - [ - [0.15, 0.3], - [0.85, 0.3], - ], - [ - [0.35, 0.3], - [0.35, 0.5], - [0.85, 0.5], - [0.85, 0.7], - [0.15, 0.7], - ], - ], - ƅ: [ - [ - [0.15, 0.1], - [0.25, 0.1], - [0.25, 0.725], - ], - [ - [0.25, 0.3], - [0.85, 0.3], - [0.85, 0.7], - [0.25, 0.7], - ], - ], - ɂ: [ - [ - [0.15, 0.3], - [0.85, 0.3], - [0.85, 0.5], - [0.5, 0.5], - [0.5, 0.7], - ], - ], - ʕ: [ - [ - [0.85, 0.3], - [0.15, 0.3], - [0.15, 0.5], - [0.5, 0.5], - [0.5, 0.9], - ], - ], - ʡ: [ - [ - [0.15, 0.3], - [0.85, 0.3], - [0.85, 0.5], - [0.5, 0.5], - [0.5, 0.9], - ], - [ - [0.35, 0.7], - [0.65, 0.7], - ], - ], - ʢ: [ - [ - [0.85, 0.3], - [0.15, 0.3], - [0.15, 0.5], - [0.5, 0.5], - [0.5, 0.9], - ], - [ - [0.65, 0.7], - [0.35, 0.7], - ], - ], - ʖ: [ - [ - [0.15, 0.7], - [0.85, 0.7], - [0.85, 0.5], - [0.5, 0.5], - [0.5, 0.1], - ], - ], - ʗ: [ - [ - [0.75, 0.3], - [0.25, 0.3], - [0.25, 0.9], - [0.75, 0.9], - ], - ], - ʘ: [ - [ - [0.25, 0.3], - [0.75, 0.3], - [0.75, 0.7], - [0.25, 0.7], - [0.25, 0.3], - ], - [ - [0.5, 0.4875], - [0.5, 0.5125], - ], - ], - ʬ: [ - [ - [0.25, 0.3], - [0.33, 0.5], - [0.5, 0.3], - [0.66, 0.5], - [0.75, 0.3], - ], - [ - [0.25, 0.5], - [0.33, 0.7], - [0.5, 0.5], - [0.66, 0.7], - [0.75, 0.5], - ], - ], - ʭ: [ - [ - [0.25, 0.4], - [0.25, 0.3], - [0.75, 0.3], - [0.75, 0.4], - ], - [ - [0.25, 0.7], - [0.25, 0.6], - [0.75, 0.6], - [0.75, 0.7], - ], - ], -} as Font; - -export { base }; diff --git a/src/glyphs/lowercase/index.ts b/src/glyphs/lowercase/index.ts deleted file mode 100644 index 452e5fe..0000000 --- a/src/glyphs/lowercase/index.ts +++ /dev/null @@ -1,20 +0,0 @@ -import { Font, Glyph, DiaGroup } from "../../type"; -import { base } from "./base"; -import { diaBaseAssociation } from "./diaBaseAssociation"; -import { mergeDia } from "../mergeDia"; - -// Clone exisiting glyph and add diacritical marks -const diacriticized = {} as Font; -Object.keys(diaBaseAssociation).map((char) => { - diacriticized[char as keyof typeof diacriticized] = [ - ...base[diaBaseAssociation[char][0] as keyof Font], - ...mergeDia(diaBaseAssociation[char][1] as DiaGroup), - ] as Glyph; -}); - -// Merge all glyphs (with and without diacritical marks) -const lowercase = { - ...base, - ...diacriticized, -}; -export default lowercase; diff --git a/src/glyphs/mergeDia.ts b/src/glyphs/mergeDia.ts deleted file mode 100644 index d85eeca..0000000 --- a/src/glyphs/mergeDia.ts +++ /dev/null @@ -1,112 +0,0 @@ -import { Font, Glyph, DiaGroup, Line, Vec } from "../type"; -import diacritics from "./diacritics"; - - -// A list of top keys diactricts -// Use to detect and move diacritics -const topDia = [ - "gr", - "ct", - "cr", - "dr", - "tl", - "br", - "bri", - "hcr", - "mc", - "gs", - "da", - "ha", - "hc" -] as Array; - -const topDiaCount = (diaKey: keyof Font): number => - topDia.includes(diaKey) ? 1 : 0; - -const moveDia = { - tp: (g: Glyph) => g.map((l: Line) => l.map((p: Vec) => [p[0], p[1] - 0.125])), - bt: (g: Glyph) => g.map((l: Line) => l.map((p: Vec) => [p[0], p[1] + 0.1])), - lf: (g: Glyph) => g.map((l: Line) => l.map((p: Vec) => [p[0] - 0.125, p[1]])), - rg: (g: Glyph) => g.map((l: Line) => l.map((p: Vec) => [p[0] + 0.125, p[1]])), -}; - -const joinVector = (diaStack: Glyph[], movedDia: Glyph): Glyph => - diaStack.reduce( - (out: Glyph, curr: Glyph) => [...out, ...curr], - [...movedDia], - ); - -const mergeDia = (diaKeys: DiaGroup): Glyph => { - // check if theres is two diacritics and - // both are situated on top of letter - const multipleTopDia = diaKeys.reduce( - (acc: number, dia: keyof Font) => (acc += topDiaCount(dia)), - 0, - ); - if (diaKeys.length > 1 && multipleTopDia > 1) { - // check double grave - if ( - diaKeys.reduce((ct: number, k: keyof Font)=> ct += k === 'gr' ? 1 : 0, 0) > 1) { - return joinVector( - diaKeys.filter((k) => k != "gr").map((k) => diacritics[k]), - [...moveDia.lf(diacritics['gr']), ...moveDia.rg(diacritics['gr'])] - ) - } - // check double acute - if ( - diaKeys.reduce((ct: number, k: keyof Font)=> ct += k === 'ct' ? 1 : 0, 0) > 1) { - return joinVector( - diaKeys.filter((k) => k != "ct").map((k) => diacritics[k]), - [...moveDia.lf(diacritics['ct']), ...moveDia.rg(diacritics['ct'])] - ) - } - // move tild down - if (diaKeys.includes("tl")) { - return joinVector( - diaKeys.filter((k) => k != "tl").map((k) => diacritics[k]), - moveDia.bt(diacritics["tl"]), - ); - } - // move hacek down - else if (diaKeys.includes("hc")) { - return joinVector( - diaKeys.filter((k) => k != "hc").map((k) => diacritics[k]), - moveDia.bt(diacritics["hc"]), - ); - }   - // move macron down - else if (diaKeys.includes("mc")) { - return joinVector( - diaKeys.filter((k) => k != "mc").map((k) => diacritics[k]), - moveDia.bt(diacritics["mc"]), - ); - } - // move acute accent left - else if (diaKeys.includes("ct")) { - return joinVector( - diaKeys.filter((k) => k != "ct").map((k) => diacritics[k]), - moveDia.bt(diacritics["ct"]), - ); - } - // move grave accent right - else if (diaKeys.includes("gr")) { - return joinVector( - diaKeys.filter((k) => k != "gr").map((k) => diacritics[k]), - moveDia.bt(diacritics["gr"]), - ); - } - else { - return diaKeys.reduce( - (acc: Glyph, k: keyof Font) => [...acc, ...diacritics[k]], - [] as Glyph, - ); - } - } else { - return diaKeys.reduce( - (acc: Glyph, k: keyof Font) => [...acc, ...diacritics[k]], - [] as Glyph, - ); - } -}; - -export { mergeDia } diff --git a/src/glyphs/uppercase/base.ts b/src/glyphs/uppercase/base.ts deleted file mode 100644 index e5f097d..0000000 --- a/src/glyphs/uppercase/base.ts +++ /dev/null @@ -1,413 +0,0 @@ -import { type Font } from '../../type'; - -const base = { - A: [ - [ - [0.85, 0.7], - [0.85, 0.2], - [0.15, 0.2], - [0.15, 0.7], - ], - [ - [0.15, 0.5], - [0.85, 0.5], - ], - ], - Æ: [ - [ - [0.5, 0.7], - [0.5, 0.2], - [0.15, 0.2], - [0.15, 0.7], - ], - [ - [0.15, 0.5], - [0.6, 0.5], - ], - [ - [0.85, 0.2], - [0.5, 0.2], - [0.5, 0.7], - [0.85, 0.7], - ], - ], - B: [ - [ - [0.6, 0.5], - [0.6, 0.2], - [0.15, 0.2], - [0.15, 0.7], - [0.85, 0.7], - [0.85, 0.5], - [0.15, 0.5], - ], - ], - Ƀ: [ - [ - [0.6, 0.5], - [0.6, 0.2], - [0.25, 0.2], - [0.25, 0.7], - [0.85, 0.7], - [0.85, 0.5], - [0.25, 0.5], - ], - [ - [0.15, 0.6], - [0.35, 0.6] - ] - ], - Ɓ: [ - [ - [0.6, 0.5], - [0.6, 0.2], - [0.25, 0.2], - [0.25, 0.7], - [0.85, 0.7], - [0.85, 0.5], - [0.25, 0.5], - ], - [ - [0.3, 0.2], - [0.15, 0.2], - [0.15, 0.3] - ] - ], - Ƃ: [ - [ - [0.6, 0.2], - [0.25, 0.2], - [0.25, 0.7], - [0.85, 0.7], - [0.85, 0.5], - [0.25, 0.5], - ], - ], - - - C: [ - [ - [0.85, 0.2], - [0.15, 0.2], - [0.15, 0.7], - [0.85, 0.7], - ], - ], - Ƈ: [ - [ - [0.85, 0.1], - [0.8, 0.11], - [0.75, 0.15], - [0.75, 0.2], - [0.25, 0.2], - [0.25, 0.7], - [0.75, 0.7], - ], - ], - - D: [ - [ - [0.15, 0.2], - [0.85, 0.2], - [0.85, 0.7], - [0.15, 0.7], - ], - [ - [0.3, 0.2], - [0.3, 0.7], - ], - ], - Đ: [ - [ - [0.25, 0.2], - [0.85, 0.2], - [0.85, 0.7], - [0.25, 0.7], - ], - [ - [0.3, 0.2], - [0.3, 0.7], - ], - [ - [0.2, 0.45], - [0.4, 0.45] - ] - - ], - DZ: [ - [ - [0.15, 0.2], - [0.45, 0.2], - [0.45, 0.7], - [0.15, 0.7], - ], - [ - [0.2, 0.2], - [0.2, 0.7], - ], - [ - [0.55, 0.2], - [0.85, 0.2], - [0.55, 0.7], - [0.85, 0.7], - ], - - ], - Ɗ: [ - [ - [0.15, 0.3], - [0.15, 0.2], - [0.85, 0.2], - [0.85, 0.7], - [0.25, 0.7], - ], - [ - [0.3, 0.2], - [0.3, 0.7], - ], - ], - Ƌ: [ - [ - [0.15, 0.1], - [0.85, 0.1], - [0.85, 0.725], - ], - [ - [0.85, 0.7], - [0.15, 0.7], - [0.15, 0.3], - [0.85, 0.3], - ], - ], - - - - E: [ - [ - [0.85, 0.2], - [0.15, 0.2], - [0.15, 0.7], - [0.85, 0.7], - ], - [ - [0.15, 0.5], - [0.55, 0.5], - ], - ], - F: [ - [ - [0.85, 0.2], - [0.15, 0.2], - [0.15, 0.7], - ], - [ - [0.15, 0.5], - [0.55, 0.5], - ], - ], - G: [ - [ - [0.85, 0.2], - [0.15, 0.2], - [0.15, 0.7], - [0.85, 0.7], - [0.85, 0.5], - [0.5, 0.5], - ], - ], - H: [ - [ - [0.15, 0.2], - [0.15, 0.7], - ], - [ - [0.15, 0.5], - [0.85, 0.5], - ], - [ - [0.85, 0.2], - [0.85, 0.7], - ], - ], - I: [ - [ - [0.15, 0.2], - [0.85, 0.2], - ], - [ - [0.15, 0.7], - [0.85, 0.7], - ], - [ - [0.5, 0.2], - [0.5, 0.7], - ], - ], - J: [ - [ - [0.4, 0.2], - [0.85, 0.2], - ], - [ - [0.6, 0.2], - [0.6, 0.7], - [0.15, 0.7], - [0.15, 0.6], - ], - ], - K: [ - [ - [0.15, 0.2], - [0.15, 0.7], - ], - [ - [0.85, 0.2], - [0.15, 0.5], - [0.85, 0.7], - ], - ], - L: [ - [ - [0.15, 0.2], - [0.15, 0.7], - [0.85, 0.7], - ], - ], - M: [ - [ - [0.15, 0.7], - [0.15, 0.2], - [0.5, 0.5], - [0.85, 0.2], - [0.85, 0.7], - ], - ], - N: [ - [ - [0.15, 0.7], - [0.15, 0.2], - [0.85, 0.7], - [0.85, 0.2], - ], - ], - O: [ - [ - [0.15, 0.2], - [0.15, 0.7], - [0.85, 0.7], - [0.85, 0.2], - [0.15, 0.2], - ], - ], - P: [ - [ - [0.15, 0.5], - [0.85, 0.5], - [0.85, 0.2], - [0.15, 0.2], - [0.15, 0.7], - ], - ], - Q: [ - [ - [0.15, 0.2], - [0.15, 0.7], - [0.85, 0.7], - [0.85, 0.2], - [0.15, 0.2], - ], - [ - [0.6, 0.6], - [0.95, 0.75], - ], - ], - R: [ - [ - [0.15, 0.5], - [0.85, 0.5], - [0.85, 0.2], - [0.15, 0.2], - [0.15, 0.7], - ], - [ - [0.15, 0.5], - [0.85, 0.7], - ], - ], - S: [ - [ - [0.85, 0.2], - [0.15, 0.2], - [0.15, 0.5], - [0.85, 0.5], - [0.85, 0.7], - [0.15, 0.7], - ], - ], - T: [ - [ - [0.15, 0.2], - [0.85, 0.2], - ], - [ - [0.5, 0.2], - [0.5, 0.7], - ], - ], - U: [ - [ - [0.15, 0.2], - [0.15, 0.7], - [0.85, 0.7], - [0.85, 0.2], - ], - ], - V: [ - [ - [0.15, 0.2], - [0.5, 0.7], - [0.85, 0.2], - ], - ], - W: [ - [ - [0.15, 0.2], - [0.3, 0.7], - [0.5, 0.5], - [0.7, 0.7], - [0.85, 0.2], - ], - ], - X: [ - [ - [0.15, 0.2], - [0.85, 0.7], - ], - [ - [0.15, 0.7], - [0.85, 0.2], - ], - ], - Y: [ - [ - [0.15, 0.2], - [0.5, 0.5], - [0.85, 0.2], - ], - [ - [0.5, 0.5], - [0.5, 0.7], - ], - ], - Z: [ - [ - [0.15, 0.2], - [0.85, 0.2], - [0.15, 0.7], - [0.85, 0.7], - ], - ], -} as Font; - - -export { base }; diff --git a/src/index.ts b/src/index.ts index 91ed003..1d118c1 100644 --- a/src/index.ts +++ b/src/index.ts @@ -1,8 +1,8 @@ import { type Vec, Line, Glyph, Font } from "./type"; -import lowercase from "./glyphs/lowercase/index"; -import uppercase from "./glyphs/uppercase/index"; -import ponctuation from "./glyphs/poncuation"; -import number from './glyphs/number'; +import lowercase from "./lowercase/index"; +import uppercase from "./uppercase/index"; +import ponctuation from "./poncuation"; +import number from './number'; const font = { ...lowercase, ...uppercase, ...ponctuation, ...number } as Font; diff --git a/src/lowercase/base.ts b/src/lowercase/base.ts new file mode 100644 index 0000000..ec3bf30 --- /dev/null +++ b/src/lowercase/base.ts @@ -0,0 +1,4724 @@ +import { type Font } from "../type"; + +/* + * Base alphabet + */ + +// const base = +const base = { + a: [ + [ + [0.85, 0.557], + [0.15, 0.557], + [0.15, 0.7], + [0.85, 0.7], + ], + [ + [0.85, 0.718], + [0.85, 0.414], + [0.3, 0.414], + ], + ], + æ: [ + [ + [0.5, 0.414], + [0.85, 0.414], + [0.85, 0.557], + [0.15, 0.557], + [0.15, 0.7], + [0.5, 0.7], + [0.5, 0.414], + [0.15, 0.414], + ], + [ + [0.5, 0.7], + [0.85, 0.7], + ], + ], + ɐ: [ + [ + [0.15, 0.557], + [0.85, 0.557], + [0.85, 0.414], + [0.15, 0.414], + [0.15, 0.7], + [0.7, 0.7], + ], + ], + ɑ: [ + [ + [0.85, 0.557], + [0.15, 0.557], + [0.15, 0.7], + [0.85, 0.7], + ], + [ + [0.85, 0.718], + [0.85, 0.414], + ], + ], + ɒ: [ + [ + [0.15, 0.557], + [0.85, 0.557], + [0.85, 0.414], + [0.15, 0.414], + ], + [ + [0.15, 0.396], + [0.15, 0.7], + ], + ], + b: [ + [ + [0.15, 0.271], + [0.15, 0.718], + ], + [ + [0.15, 0.7], + [0.85, 0.7], + [0.85, 0.414], + [0.15, 0.414], + ], + ], + ʙ: [ + [ + [0.55, 0.557], + [0.55, 0.45], + [0.35, 0.45], + [0.35, 0.664], + [0.65, 0.664], + [0.65, 0.557], + [0.35, 0.557], + ], + ], + ƀ: [ + [ + [0.15, 0.271], + [0.15, 0.718], + ], + [ + [0.15, 0.7], + [0.85, 0.7], + [0.85, 0.414], + [0.15, 0.414], + ], + [ + [0.05, 0.318], + [0.25, 0.318], + ], + ], + ɓ: [ + [ + [0.35, 0.271], + [0.15, 0.271], + [0.15, 0.718], + ], + [ + [0.15, 0.7], + [0.85, 0.7], + [0.85, 0.414], + [0.15, 0.414], + ], + ], + ƃ: [ + [ + [0.85, 0.271], + [0.15, 0.271], + [0.15, 0.718], + ], + [ + [0.15, 0.7], + [0.85, 0.7], + [0.85, 0.414], + [0.15, 0.414], + ], + ], + c: [ + [ + [0.85, 0.414], + [0.15, 0.414], + [0.15, 0.7], + [0.85, 0.7], + ], + ], + ɕ: [ + [ + [0.85, 0.414], + [0.15, 0.414], + [0.15, 0.7], + [0.85, 0.7], + [0.5, 0.593], + [0.15, 0.736], + ], + ], + d: [ + [ + [0.85, 0.271], + [0.85, 0.718], + ], + [ + [0.85, 0.7], + [0.15, 0.7], + [0.15, 0.414], + [0.85, 0.414], + ], + ], + đ: [ + [ + [0.85, 0.271], + [0.85, 0.718], + ], + [ + [0.85, 0.7], + [0.15, 0.7], + [0.15, 0.414], + [0.85, 0.414], + ], + [ + [0.75, 0.318], + [0.95, 0.318], + ], + ], + ð: [ + [ + [0.5, 0.271], + [0.85, 0.414], + [0.85, 0.718], + ], + [ + [0.85, 0.7], + [0.15, 0.7], + [0.15, 0.414], + [0.85, 0.414], + ], + [ + [0.5, 0.343], + [0.65, 0.271], + ], + ], + ȸ: [ + [ + [0.5, 0.271], + [0.5, 0.718], + ], + [ + [0.15, 0.414], + [0.85, 0.414], + [0.85, 0.7], + [0.15, 0.7], + [0.15, 0.414], + ], + ], + dz: [ + [ + [0.45, 0.271], + [0.45, 0.718], + ], + [ + [0.45, 0.7], + [0.15, 0.7], + [0.15, 0.414], + [0.45, 0.414], + ], + [ + [0.55, 0.414], + [0.85, 0.414], + [0.55, 0.7], + [0.85, 0.7], + ], + ], + ʣ: [ + [ + [0.5, 0.271], + [0.5, 0.718], + ], + [ + [0.5, 0.7], + [0.15, 0.7], + [0.15, 0.414], + [0.5, 0.414], + ], + [ + [0.5, 0.414], + [0.85, 0.414], + [0.5, 0.7], + [0.85, 0.7], + ], + ], + dž: [ + [ + [0.45, 0.271], + [0.45, 0.718], + ], + [ + [0.45, 0.7], + [0.15, 0.7], + [0.15, 0.414], + [0.45, 0.414], + ], + [ + [0.55, 0.414], + [0.85, 0.414], + [0.55, 0.7], + [0.85, 0.7], + ], + [ + [0.55, 0.271], + [0.7, 0.343], + [0.85, 0.271], + ], + ], + ʥ: [ + [ + [0.5, 0.271], + [0.5, 0.718], + ], + [ + [0.5, 0.7], + [0.15, 0.7], + [0.15, 0.414], + [0.5, 0.414], + ], + [ + [0.5, 0.414], + [0.85, 0.414], + [0.5, 0.7], + [0.85, 0.7], + [0.85, 0.629], + [0.65, 0.771], + ], + ], + ʤ: [ + [ + [0.5, 0.271], + [0.5, 0.718], + ], + [ + [0.5, 0.7], + [0.15, 0.7], + [0.15, 0.414], + [0.5, 0.414], + ], + [ + [0.5, 0.414], + [0.85, 0.414], + [0.55, 0.593], + [0.85, 0.7], + [0.7, 0.843], + [0.5, 0.771], + ], + ], + ɗ: [ + [ + [0.95, 0.271], + [0.91, 0.279], + [0.85, 0.307], + [0.85, 0.718], + ], + [ + [0.85, 0.7], + [0.15, 0.7], + [0.15, 0.414], + [0.85, 0.414], + ], + ], + ƌ: [ + [ + [0.15, 0.307], + [0.85, 0.307], + [0.85, 0.718], + ], + [ + [0.85, 0.7], + [0.15, 0.7], + [0.15, 0.414], + [0.85, 0.414], + ], + ], + ȡ: [ + [ + [0.65, 0.271], + [0.65, 0.718], + ], + [ + [0.65, 0.7], + [0.15, 0.7], + [0.15, 0.414], + [0.65, 0.414], + ], + [ + [0.5, 0.7], + [0.85, 0.7], + [0.85, 0.629], + [0.65, 0.771], + ], + ], + ẟ: [ + [ + [0.75, 0.271], + [0.25, 0.271], + [0.25, 0.414], + [0.75, 0.414], + [0.75, 0.7], + [0.25, 0.7], + [0.25, 0.557], + [0.75, 0.557], + ], + ], + e: [ + [ + [0.15, 0.557], + [0.85, 0.557], + [0.85, 0.414], + [0.15, 0.414], + [0.15, 0.7], + [0.85, 0.7], + ], + ], + ə: [ + [ + [0.85, 0.557], + [0.15, 0.557], + [0.15, 0.7], + [0.85, 0.7], + [0.85, 0.414], + [0.15, 0.414], + ], + ], + ǝ: [ + [ + [0.75, 0.557], + [0.25, 0.557], + [0.25, 0.664], + [0.75, 0.664], + [0.75, 0.45], + [0.25, 0.45], + ], + ], + ɛ: [ + [ + [0.75, 0.414], + [0.25, 0.414], + [0.25, 0.7], + [0.75, 0.7], + ], + [ + [0.25, 0.557], + [0.75, 0.557], + ], + ], + ɘ: [ + [ + [0.85, 0.557], + [0.15, 0.557], + [0.15, 0.414], + [0.85, 0.414], + [0.85, 0.7], + [0.15, 0.7], + ], + ], + ɚ: [ + [ + [0.95, 0.557], + [0.9, 0.521], + [0.9, 0.486], + [0.15, 0.593], + [0.225, 0.771], + [0.85, 0.7], + [0.75, 0.414], + [0.25, 0.486], + ], + ], + ɜ: [ + [ + [0.15, 0.414], + [0.85, 0.414], + [0.85, 0.7], + [0.15, 0.7], + ], + [ + [0.5, 0.557], + [0.85, 0.557], + ], + ], + ɝ: [ + [ + [0.15, 0.414], + [0.7, 0.414], + [0.7, 0.7], + [0.15, 0.7], + ], + [ + [0.5, 0.557], + [0.73, 0.557], + ], + [ + [0.85, 0.557], + [0.8, 0.521], + [0.8, 0.486], + [0.7, 0.486], + ], + ], + ɞ: [ + [ + [0.2, 0.414], + [0.8, 0.414], + [0.8, 0.7], + [0.2, 0.7], + [0.2, 0.414], + ], + [ + [0.5, 0.557], + [0.8, 0.557], + ], + ], + ʚ: [ + [ + [0.2, 0.414], + [0.8, 0.414], + [0.8, 0.7], + [0.2, 0.7], + [0.2, 0.414], + ], + [ + [0.2, 0.557], + [0.5, 0.557], + ], + ], + ɤ: [ + [ + [0.15, 0.486], + [0.25, 0.414], + [0.65, 0.629], + [0.5, 0.7], + [0.35, 0.629], + [0.75, 0.414], + [0.85, 0.486], + ], + ], + f: [ + [ + [0.15, 0.557], + [0.7, 0.557], + ], + [ + [0.3, 0.7], + [0.3, 0.343], + [0.85, 0.343], + ], + ], + ʩ: [ + [ + [0.15, 0.557], + [0.5, 0.557], + ], + [ + [0.25, 0.7], + [0.25, 0.343], + [0.5, 0.343], + ], + [ + [0.5, 0.539], + [0.5, 0.7], + ], + [ + [0.5, 0.557], + [0.85, 0.557], + [0.85, 0.771], + [0.825, 0.807], + [0.75, 0.843], + ], + ], + ƒ: [ + [ + [0.15, 0.45], + [0.7, 0.45], + ], + [ + [0.25, 0.789], + [0.3, 0.836], + [0.325, 0.843], + [0.35, 0.836], + [0.4, 0.789], + [0.4, 0.771], + [0.4, 0.343], + [0.85, 0.343], + ], + ], + g: [ + [ + [0.85, 0.7], + [0.15, 0.7], + [0.15, 0.414], + [0.85, 0.414], + ], + [ + [0.85, 0.396], + [0.85, 0.843], + [0.5, 0.843], + ], + ], + ɡ: [ + [ + [0.885, 0.714], + [0.115, 0.714], + [0.115, 0.4], + [0.885, 0.4], + ], + [ + [0.885, 0.38], + [0.885, 0.871], + [0.5, 0.871], + ], + ], + ɢ: [ + [ + [0.725, 0.414], + [0.265, 0.414], + [0.265, 0.649], + [0.725, 0.649], + [0.725, 0.557], + [0.5, 0.557], + ], + ], + ǥ: [ + [ + [0.75, 0.7], + [0.15, 0.7], + [0.15, 0.414], + [0.75, 0.414], + ], + [ + [0.75, 0.396], + [0.75, 0.843], + [0.5, 0.843], + ], + [ + [0.65, 0.771], + [0.85, 0.771], + ], + ], + ʛ: [ + [ + [0.8, 0.343], + [0.75, 0.361], + [0.725, 0.379], + [0.725, 0.414], + [0.265, 0.414], + [0.265, 0.649], + [0.725, 0.649], + [0.725, 0.557], + [0.5, 0.557], + ], + ], + ɣ: [ + [ + [0.35, 0.414], + [0.55, 0.771], + [0.5, 0.807], + [0.45, 0.771], + [0.65, 0.414], + ], + ], + ƣ: [ + [ + [0.15, 0.486], + [0.65, 0.486], + [0.65, 0.736], + [0.15, 0.736], + [0.15, 0.486], + ], + [ + [0.65, 0.486], + [0.75, 0.45], + [0.85, 0.486], + [0.85, 0.843], + ], + ], + h: [ + [ + [0.15, 0.7], + [0.15, 0.271], + ], + [ + [0.125, 0.414], + [0.85, 0.414], + [0.85, 0.7], + ], + ], + ħ: [ + [ + [0.25, 0.7], + [0.25, 0.271], + ], + [ + [0.225, 0.414], + [0.85, 0.414], + [0.85, 0.7], + ], + [ + [0.15, 0.343], + [0.35, 0.343], + ], + ], + ʜ: [ + [ + [0.265, 0.414], + [0.265, 0.649], + ], + [ + [0.265, 0.557], + [0.73, 0.557], + ], + [ + [0.73, 0.414], + [0.73, 0.649], + ], + ], + ƕ: [ + [ + [0.15, 0.7], + [0.15, 0.271], + ], + [ + [0.125, 0.414], + [0.5, 0.414], + [0.5, 0.7], + [0.85, 0.7], + [0.85, 0.414], + ], + ], + ɦ: [ + [ + [0.15, 0.7], + [0.15, 0.343], + [0.16, 0.304], + [0.2, 0.271], + ], + [ + [0.125, 0.414], + [0.85, 0.414], + [0.85, 0.7], + ], + ], + ɧ: [ + [ + [0.15, 0.7], + [0.15, 0.343], + [0.16, 0.304], + [0.2, 0.271], + ], + [ + [0.125, 0.414], + [0.85, 0.414], + [0.85, 0.771], + [0.83, 0.807], + [0.75, 0.843], + ], + ], + i: [ + [ + [0.5, 0.271], + [0.5, 0.289], + ], + [ + [0.15, 0.414], + [0.5, 0.414], + [0.5, 0.7], + [0.65, 0.7], + ], + [ + [0.15, 0.7], + [0.85, 0.7], + ], + ], + ij: [ + [ + [0.35, 0.271], + [0.35, 0.289], + ], + [ + [0.15, 0.414], + [0.35, 0.414], + [0.35, 0.7], + [0.4, 0.7], + ], + [ + [0.35, 0.7], + [0.35, 0.7], + ], + [ + [0.65, 0.271], + [0.65, 0.289], + ], + [ + [0.5, 0.414], + [0.8, 0.414], + ], + [ + [0.65, 0.414], + [0.65, 0.843], + [0.35, 0.843], + ], + ], + ı: [ + [ + [0.15, 0.414], + [0.5, 0.414], + [0.5, 0.7], + [0.65, 0.7], + ], + [ + [0.15, 0.7], + [0.85, 0.7], + ], + ], + ɪ: [ + [ + [0.265, 0.414], + [0.73, 0.414], + ], + [ + [0.265, 0.649], + [0.73, 0.649], + ], + [ + [0.5, 0.414], + [0.5, 0.649], + ], + ], + ɨ: [ + [ + [0.5, 0.271], + [0.5, 0.289], + ], + [ + [0.15, 0.414], + [0.5, 0.414], + [0.5, 0.7], + [0.65, 0.7], + ], + [ + [0.15, 0.7], + [0.85, 0.7], + ], + [ + [0.35, 0.521], + [0.65, 0.521], + ], + ], + ɩ: [ + [ + [0.5, 0.414], + [0.5, 0.629], + [0.55, 0.664], + [0.6, 0.686], + [0.65, 0.7], + ], + ], + j: [ + [ + [0.6, 0.271], + [0.6, 0.289], + ], + [ + [0.15, 0.414], + [0.85, 0.414], + ], + [ + [0.6, 0.414], + [0.6, 0.843], + [0.15, 0.843], + ], + ], + ȷ: [ + [ + [0.15, 0.414], + [0.85, 0.414], + ], + [ + [0.6, 0.414], + [0.6, 0.843], + [0.15, 0.843], + ], + ], + ɉ: [ + [ + [0.6, 0.271], + [0.6, 0.289], + ], + [ + [0.15, 0.414], + [0.85, 0.414], + ], + [ + [0.6, 0.414], + [0.6, 0.843], + [0.15, 0.843], + ], + [ + [0.45, 0.521], + [0.75, 0.521], + ], + ], + ʝ: [ + [ + [0.6, 0.271], + [0.6, 0.289], + ], + [ + [0.15, 0.414], + [0.85, 0.414], + ], + [ + [0.6, 0.414], + [0.6, 0.843], + [0.15, 0.843], + [0.15, 0.7], + [0.75, 0.7], + ], + ], + ɟ: [ + [ + [0.15, 0.414], + [0.85, 0.414], + ], + [ + [0.6, 0.414], + [0.6, 0.843], + [0.15, 0.843], + ], + [ + [0.45, 0.664], + [0.75, 0.664], + ], + ], + ʄ: [ + [ + [0.75, 0.307], + [0.7, 0.307], + [0.64, 0.329], + [0.6, 0.379], + [0.6, 0.843], + [0.15, 0.843], + ], + [ + [0.45, 0.664], + [0.75, 0.664], + ], + ], + k: [ + [ + [0.15, 0.7], + [0.15, 0.271], + ], + [ + [0.85, 0.414], + [0.15, 0.557], + [0.85, 0.7], + ], + ], + ƙ: [ + [ + [0.15, 0.7], + [0.15, 0.414], + [0.17, 0.343], + [0.23, 0.286], + [0.3, 0.271], + ], + [ + [0.85, 0.414], + [0.15, 0.557], + [0.85, 0.7], + ], + ], + ʞ: [ + [ + [0.85, 0.414], + [0.85, 0.843], + ], + [ + [0.15, 0.7], + [0.85, 0.557], + [0.15, 0.414], + ], + ], + l: [ + [ + [0.15, 0.271], + [0.4, 0.271], + [0.4, 0.7], + ], + [ + [0.15, 0.7], + [0.85, 0.7], + ], + ], + ł: [ + [ + [0.15, 0.271], + [0.4, 0.271], + [0.4, 0.7], + ], + [ + [0.15, 0.7], + [0.85, 0.7], + ], + [ + [0.25, 0.557], + [0.55, 0.486], + ], + ], + ŀ: [ + [ + [0.15, 0.271], + [0.4, 0.271], + [0.4, 0.7], + ], + [ + [0.15, 0.7], + [0.85, 0.7], + ], + [ + [0.6, 0.504], + [0.6, 0.539], + ], + ], + lj: [ + [ + [0.15, 0.271], + [0.35, 0.271], + [0.35, 0.7], + ], + [ + [0.15, 0.7], + [0.55, 0.7], + ], + [ + [0.65, 0.271], + [0.65, 0.289], + ], + [ + [0.5, 0.414], + [0.85, 0.414], + ], + [ + [0.65, 0.414], + [0.65, 0.843], + [0.5, 0.843], + ], + ], + ỻ: [ + [ + [0.35, 0.271], + [0.35, 0.7], + ], + [ + [0.65, 0.271], + [0.65, 0.7], + ], + [ + [0.25, 0.307], + [0.75, 0.307], + ], + ], + ʪ: [ + [ + [0.15, 0.271], + [0.35, 0.271], + [0.35, 0.7], + ], + [ + [0.15, 0.7], + [0.85, 0.7], + [0.85, 0.557], + [0.55, 0.557], + [0.55, 0.343], + [0.85, 0.343], + ], + ], + ʫ: [ + [ + [0.15, 0.271], + [0.35, 0.271], + [0.35, 0.7], + ], + [ + [0.15, 0.7], + [0.85, 0.7], + ], + [ + [0.5, 0.343], + [0.85, 0.343], + [0.5, 0.7], + ], + ], + ʟ: [ + [ + [0.265, 0.414], + [0.265, 0.649], + [0.73, 0.649], + ], + ], + ƚ: [ + [ + [0.15, 0.271], + [0.4, 0.271], + [0.4, 0.7], + ], + [ + [0.15, 0.7], + [0.85, 0.7], + ], + [ + [0.25, 0.521], + [0.55, 0.521], + ], + ], + ɫ: [ + [ + [0.15, 0.271], + [0.4, 0.271], + [0.4, 0.7], + ], + [ + [0.15, 0.7], + [0.85, 0.7], + ], + [ + [0.25, 0.557], + [0.25, 0.486], + [0.55, 0.557], + [0.55, 0.486], + ], + ], + ɬ: [ + [ + [0.15, 0.271], + [0.4, 0.271], + [0.4, 0.7], + ], + [ + [0.15, 0.7], + [0.85, 0.7], + ], + [ + [0.4, 0.521], + [0.4, 0.486], + [0.25, 0.486], + [0.25, 0.593], + [0.75, 0.593], + ], + ], + ɭ: [ + [ + [0.15, 0.271], + [0.4, 0.271], + [0.4, 0.843], + [0.5, 0.843], + ], + ], + ȴ: [ + [ + [0.5, 0.271], + [0.5, 0.843], + [0.75, 0.843], + [0.75, 0.7], + [0.3, 0.771], + [0.3, 0.843], + ], + ], + ɮ: [ + [ + [0.15, 0.271], + [0.35, 0.271], + [0.35, 0.7], + ], + [ + [0.15, 0.7], + [0.5, 0.7], + ], + [ + [0.35, 0.414], + [0.85, 0.414], + [0.55, 0.593], + [0.85, 0.7], + [0.7, 0.843], + [0.5, 0.771], + ], + ], + ƛ: [ + [ + [0.3, 0.307], + [0.5, 0.343], + [0.85, 0.7], + ], + [ + [0.62, 0.486], + [0.15, 0.7], + ], + [ + [0.48, 0.45], + [0.65, 0.379], + ], + ], + ʎ: [ + [ + [0.7, 0.307], + [0.5, 0.343], + [0.15, 0.7], + ], + [ + [0.38, 0.486], + [0.85, 0.7], + ], + ], + m: [ + [ + [0.15, 0.7], + [0.15, 0.396], + ], + [ + [0.15, 0.414], + [0.85, 0.414], + [0.85, 0.7], + ], + [ + [0.5, 0.414], + [0.5, 0.7], + ], + ], + n: [ + [ + [0.15, 0.7], + [0.15, 0.396], + ], + [ + [0.15, 0.414], + [0.85, 0.414], + [0.85, 0.7], + ], + ], + nj: [ + [ + [0.15, 0.7], + [0.15, 0.396], + ], + [ + [0.15, 0.414], + [0.45, 0.414], + [0.45, 0.7], + ], + [ + [0.7, 0.271], + [0.7, 0.289], + ], + [ + [0.55, 0.414], + [0.85, 0.414], + ], + [ + [0.7, 0.414], + [0.7, 0.843], + [0.45, 0.843], + ], + ], + ɴ: [ + [ + [0.265, 0.649], + [0.265, 0.414], + [0.73, 0.649], + [0.73, 0.414], + ], + ], + ɲ: [ + [ + [0.1, 0.75], + [0.125, 0.736], + [0.15, 0.7], + [0.15, 0.396], + ], + [ + [0.15, 0.414], + [0.85, 0.414], + [0.85, 0.7], + ], + ], + ƞ: [ + [ + [0.15, 0.7], + [0.15, 0.396], + ], + [ + [0.15, 0.414], + [0.85, 0.414], + [0.85, 0.843], + ], + ], + ɳ: [ + [ + [0.15, 0.7], + [0.15, 0.396], + ], + [ + [0.15, 0.414], + [0.77, 0.414], + [0.77, 0.807], + [0.85, 0.843], + ], + ], + ȵ: [ + [ + [0.15, 0.7], + [0.15, 0.396], + ], + [ + [0.15, 0.414], + [0.65, 0.414], + [0.65, 0.843], + [0.85, 0.843], + [0.85, 0.7], + [0.5, 0.843], + ], + ], + o: [ + [ + [0.15, 0.7], + [0.15, 0.414], + [0.85, 0.414], + [0.85, 0.7], + [0.15, 0.7], + ], + ], + ɶ: [ + [ + [0.265, 0.414], + [0.265, 0.649], + [0.5, 0.649], + [0.5, 0.414], + [0.265, 0.414], + ], + [ + [0.73, 0.414], + [0.5, 0.414], + ], + [ + [0.5, 0.649], + [0.73, 0.649], + ], + [ + [0.5, 0.557], + [0.65, 0.557], + ], + ], + ɔ: [ + [ + [0.15, 0.7], + [0.85, 0.7], + [0.85, 0.414], + [0.15, 0.414], + ], + ], + ɵ: [ + [ + [0.15, 0.7], + [0.15, 0.414], + [0.85, 0.414], + [0.85, 0.7], + [0.15, 0.7], + ], + [ + [0.15, 0.557], + [0.85, 0.557], + ], + ], + ɷ: [ + [ + [0.15, 0.7], + [0.15, 0.414], + [0.85, 0.414], + [0.85, 0.7], + [0.15, 0.7], + ], + [ + [0.5, 0.7], + [0.5, 0.557], + ], + ], + ȣ: [ + [ + [0.15, 0.7], + [0.15, 0.414], + [0.85, 0.414], + [0.85, 0.7], + [0.15, 0.7], + ], + [ + [0.15, 0.414], + [0.15, 0.271], + ], + [ + [0.85, 0.414], + [0.85, 0.271], + ], + ], + œ: [ + [ + [0.5, 0.414], + [0.85, 0.414], + [0.85, 0.557], + [0.5, 0.557], + [0.5, 0.414], + [0.15, 0.414], + [0.15, 0.7], + [0.5, 0.7], + [0.5, 0.557], + ], + [ + [0.5, 0.7], + [0.85, 0.7], + ], + ], + p: [ + [ + [0.15, 0.843], + [0.15, 0.414], + [0.85, 0.414], + [0.85, 0.7], + [0.125, 0.7], + ], + ], + ƥ: [ + [ + [0.15, 0.414], + [0.85, 0.414], + [0.85, 0.7], + [0.15, 0.7], + ], + [ + [0.15, 0.843], + [0.15, 0.343], + [0.16, 0.304], + [0.2, 0.271], + ], + ], + ɸ: [ + [ + [0.15, 0.7], + [0.15, 0.414], + [0.85, 0.414], + [0.85, 0.7], + [0.15, 0.7], + ], + [ + [0.5, 0.843], + [0.5, 0.271], + ], + ], + q: [ + [ + [0.85, 0.843], + [0.85, 0.414], + [0.15, 0.414], + [0.15, 0.7], + [0.875, 0.7], + ], + ], + ȹ: [ + [ + [0.85, 0.7], + [0.85, 0.414], + [0.15, 0.414], + [0.15, 0.7], + [0.85, 0.7], + ], + [ + [0.5, 0.414], + [0.5, 0.843], + ], + ], + ɋ: [ + [ + [0.85, 0.843], + [0.77, 0.807], + [0.77, 0.414], + [0.15, 0.414], + [0.15, 0.7], + [0.8, 0.7], + ], + ], + ĸ: [ + [ + [0.265, 0.414], + [0.265, 0.649], + ], + [ + [0.73, 0.414], + [0.265, 0.557], + [0.73, 0.649], + ], + ], + r: [ + [ + [0.85, 0.414], + [0.35, 0.414], + [0.15, 0.486], + ], + [ + [0.15, 0.396], + [0.15, 0.7], + ], + ], + ʀ: [ + [ + [0.265, 0.557], + [0.73, 0.557], + [0.73, 0.414], + [0.265, 0.414], + [0.265, 0.649], + ], + [ + [0.265, 0.557], + [0.73, 0.649], + ], + ], + ɍ: [ + [ + [0.85, 0.414], + [0.45, 0.414], + [0.25, 0.486], + ], + [ + [0.25, 0.396], + [0.25, 0.7], + ], + [ + [0.15, 0.566], + [0.35, 0.566], + ], + ], + ɹ: [ + [ + [0.15, 0.7], + [0.65, 0.7], + [0.85, 0.629], + ], + [ + [0.85, 0.718], + [0.85, 0.414], + ], + ], + ɺ: [ + [ + [0.15, 0.7], + [0.65, 0.7], + [0.85, 0.629], + ], + [ + [0.85, 0.718], + [0.85, 0.271], + ], + ], + ɻ: [ + [ + [0.15, 0.7], + [0.65, 0.7], + [0.77, 0.629], + ], + [ + [0.85, 0.843], + [0.77, 0.807], + [0.77, 0.718], + [0.77, 0.414], + ], + ], + ɼ: [ + [ + [0.85, 0.414], + [0.35, 0.414], + [0.15, 0.486], + ], + [ + [0.15, 0.396], + [0.15, 0.843], + ], + ], + ɽ: [ + [ + [0.85, 0.414], + [0.35, 0.414], + [0.15, 0.486], + ], + [ + [0.15, 0.396], + [0.15, 0.807], + [0.175, 0.825], + [0.25, 0.843], + ], + ], + ɾ: [ + [ + [0.85, 0.414], + [0.35, 0.414], + [0.15, 0.486], + [0.15, 0.7], + ], + ], + ɿ: [ + [ + [0.15, 0.414], + [0.65, 0.414], + [0.85, 0.486], + [0.85, 0.843], + ], + ], + ʁ: [ + [ + [0.265, 0.557], + [0.73, 0.557], + [0.73, 0.7], + [0.265, 0.7], + [0.265, 0.46], + ], + [ + [0.265, 0.554], + [0.73, 0.46], + ], + ], + s: [ + [ + [0.85, 0.414], + [0.15, 0.414], + [0.15, 0.557], + [0.85, 0.557], + [0.85, 0.7], + [0.15, 0.7], + ], + ], + ſ: [ + [ + [0.85, 0.414], + [0.35, 0.414], + [0.35, 0.843], + ], + ], + ß: [ + [ + [0.15, 0.7], + [0.15, 0.379], + [0.5, 0.379], + [0.5, 0.45], + [0.35, 0.45], + [0.35, 0.557], + [0.85, 0.557], + [0.85, 0.7], + [0.35, 0.7], + ], + ], + ȿ: [ + [ + [0.85, 0.414], + [0.15, 0.414], + [0.15, 0.557], + [0.85, 0.557], + [0.85, 0.7], + [0.15, 0.7], + ], + [ + [0.15, 0.7], + [0.25, 0.771], + [0.35, 0.771], + ], + ], + ẜ: [ + [ + [0.85, 0.414], + [0.35, 0.414], + [0.35, 0.843], + ], + [ + [0.15, 0.629], + [0.55, 0.486], + ], + ], + ẝ: [ + [ + [0.85, 0.414], + [0.35, 0.414], + [0.35, 0.843], + ], + [ + [0.15, 0.593], + [0.55, 0.593], + ], + ], + ʃ: [ + [ + [0.85, 0.414], + [0.5, 0.414], + [0.5, 0.843], + [0.15, 0.843], + ], + ], + ƪ: [ + [ + [0.45, 0.521], + [0.3, 0.521], + [0.3, 0.414], + [0.45, 0.414], + [0.45, 0.843], + [0.75, 0.843], + ], + ], + ʅ: [ + [ + [0.25, 0.414], + [0.5, 0.414], + [0.5, 0.843], + [0.75, 0.843], + ], + ], + ʆ: [ + [ + [0.85, 0.414], + [0.45, 0.414], + [0.45, 0.843], + [0.25, 0.843], + [0.25, 0.736], + [0.5, 0.736], + ], + ], + t: [ + [ + [0.15, 0.414], + [0.85, 0.414], + ], + [ + [0.35, 0.343], + [0.35, 0.7], + [0.85, 0.7], + ], + ], + ʨ: [ + [ + [0.15, 0.414], + [0.5, 0.414], + ], + [ + [0.25, 0.343], + [0.25, 0.7], + [0.85, 0.629], + [0.85, 0.7], + [0.6, 0.7], + [0.6, 0.414], + [0.85, 0.414], + ], + ], + ƾ: [ + [ + [0.15, 0.414], + [0.85, 0.414], + ], + [ + [0.35, 0.343], + [0.35, 0.557], + [0.65, 0.557], + [0.65, 0.7], + [0.15, 0.7], + ], + ], + ʦ: [ + [ + [0.15, 0.414], + [0.5, 0.414], + ], + [ + [0.25, 0.343], + [0.25, 0.7], + [0.85, 0.7], + [0.85, 0.557], + [0.6, 0.557], + [0.6, 0.414], + [0.85, 0.414], + ], + ], + ʧ: [ + [ + [0.15, 0.414], + [0.5, 0.414], + ], + [ + [0.25, 0.343], + [0.25, 0.7], + [0.5, 0.7], + ], + [ + [0.75, 0.307], + [0.5, 0.307], + [0.5, 0.843], + [0.4, 0.843], + ], + ], + ŧ: [ + [ + [0.15, 0.414], + [0.85, 0.414], + ], + [ + [0.15, 0.557], + [0.85, 0.557], + ], + [ + [0.35, 0.343], + [0.35, 0.7], + [0.85, 0.7], + ], + ], + ƭ: [ + [ + [0.15, 0.414], + [0.85, 0.414], + ], + [ + [0.5, 0.343], + [0.35, 0.343], + [0.35, 0.7], + [0.85, 0.7], + ], + ], + ʈ: [ + [ + [0.15, 0.414], + [0.85, 0.414], + ], + [ + [0.35, 0.343], + [0.35, 0.843], + [0.65, 0.843], + ], + ], + ȶ: [ + [ + [0.25, 0.414], + [0.85, 0.414], + ], + [ + [0.5, 0.343], + [0.5, 0.7], + [0.85, 0.7], + [0.85, 0.557], + [0.25, 0.7], + ], + ], + ʇ: [ + [ + [0.85, 0.7], + [0.15, 0.7], + ], + [ + [0.65, 0.771], + [0.65, 0.414], + [0.15, 0.414], + ], + ], + u: [ + [ + [0.15, 0.414], + [0.15, 0.7], + [0.85, 0.7], + ], + [ + [0.85, 0.736], + [0.85, 0.414], + ], + ], + ʉ: [ + [ + [0.25, 0.414], + [0.25, 0.7], + [0.75, 0.7], + ], + [ + [0.75, 0.736], + [0.75, 0.414], + ], + [ + [0.15, 0.521], + [0.85, 0.521], + ], + ], + ɥ: [ + [ + [0.25, 0.414], + [0.25, 0.7], + [0.8, 0.7], + ], + [ + [0.75, 0.843], + [0.75, 0.414], + ], + ], + ʮ: [ + [ + [0.25, 0.414], + [0.35, 0.414], + [0.35, 0.7], + [0.8, 0.7], + ], + [ + [0.75, 0.843], + [0.75, 0.414], + ], + ], + ʯ: [ + [ + [0.25, 0.414], + [0.35, 0.414], + [0.35, 0.7], + [0.8, 0.7], + ], + [ + [0.85, 0.843], + [0.75, 0.843], + [0.75, 0.414], + ], + ], + ɯ: [ + [ + [0.85, 0.414], + [0.85, 0.718], + ], + [ + [0.85, 0.7], + [0.15, 0.7], + [0.15, 0.414], + ], + [ + [0.5, 0.414], + [0.5, 0.7], + ], + ], + ɰ: [ + [ + [0.75, 0.414], + [0.75, 0.843], + ], + [ + [0.75, 0.7], + [0.25, 0.7], + [0.25, 0.414], + ], + [ + [0.5, 0.414], + [0.5, 0.7], + ], + ], + ʊ: [ + [ + [0.15, 0.414], + [0.45, 0.414], + [0.25, 0.7], + [0.75, 0.7], + [0.55, 0.414], + [0.85, 0.414], + ], + ], + v: [ + [ + [0.15, 0.414], + [0.5, 0.7], + [0.85, 0.414], + ], + ], + ʋ: [ + [ + [0.15, 0.414], + [0.5, 0.7], + [0.85, 0.414], + [0.65, 0.414], + ], + ], + ỽ: [ + [ + [0.15, 0.307], + [0.5, 0.7], + [0.85, 0.486], + [0.65, 0.486], + ], + ], + ʌ: [ + [ + [0.15, 0.7], + [0.5, 0.414], + [0.85, 0.7], + ], + ], + w: [ + [ + [0.15, 0.414], + [0.15, 0.718], + ], + [ + [0.15, 0.7], + [0.85, 0.7], + [0.85, 0.414], + ], + [ + [0.5, 0.414], + [0.5, 0.7], + ], + ], + ʍ: [ + [ + [0.85, 0.7], + [0.85, 0.396], + ], + [ + [0.85, 0.414], + [0.15, 0.414], + [0.15, 0.7], + ], + [ + [0.5, 0.7], + [0.5, 0.414], + ], + ], + x: [ + [ + [0.15, 0.414], + [0.85, 0.7], + ], + [ + [0.85, 0.414], + [0.15, 0.7], + ], + ], + y: [ + [ + [0.15, 0.414], + [0.15, 0.7], + [0.875, 0.7], + ], + [ + [0.85, 0.414], + [0.85, 0.843], + [0.5, 0.843], + ], + ], + ʏ: [ + [ + [0.265, 0.414], + [0.5, 0.557], + [0.73, 0.414], + ], + [ + [0.5, 0.557], + [0.5, 0.649], + ], + ], + ɏ: [ + [ + [0.25, 0.414], + [0.25, 0.7], + [0.775, 0.7], + ], + [ + [0.75, 0.414], + [0.75, 0.843], + [0.5, 0.843], + ], + [ + [0.15, 0.557], + [0.85, 0.557], + ], + ], + ƴ: [ + [ + [0.15, 0.414], + [0.15, 0.7], + [0.775, 0.7], + ], + [ + [0.85, 0.414], + [0.75, 0.414], + [0.75, 0.843], + [0.5, 0.843], + ], + ], + ỿ: [ + [ + [0.15, 0.414], + [0.15, 0.7], + [0.775, 0.7], + ], + [ + [0.75, 0.414], + [0.75, 0.843], + [0.5, 0.843], + [0.85, 0.7], + ], + ], + ȝ: [ + [ + [0.25, 0.486], + [0.75, 0.414], + [0.75, 0.664], + [0.25, 0.736], + ], + [ + [0.5, 0.593], + [0.75, 0.557], + ], + ], + z: [ + [ + [0.15, 0.414], + [0.85, 0.414], + [0.15, 0.7], + [0.85, 0.7], + ], + ], + ƍ: [ + [ + [0.15, 0.414], + [0.85, 0.414], + [0.85, 0.7], + [0.15, 0.7], + [0.15, 0.414], + ], + [ + [0.15, 0.7], + [0.85, 0.843], + [0.15, 0.843], + ], + ], + ƶ: [ + [ + [0.15, 0.414], + [0.85, 0.414], + [0.15, 0.7], + [0.85, 0.7], + ], + [ + [0.35, 0.557], + [0.65, 0.557], + ], + ], + ʐ: [ + [ + [0.15, 0.414], + [0.85, 0.414], + [0.15, 0.7], + [0.85, 0.7], + [0.85, 0.821], + [0.9, 0.843], + ], + ], + ʑ: [ + [ + [0.15, 0.414], + [0.85, 0.414], + [0.15, 0.7], + [0.85, 0.7], + [0.85, 0.629], + [0.65, 0.629], + [0.35, 0.771], + ], + ], + ɀ: [ + [ + [0.15, 0.414], + [0.85, 0.414], + [0.15, 0.7], + [0.5, 0.843], + [0.85, 0.843], + ], + ], + ʒ: [ + [ + [0.15, 0.414], + [0.85, 0.414], + [0.5, 0.7], + [0.85, 0.7], + [0.85, 0.843], + [0.15, 0.843], + ], + ], + ƹ: [ + [ + [0.85, 0.414], + [0.15, 0.414], + [0.5, 0.7], + [0.15, 0.7], + [0.15, 0.843], + [0.85, 0.843], + ], + ], + ƺ: [ + [ + [0.15, 0.414], + [0.85, 0.414], + [0.5, 0.557], + [0.85, 0.557], + [0.85, 0.7], + [0.15, 0.7], + [0.15, 0.843], + [0.7, 0.843], + ], + ], + ʓ: [ + [ + [0.15, 0.414], + [0.85, 0.414], + [0.5, 0.557], + [0.85, 0.557], + [0.85, 0.7], + [0.15, 0.7], + [0.15, 0.557], + [0.65, 0.843], + ], + ], + þ: [ + [ + [0.25, 0.414], + [0.75, 0.414], + [0.75, 0.7], + [0.25, 0.7], + ], + [ + [0.25, 0.271], + [0.25, 0.843], + ], + ], + ƿ: [ + [ + [0.25, 0.414], + [0.75, 0.271], + [0.75, 0.557], + [0.25, 0.7], + ], + [ + [0.25, 0.414], + [0.25, 0.843], + ], + ], + ƨ: [ + [ + [0.15, 0.414], + [0.85, 0.414], + [0.85, 0.486], + [0.15, 0.629], + [0.15, 0.7], + [0.85, 0.7], + ], + ], + ƽ: [ + [ + [0.15, 0.414], + [0.85, 0.414], + ], + [ + [0.35, 0.414], + [0.35, 0.557], + [0.85, 0.557], + [0.85, 0.7], + [0.15, 0.7], + ], + ], + ƅ: [ + [ + [0.15, 0.271], + [0.25, 0.271], + [0.25, 0.718], + ], + [ + [0.25, 0.414], + [0.85, 0.414], + [0.85, 0.7], + [0.25, 0.7], + ], + ], + ɂ: [ + [ + [0.15, 0.414], + [0.85, 0.414], + [0.85, 0.557], + [0.5, 0.557], + [0.5, 0.7], + ], + ], + ʕ: [ + [ + [0.85, 0.414], + [0.15, 0.414], + [0.15, 0.557], + [0.5, 0.557], + [0.5, 0.843], + ], + ], + ʡ: [ + [ + [0.15, 0.414], + [0.85, 0.414], + [0.85, 0.557], + [0.5, 0.557], + [0.5, 0.843], + ], + [ + [0.35, 0.7], + [0.65, 0.7], + ], + ], + ʢ: [ + [ + [0.85, 0.414], + [0.15, 0.414], + [0.15, 0.557], + [0.5, 0.557], + [0.5, 0.843], + ], + [ + [0.65, 0.7], + [0.35, 0.7], + ], + ], + ʖ: [ + [ + [0.15, 0.7], + [0.85, 0.7], + [0.85, 0.557], + [0.5, 0.557], + [0.5, 0.271], + ], + ], + ʗ: [ + [ + [0.75, 0.414], + [0.25, 0.414], + [0.25, 0.843], + [0.75, 0.843], + ], + ], + ʘ: [ + [ + [0.25, 0.414], + [0.75, 0.414], + [0.75, 0.7], + [0.25, 0.7], + [0.25, 0.414], + ], + [ + [0.5, 0.548], + [0.5, 0.566], + ], + ], + ʬ: [ + [ + [0.25, 0.414], + [0.33, 0.557], + [0.5, 0.414], + [0.66, 0.557], + [0.75, 0.414], + ], + [ + [0.25, 0.557], + [0.33, 0.7], + [0.5, 0.557], + [0.66, 0.7], + [0.75, 0.557], + ], + ], + ʭ: [ + [ + [0.25, 0.486], + [0.25, 0.414], + [0.75, 0.414], + [0.75, 0.486], + ], + [ + [0.25, 0.7], + [0.25, 0.629], + [0.75, 0.629], + [0.75, 0.7], + ], + ], +} as Font; +/* +const base = { + a: [ + [ + [0.85, 0.5], + [0.15, 0.5], + [0.15, 0.7], + [0.85, 0.7], + ], + [ + [0.85, 0.725], + [0.85, 0.3], + [0.3, 0.3], + ], + ], + æ: [ + [ + [0.5, 0.3], + [0.85, 0.3], + [0.85, 0.5], + [0.15, 0.5], + [0.15, 0.7], + [0.5, 0.7], + [0.5, 0.3], + [0.15, 0.3], + ], + [ + [0.5, 0.7], + [0.85, 0.7], + ], + ], + ɐ: [ + [ + [0.15, 0.5], + [0.85, 0.5], + [0.85, 0.3], + [0.15, 0.3], + [0.15, 0.7], + [0.7, 0.7], + ], + ], + ɑ: [ + [ + [0.85, 0.5], + [0.15, 0.5], + [0.15, 0.7], + [0.85, 0.7], + ], + [ + [0.85, 0.725], + [0.85, 0.3], + ], + ], + ɒ: [ + [ + [0.15, 0.5], + [0.85, 0.5], + [0.85, 0.3], + [0.15, 0.3], + ], + [ + [0.15, 0.275], + [0.15, 0.7], + ], + ], + + b: [ + [ + [0.15, 0.1], + [0.15, 0.725], + ], + [ + [0.15, 0.7], + [0.85, 0.7], + [0.85, 0.3], + [0.15, 0.3], + ], + ], + ʙ: [ + [ + [0.55, 0.5], + [0.55, 0.35], + [0.35, 0.35], + [0.35, 0.65], + [0.65, 0.65], + [0.65, 0.5], + [0.35, 0.5], + ], + ], + ƀ: [ + [ + [0.15, 0.1], + [0.15, 0.725], + ], + [ + [0.15, 0.7], + [0.85, 0.7], + [0.85, 0.3], + [0.15, 0.3], + ], + [ + [0.05, 0.165], + [0.25, 0.165], + ], + ], + ɓ: [ + [ + [0.35, 0.1], + [0.15, 0.1], + [0.15, 0.725], + ], + [ + [0.15, 0.7], + [0.85, 0.7], + [0.85, 0.3], + [0.15, 0.3], + ], + ], + ƃ: [ + [ + [0.85, 0.1], + [0.15, 0.1], + [0.15, 0.725], + ], + [ + [0.15, 0.7], + [0.85, 0.7], + [0.85, 0.3], + [0.15, 0.3], + ], + ], + + c: [ + [ + [0.85, 0.3], + [0.15, 0.3], + [0.15, 0.7], + [0.85, 0.7], + ], + ], + ɕ: [ + [ + [0.85, 0.3], + [0.15, 0.3], + [0.15, 0.7], + [0.85, 0.7], + [0.5, 0.55], + [0.15, 0.75], + ], + ], + + d: [ + [ + [0.85, 0.1], + [0.85, 0.725], + ], + [ + [0.85, 0.7], + [0.15, 0.7], + [0.15, 0.3], + [0.85, 0.3], + ], + ], + đ: [ + [ + [0.85, 0.1], + [0.85, 0.725], + ], + [ + [0.85, 0.7], + [0.15, 0.7], + [0.15, 0.3], + [0.85, 0.3], + ], + [ + [0.75, 0.165], + [0.95, 0.165], + ], + ], + ð: [ + [ + [0.5, 0.1], + [0.85, 0.3], + [0.85, 0.725], + ], + [ + [0.85, 0.7], + [0.15, 0.7], + [0.15, 0.3], + [0.85, 0.3], + ], + [ + [0.5, 0.2], + [0.65, 0.1], + ], + ], + ȸ: [ + [ + [0.5, 0.1], + [0.5, 0.725], + ], + [ + [0.15, 0.3], + [0.85, 0.3], + [0.85, 0.7], + [0.15, 0.7], + [0.15, 0.3], + ], + ], + dz: [ + [ + [0.45, 0.1], + [0.45, 0.725], + ], + [ + [0.45, 0.7], + [0.15, 0.7], + [0.15, 0.3], + [0.45, 0.3], + ], + [ + [0.55, 0.3], + [0.85, 0.3], + [0.55, 0.7], + [0.85, 0.7], + ], + ], + ʣ: [ + [ + [0.5, 0.1], + [0.5, 0.725], + ], + [ + [0.5, 0.7], + [0.15, 0.7], + [0.15, 0.3], + [0.5, 0.3], + ], + [ + [0.5, 0.3], + [0.85, 0.3], + [0.5, 0.7], + [0.85, 0.7], + ], + ], + dž: [ + [ + [0.45, 0.1], + [0.45, 0.725], + ], + [ + [0.45, 0.7], + [0.15, 0.7], + [0.15, 0.3], + [0.45, 0.3], + ], + [ + [0.55, 0.3], + [0.85, 0.3], + [0.55, 0.7], + [0.85, 0.7], + ], + [ + [0.55, 0.1], + [0.7, 0.2], + [0.85, 0.1], + ], + ], + ʥ: [ + [ + [0.5, 0.1], + [0.5, 0.725], + ], + [ + [0.5, 0.7], + [0.15, 0.7], + [0.15, 0.3], + [0.5, 0.3], + ], + [ + [0.5, 0.3], + [0.85, 0.3], + [0.5, 0.7], + [0.85, 0.7], + [0.85, 0.6], + [0.65, 0.8], + ], + ], + ʤ: [ + [ + [0.5, 0.1], + [0.5, 0.725], + ], + [ + [0.5, 0.7], + [0.15, 0.7], + [0.15, 0.3], + [0.5, 0.3], + ], + [ + [0.5, 0.3], + [0.85, 0.3], + [0.55, 0.55], + [0.85, 0.7], + [0.7, 0.9], + [0.5, 0.8], + ], + ], + ɗ: [ + [ + [0.95, 0.1], + [0.91, 0.11], + [0.85, 0.15], + [0.85, 0.725], + ], + [ + [0.85, 0.7], + [0.15, 0.7], + [0.15, 0.3], + [0.85, 0.3], + ], + ], + ƌ: [ + [ + [0.15, 0.15], + [0.85, 0.15], + [0.85, 0.725], + ], + [ + [0.85, 0.7], + [0.15, 0.7], + [0.15, 0.3], + [0.85, 0.3], + ], + ], + ȡ: [ + [ + [0.65, 0.1], + [0.65, 0.725], + ], + [ + [0.65, 0.7], + [0.15, 0.7], + [0.15, 0.3], + [0.65, 0.3], + ], + [ + [0.5, 0.7], + [0.85, 0.7], + [0.85, 0.6], + [0.65, 0.8], + ], + ], + ẟ: [ + [ + [0.75, 0.1], + [0.25, 0.1], + [0.25, 0.3], + [0.75, 0.3], + [0.75, 0.7], + [0.25, 0.7], + [0.25, 0.5], + [0.75, 0.5], + ], + ], + + e: [ + [ + [0.15, 0.5], + [0.85, 0.5], + [0.85, 0.3], + [0.15, 0.3], + [0.15, 0.7], + [0.85, 0.7], + ], + ], + ə: [ + [ + [0.85, 0.5], + [0.15, 0.5], + [0.15, 0.7], + [0.85, 0.7], + [0.85, 0.3], + [0.15, 0.3], + ], + ], + ǝ: [ + [ + [0.75, 0.5], + [0.25, 0.5], + [0.25, 0.65], + [0.75, 0.65], + [0.75, 0.35], + [0.25, 0.35], + ], + ], + ɛ: [ + [ + [0.75, 0.3], + [0.25, 0.3], + [0.25, 0.7], + [0.75, 0.7], + ], + [ + [0.25, 0.5], + [0.75, 0.5], + ], + ], + ɘ: [ + [ + [0.85, 0.5], + [0.15, 0.5], + [0.15, 0.3], + [0.85, 0.3], + [0.85, 0.7], + [0.15, 0.7], + ], + ], + ɚ: [ + [ + [0.95, 0.5], + [0.9, 0.45], + [0.9, 0.4], + [0.15, 0.55], + [0.225, 0.8], + [0.85, 0.7], + [0.75, 0.3], + [0.25, 0.4], + ], + ], + ɜ: [ + [ + [0.15, 0.3], + [0.85, 0.3], + [0.85, 0.7], + [0.15, 0.7], + ], + [ + [0.5, 0.5], + [0.85, 0.5], + ], + ], + ɝ: [ + [ + [0.15, 0.3], + [0.7, 0.3], + [0.7, 0.7], + [0.15, 0.7], + ], + [ + [0.5, 0.5], + [0.73, 0.5], + ], + [ + [0.85, 0.5], + [0.8, 0.45], + [0.8, 0.4], + [0.7, 0.4], + ], + ], + ɞ: [ + [ + [0.2, 0.3], + [0.8, 0.3], + [0.8, 0.7], + [0.2, 0.7], + [0.2, 0.3], + ], + [ + [0.5, 0.5], + [0.8, 0.5], + ], + ], + ʚ: [ + [ + [0.2, 0.3], + [0.8, 0.3], + [0.8, 0.7], + [0.2, 0.7], + [0.2, 0.3], + ], + [ + [0.2, 0.5], + [0.5, 0.5], + ], + ], + ɤ: [ + [ + [0.15, 0.4], + [0.25, 0.3], + [0.65, 0.6], + [0.5, 0.7], + [0.35, 0.6], + [0.75, 0.3], + [0.85, 0.4], + ], + ], + + f: [ + [ + [0.15, 0.5], + [0.7, 0.5], + ], + [ + [0.3, 0.7], + [0.3, 0.2], + [0.85, 0.2], + ], + ], + ʩ: [ + [ + [0.15, 0.5], + [0.5, 0.5], + ], + [ + [0.25, 0.7], + [0.25, 0.2], + [0.5, 0.2], + ], + [ + [0.5, 0.475], + [0.5, 0.7], + ], + [ + [0.5, 0.5], + [0.85, 0.5], + [0.85, 0.8], + [0.825, 0.85], + [0.75, 0.9], + ], + ], + ƒ: [ + [ + [0.15, 0.35], + [0.7, 0.35], + ], + [ + [0.25, 0.825], + [0.3, 0.89], + [0.325, 0.9], + [0.35, 0.89], + [0.4, 0.825], + [0.4, 0.8], + [0.4, 0.2], + [0.85, 0.2], + ], + ], + + g: [ + [ + [0.85, 0.7], + [0.15, 0.7], + [0.15, 0.3], + [0.85, 0.3], + ], + [ + [0.85, 0.275], + [0.85, 0.9], + [0.5, 0.9], + ], + ], + ɡ: [ + [ + [0.885, 0.72], + [0.115, 0.72], + [0.115, 0.28], + [0.885, 0.28], + ], + [ + [0.885, 0.2525], + [0.885, 0.94], + [0.5, 0.94], + ], + ], + ɢ: [ + [ + [0.725, 0.3], + [0.265, 0.3], + [0.265, 0.628], + [0.725, 0.628], + [0.725, 0.5], + [0.5, 0.5], + ], + ], + ǥ: [ + [ + [0.75, 0.7], + [0.15, 0.7], + [0.15, 0.3], + [0.75, 0.3], + ], + [ + [0.75, 0.275], + [0.75, 0.9], + [0.5, 0.9], + ], + [ + [0.65, 0.8], + [0.85, 0.8], + ], + ], + ʛ: [ + [ + [0.8, 0.2], + [0.75, 0.225], + [0.725, 0.25], + [0.725, 0.3], + [0.265, 0.3], + [0.265, 0.628], + [0.725, 0.628], + [0.725, 0.5], + [0.5, 0.5], + ], + ], + ɣ: [ + [ + [0.35, 0.3], + [0.55, 0.8], + [0.5, 0.85], + [0.45, 0.8], + [0.65, 0.3], + ], + ], + ƣ: [ + [ + [0.15, 0.4], + [0.65, 0.4], + [0.65, 0.75], + [0.15, 0.75], + [0.15, 0.4], + ], + [ + [0.65, 0.4], + [0.75, 0.35], + [0.85, 0.4], + [0.85, 0.9], + ], + ], + + h: [ + [ + [0.15, 0.7], + [0.15, 0.1], + ], + [ + [0.125, 0.3], + [0.85, 0.3], + [0.85, 0.7], + ], + ], + ħ: [ + [ + [0.25, 0.7], + [0.25, 0.1], + ], + [ + [0.225, 0.3], + [0.85, 0.3], + [0.85, 0.7], + ], + [ + [0.15, 0.2], + [0.35, 0.2], + ], + ], + ʜ: [ + [ + [0.265, 0.3], + [0.265, 0.628], + ], + [ + [0.265, 0.5], + [0.73, 0.5], + ], + [ + [0.73, 0.3], + [0.73, 0.628], + ], + ], + ƕ: [ + [ + [0.15, 0.7], + [0.15, 0.1], + ], + [ + [0.125, 0.3], + [0.5, 0.3], + [0.5, 0.7], + [0.85, 0.7], + [0.85, 0.3], + ], + ], + ɦ: [ + [ + [0.15, 0.7], + [0.15, 0.2], + [0.16, 0.145], + [0.2, 0.1], + ], + [ + [0.125, 0.3], + [0.85, 0.3], + [0.85, 0.7], + ], + ], + ɧ: [ + [ + [0.15, 0.7], + [0.15, 0.2], + [0.16, 0.145], + [0.2, 0.1], + ], + [ + [0.125, 0.3], + [0.85, 0.3], + [0.85, 0.8], + [0.83, 0.85], + [0.75, 0.9], + ], + ], + + i: [ + [ + [0.5, 0.1], + [0.5, 0.125], + ], + [ + [0.15, 0.3], + [0.5, 0.3], + [0.5, 0.7], + [0.65, 0.7], + ], + [ + [0.15, 0.7], + [0.85, 0.7], + ], + ], + ij: [ + [ + [0.35, 0.1], + [0.35, 0.125], + ], + [ + [0.15, 0.3], + [0.35, 0.3], + [0.35, 0.7], + [0.4, 0.7], + ], + [ + [0.35, 0.7], + [0.35, 0.7], + ], + [ + [0.65, 0.1], + [0.65, 0.125], + ], + [ + [0.5, 0.3], + [0.8, 0.3], + ], + [ + [0.65, 0.3], + [0.65, 0.9], + [0.35, 0.9], + ], + ], + ı: [ + [ + [0.15, 0.3], + [0.5, 0.3], + [0.5, 0.7], + [0.65, 0.7], + ], + [ + [0.15, 0.7], + [0.85, 0.7], + ], + ], + ɪ: [ + [ + [0.265, 0.3], + [0.73, 0.3], + ], + [ + [0.265, 0.628], + [0.73, 0.628], + ], + [ + [0.5, 0.3], + [0.5, 0.628], + ], + ], + ɨ: [ + [ + [0.5, 0.1], + [0.5, 0.125], + ], + [ + [0.15, 0.3], + [0.5, 0.3], + [0.5, 0.7], + [0.65, 0.7], + ], + [ + [0.15, 0.7], + [0.85, 0.7], + ], + [ + [0.35, 0.45], + [0.65, 0.45], + ], + ], + ɩ: [ + [ + [0.5, 0.3], + [0.5, 0.6], + [0.55, 0.65], + [0.6, 0.68], + [0.65, 0.7], + ], + ], + + j: [ + [ + [0.6, 0.1], + [0.6, 0.125], + ], + [ + [0.15, 0.3], + [0.85, 0.3], + ], + [ + [0.6, 0.3], + [0.6, 0.9], + [0.15, 0.9], + ], + ], + ȷ: [ + [ + [0.15, 0.3], + [0.85, 0.3], + ], + [ + [0.6, 0.3], + [0.6, 0.9], + [0.15, 0.9], + ], + ], + ɉ: [ + [ + [0.6, 0.1], + [0.6, 0.125], + ], + [ + [0.15, 0.3], + [0.85, 0.3], + ], + [ + [0.6, 0.3], + [0.6, 0.9], + [0.15, 0.9], + ], + [ + [0.45, 0.45], + [0.75, 0.45], + ], + ], + ʝ: [ + [ + [0.6, 0.1], + [0.6, 0.125], + ], + [ + [0.15, 0.3], + [0.85, 0.3], + ], + [ + [0.6, 0.3], + [0.6, 0.9], + [0.15, 0.9], + [0.15, 0.7], + [0.75, 0.7], + ], + ], + ɟ: [ + [ + [0.15, 0.3], + [0.85, 0.3], + ], + [ + [0.6, 0.3], + [0.6, 0.9], + [0.15, 0.9], + ], + [ + [0.45, 0.65], + [0.75, 0.65], + ], + ], + ʄ: [ + [ + [0.75, 0.15], + [0.7, 0.15], + [0.64, 0.18], + [0.6, 0.25], + [0.6, 0.9], + [0.15, 0.9], + ], + [ + [0.45, 0.65], + [0.75, 0.65], + ], + ], + + k: [ + [ + [0.15, 0.7], + [0.15, 0.1], + ], + [ + [0.85, 0.3], + [0.15, 0.5], + [0.85, 0.7], + ], + ], + ƙ: [ + [ + [0.15, 0.7], + [0.15, 0.3], + [0.17, 0.2], + [0.23, 0.12], + [0.3, 0.1], + ], + [ + [0.85, 0.3], + [0.15, 0.5], + [0.85, 0.7], + ], + ], + ʞ: [ + [ + [0.85, 0.3], + [0.85, 0.9], + ], + [ + [0.15, 0.7], + [0.85, 0.5], + [0.15, 0.3], + ], + ], + l: [ + [ + [0.15, 0.1], + [0.4, 0.1], + [0.4, 0.7], + ], + [ + [0.15, 0.7], + [0.85, 0.7], + ], + ], + ł: [ + [ + [0.15, 0.1], + [0.4, 0.1], + [0.4, 0.7], + ], + [ + [0.15, 0.7], + [0.85, 0.7], + ], + [ + [0.25, 0.5], + [0.55, 0.4], + ], + ], + ŀ: [ + [ + [0.15, 0.1], + [0.4, 0.1], + [0.4, 0.7], + ], + [ + [0.15, 0.7], + [0.85, 0.7], + ], + [ + [0.6, 0.425], + [0.6, 0.475], + ], + ], + lj: [ + [ + [0.15, 0.1], + [0.35, 0.1], + [0.35, 0.7], + ], + [ + [0.15, 0.7], + [0.55, 0.7], + ], + + [ + [0.65, 0.1], + [0.65, 0.125], + ], + [ + [0.5, 0.3], + [0.85, 0.3], + ], + [ + [0.65, 0.3], + [0.65, 0.9], + [0.5, 0.9], + ], + ], + ỻ: [ + [ + [0.35, 0.1], + [0.35, 0.7], + ], + [ + [0.65, 0.1], + [0.65, 0.7], + ], + [ + [0.25, 0.15], + [0.75, 0.15], + ], + ], + ʪ: [ + [ + [0.15, 0.1], + [0.35, 0.1], + [0.35, 0.7], + ], + [ + [0.15, 0.7], + [0.85, 0.7], + [0.85, 0.5], + [0.55, 0.5], + [0.55, 0.2], + [0.85, 0.2], + ], + ], + ʫ: [ + [ + [0.15, 0.1], + [0.35, 0.1], + [0.35, 0.7], + ], + [ + [0.15, 0.7], + [0.85, 0.7], + ], + [ + [0.5, 0.2], + [0.85, 0.2], + [0.5, 0.7], + ], + ], + ʟ: [ + [ + [0.265, 0.3], + [0.265, 0.628], + [0.73, 0.628], + ], + ], + ƚ: [ + [ + [0.15, 0.1], + [0.4, 0.1], + [0.4, 0.7], + ], + [ + [0.15, 0.7], + [0.85, 0.7], + ], + [ + [0.25, 0.45], + [0.55, 0.45], + ], + ], + ɫ: [ + [ + [0.15, 0.1], + [0.4, 0.1], + [0.4, 0.7], + ], + [ + [0.15, 0.7], + [0.85, 0.7], + ], + [ + [0.25, 0.5], + [0.25, 0.4], + [0.55, 0.5], + [0.55, 0.4], + ], + ], + ɬ: [ + [ + [0.15, 0.1], + [0.4, 0.1], + [0.4, 0.7], + ], + [ + [0.15, 0.7], + [0.85, 0.7], + ], + [ + [0.4, 0.45], + [0.4, 0.4], + [0.25, 0.4], + [0.25, 0.55], + [0.75, 0.55], + ], + ], + ɭ: [ + [ + [0.15, 0.1], + [0.4, 0.1], + [0.4, 0.9], + [0.5, 0.9], + ], + ], + ȴ: [ + [ + [0.5, 0.1], + [0.5, 0.9], + [0.75, 0.9], + [0.75, 0.7], + [0.3, 0.8], + [0.3, 0.9], + ], + ], + ɮ: [ + [ + [0.15, 0.1], + [0.35, 0.1], + [0.35, 0.7], + ], + [ + [0.15, 0.7], + [0.5, 0.7], + ], + [ + [0.35, 0.3], + [0.85, 0.3], + [0.55, 0.55], + [0.85, 0.7], + [0.7, 0.9], + [0.5, 0.8], + ], + ], + ƛ: [ + [ + [0.3, 0.15], + [0.5, 0.2], + [0.85, 0.7], + ], + [ + [0.62, 0.4], + [0.15, 0.7], + ], + [ + [0.48, 0.35], + [0.65, 0.25], + ], + ], + ʎ: [ + [ + [0.7, 0.15], + [0.5, 0.2], + [0.15, 0.7], + ], + [ + [0.38, 0.4], + [0.85, 0.7], + ], + ], + + m: [ + [ + [0.15, 0.7], + [0.15, 0.275], + ], + [ + [0.15, 0.3], + [0.85, 0.3], + [0.85, 0.7], + ], + [ + [0.5, 0.3], + [0.5, 0.7], + ], + ], + + n: [ + [ + [0.15, 0.7], + [0.15, 0.275], + ], + [ + [0.15, 0.3], + [0.85, 0.3], + [0.85, 0.7], + ], + ], + nj: [ + [ + [0.15, 0.7], + [0.15, 0.275], + ], + [ + [0.15, 0.3], + [0.45, 0.3], + [0.45, 0.7], + ], + [ + [0.7, 0.1], + [0.7, 0.125], + ], + [ + [0.55, 0.3], + [0.85, 0.3], + ], + [ + [0.7, 0.3], + [0.7, 0.9], + [0.45, 0.9], + ], + ], + ɴ: [ + [ + [0.265, 0.628], + [0.265, 0.3], + [0.73, 0.628], + [0.73, 0.3], + ], + ], + ɲ: [ + [ + [0.1, 0.77], + [0.125, 0.75], + [0.15, 0.7], + [0.15, 0.275], + ], + [ + [0.15, 0.3], + [0.85, 0.3], + [0.85, 0.7], + ], + ], + ƞ: [ + [ + [0.15, 0.7], + [0.15, 0.275], + ], + [ + [0.15, 0.3], + [0.85, 0.3], + [0.85, 0.9], + ], + ], + ɳ: [ + [ + [0.15, 0.7], + [0.15, 0.275], + ], + [ + [0.15, 0.3], + [0.77, 0.3], + [0.77, 0.85], + [0.85, 0.9], + ], + ], + ȵ: [ + [ + [0.15, 0.7], + [0.15, 0.275], + ], + [ + [0.15, 0.3], + [0.65, 0.3], + [0.65, 0.9], + [0.85, 0.9], + [0.85, 0.7], + [0.5, 0.9], + ], + ], + + o: [ + [ + [0.15, 0.7], + [0.15, 0.3], + [0.85, 0.3], + [0.85, 0.7], + [0.15, 0.7], + ], + ], + ɶ: [ + [ + [0.265, 0.3], + [0.265, 0.628], + [0.5, 0.628], + [0.5, 0.3], + [0.265, 0.3], + ], + [ + [0.73, 0.3], + [0.5, 0.3], + ], + [ + [0.5, 0.628], + [0.73, 0.628], + ], + [ + [0.5, 0.5], + [0.65, 0.5], + ], + ], + ɔ: [ + [ + [0.15, 0.7], + [0.85, 0.7], + [0.85, 0.3], + [0.15, 0.3], + ], + ], + ɵ: [ + [ + [0.15, 0.7], + [0.15, 0.3], + [0.85, 0.3], + [0.85, 0.7], + [0.15, 0.7], + ], + [ + [0.15, 0.5], + [0.85, 0.5], + ], + ], + ɷ: [ + [ + [0.15, 0.7], + [0.15, 0.3], + [0.85, 0.3], + [0.85, 0.7], + [0.15, 0.7], + ], + [ + [0.5, 0.7], + [0.5, 0.5], + ], + ], + ȣ: [ + [ + [0.15, 0.7], + [0.15, 0.3], + [0.85, 0.3], + [0.85, 0.7], + [0.15, 0.7], + ], + [ + [0.15, 0.3], + [0.15, 0.1], + ], + [ + [0.85, 0.3], + [0.85, 0.1], + ], + ], + œ: [ + [ + [0.5, 0.3], + [0.85, 0.3], + [0.85, 0.5], + [0.5, 0.5], + [0.5, 0.3], + [0.15, 0.3], + [0.15, 0.7], + [0.5, 0.7], + [0.5, 0.5], + ], + [ + [0.5, 0.7], + [0.85, 0.7], + ], + ], + + p: [ + [ + [0.15, 0.9], + [0.15, 0.3], + [0.85, 0.3], + [0.85, 0.7], + [0.125, 0.7], + ], + ], + + ƥ: [ + [ + [0.15, 0.3], + [0.85, 0.3], + [0.85, 0.7], + [0.15, 0.7], + ], + [ + [0.15, 0.9], + [0.15, 0.2], + [0.16, 0.145], + [0.2, 0.1], + ], + ], + ɸ: [ + [ + [0.15, 0.7], + [0.15, 0.3], + [0.85, 0.3], + [0.85, 0.7], + [0.15, 0.7], + ], + [ + [0.5, 0.9], + [0.5, 0.1], + ], + ], + + q: [ + [ + [0.85, 0.9], + [0.85, 0.3], + [0.15, 0.3], + [0.15, 0.7], + [0.875, 0.7], + ], + ], + ȹ: [ + [ + [0.85, 0.7], + [0.85, 0.3], + [0.15, 0.3], + [0.15, 0.7], + [0.85, 0.7], + ], + [ + [0.5, 0.3], + [0.5, 0.9], + ], + ], + ɋ: [ + [ + [0.85, 0.9], + [0.77, 0.85], + [0.77, 0.3], + [0.15, 0.3], + [0.15, 0.7], + [0.8, 0.7], + ], + ], + ĸ: [ + [ + [0.265, 0.3], + [0.265, 0.628], + ], + [ + [0.73, 0.3], + [0.265, 0.5], + [0.73, 0.628], + ], + ], + + r: [ + [ + [0.85, 0.3], + [0.35, 0.3], + [0.15, 0.4], + ], + [ + [0.15, 0.275], + [0.15, 0.7], + ], + ], + ʀ: [ + [ + [0.265, 0.5], + [0.73, 0.5], + [0.73, 0.3], + [0.265, 0.3], + [0.265, 0.628], + ], + [ + [0.265, 0.5], + [0.73, 0.628], + ], + ], + ɍ: [ + [ + [0.85, 0.3], + [0.45, 0.3], + [0.25, 0.4], + ], + [ + [0.25, 0.275], + [0.25, 0.7], + ], + [ + [0.15, 0.5125], + [0.35, 0.5125], + ], + ], + ɹ: [ + [ + [0.15, 0.7], + [0.65, 0.7], + [0.85, 0.6], + ], + [ + [0.85, 0.725], + [0.85, 0.3], + ], + ], + ɺ: [ + [ + [0.15, 0.7], + [0.65, 0.7], + [0.85, 0.6], + ], + [ + [0.85, 0.725], + [0.85, 0.1], + ], + ], + ɻ: [ + [ + [0.15, 0.7], + [0.65, 0.7], + [0.77, 0.6], + ], + [ + [0.85, 0.9], + [0.77, 0.85], + [0.77, 0.725], + [0.77, 0.3], + ], + ], + ɼ: [ + [ + [0.85, 0.3], + [0.35, 0.3], + [0.15, 0.4], + ], + [ + [0.15, 0.275], + [0.15, 0.9], + ], + ], + ɽ: [ + [ + [0.85, 0.3], + [0.35, 0.3], + [0.15, 0.4], + ], + [ + [0.15, 0.275], + [0.15, 0.85], + [0.175, 0.875], + [0.25, 0.9], + ], + ], + ɾ: [ + [ + [0.85, 0.3], + [0.35, 0.3], + [0.15, 0.4], + [0.15, 0.7], + ], + ], + ɿ: [ + [ + [0.15, 0.3], + [0.65, 0.3], + [0.85, 0.4], + [0.85, 0.9], + ], + ], + ʁ: [ + [ + [0.265, 0.5], + [0.73, 0.5], + [0.73, 0.7], + [0.265, 0.7], + [0.265, 0.364], + ], + [ + [0.265, 0.496], + [0.73, 0.364], + ], + ], + + s: [ + [ + [0.85, 0.3], + [0.15, 0.3], + [0.15, 0.5], + [0.85, 0.5], + [0.85, 0.7], + [0.15, 0.7], + ], + ], + ſ: [ + [ + [0.85, 0.3], + [0.35, 0.3], + [0.35, 0.9], + ], + ], + ß: [ + [ + [0.15, 0.7], + [0.15, 0.25], + [0.5, 0.25], + [0.5, 0.35], + [0.35, 0.35], + [0.35, 0.5], + [0.85, 0.5], + [0.85, 0.7], + [0.35, 0.7], + ], + ], + ȿ: [ + [ + [0.85, 0.3], + [0.15, 0.3], + [0.15, 0.5], + [0.85, 0.5], + [0.85, 0.7], + [0.15, 0.7], + ], + [ + [0.15, 0.7], + [0.25, 0.8], + [0.35, 0.8], + ], + ], + ẜ: [ + [ + [0.85, 0.3], + [0.35, 0.3], + [0.35, 0.9], + ], + [ + [0.15, 0.6], + [0.55, 0.4], + ], + ], + ẝ: [ + [ + [0.85, 0.3], + [0.35, 0.3], + [0.35, 0.9], + ], + [ + [0.15, 0.55], + [0.55, 0.55], + ], + ], + ʃ: [ + [ + [0.85, 0.3], + [0.5, 0.3], + [0.5, 0.9], + [0.15, 0.9], + ], + ], + ƪ: [ + [ + [0.45, 0.45], + [0.3, 0.45], + [0.3, 0.3], + [0.45, 0.3], + [0.45, 0.9], + [0.75, 0.9], + ], + ], + ʅ: [ + [ + [0.25, 0.3], + [0.5, 0.3], + [0.5, 0.9], + [0.75, 0.9], + ], + ], + ʆ: [ + [ + [0.85, 0.3], + [0.45, 0.3], + [0.45, 0.9], + [0.25, 0.9], + [0.25, 0.75], + [0.5, 0.75], + ], + ], + + t: [ + [ + [0.15, 0.3], + [0.85, 0.3], + ], + [ + [0.35, 0.2], + [0.35, 0.7], + [0.85, 0.7], + ], + ], + ʨ: [ + [ + [0.15, 0.3], + [0.5, 0.3], + ], + [ + [0.25, 0.2], + [0.25, 0.7], + [0.85, 0.6], + [0.85, 0.7], + [0.6, 0.7], + [0.6, 0.3], + [0.85, 0.3], + ], + ], + ƾ: [ + [ + [0.15, 0.3], + [0.85, 0.3], + ], + [ + [0.35, 0.2], + [0.35, 0.5], + [0.65, 0.5], + [0.65, 0.7], + [0.15, 0.7], + ], + ], + ʦ: [ + [ + [0.15, 0.3], + [0.5, 0.3], + ], + [ + [0.25, 0.2], + [0.25, 0.7], + [0.85, 0.7], + [0.85, 0.5], + [0.6, 0.5], + [0.6, 0.3], + [0.85, 0.3], + ], + ], + ʧ: [ + [ + [0.15, 0.3], + [0.5, 0.3], + ], + [ + [0.25, 0.2], + [0.25, 0.7], + [0.5, 0.7], + ], + [ + [0.75, 0.15], + [0.5, 0.15], + [0.5, 0.9], + [0.4, 0.9], + ], + ], + ŧ: [ + [ + [0.15, 0.3], + [0.85, 0.3], + ], + [ + [0.15, 0.5], + [0.85, 0.5], + ], + [ + [0.35, 0.2], + [0.35, 0.7], + [0.85, 0.7], + ], + ], + ƭ: [ + [ + [0.15, 0.3], + [0.85, 0.3], + ], + [ + [0.5, 0.2], + [0.35, 0.2], + [0.35, 0.7], + [0.85, 0.7], + ], + ], + ʈ: [ + [ + [0.15, 0.3], + [0.85, 0.3], + ], + [ + [0.35, 0.2], + [0.35, 0.9], + [0.65, 0.9], + ], + ], + ȶ: [ + [ + [0.25, 0.3], + [0.85, 0.3], + ], + [ + [0.5, 0.2], + [0.5, 0.7], + [0.85, 0.7], + [0.85, 0.5], + [0.25, 0.7], + ], + ], + ʇ: [ + [ + [0.85, 0.7], + [0.15, 0.7], + ], + [ + [0.65, 0.8], + [0.65, 0.3], + [0.15, 0.3], + ], + ], + + u: [ + [ + [0.15, 0.3], + [0.15, 0.7], + [0.85, 0.7], + ], + [ + [0.85, 0.75], + [0.85, 0.3], + ], + ], + ʉ: [ + [ + [0.25, 0.3], + [0.25, 0.7], + [0.75, 0.7], + ], + [ + [0.75, 0.75], + [0.75, 0.3], + ], + [ + [0.15, 0.45], + [0.85, 0.45], + ], + ], + ɥ: [ + [ + [0.25, 0.3], + [0.25, 0.7], + [0.8, 0.7], + ], + [ + [0.75, 0.9], + [0.75, 0.3], + ], + ], + ʮ: [ + [ + [0.25, 0.3], + [0.35, 0.3], + [0.35, 0.7], + [0.8, 0.7], + ], + [ + [0.75, 0.9], + [0.75, 0.3], + ], + ], + ʯ: [ + [ + [0.25, 0.3], + [0.35, 0.3], + [0.35, 0.7], + [0.8, 0.7], + ], + [ + [0.85, 0.9], + [0.75, 0.9], + [0.75, 0.3], + ], + ], + ɯ: [ + [ + [0.85, 0.3], + [0.85, 0.725], + ], + [ + [0.85, 0.7], + [0.15, 0.7], + [0.15, 0.3], + ], + [ + [0.5, 0.3], + [0.5, 0.7], + ], + ], + ɰ: [ + [ + [0.75, 0.3], + [0.75, 0.9], + ], + [ + [0.75, 0.7], + [0.25, 0.7], + [0.25, 0.3], + ], + [ + [0.5, 0.3], + [0.5, 0.7], + ], + ], + ʊ: [ + [ + [0.15, 0.3], + [0.45, 0.3], + [0.25, 0.7], + [0.75, 0.7], + [0.55, 0.3], + [0.85, 0.3], + ], + ], + + v: [ + [ + [0.15, 0.3], + [0.5, 0.7], + [0.85, 0.3], + ], + ], + ʋ: [ + [ + [0.15, 0.3], + [0.5, 0.7], + [0.85, 0.3], + [0.65, 0.3], + ], + ], + ỽ: [ + [ + [0.15, 0.15], + [0.5, 0.7], + [0.85, 0.4], + [0.65, 0.4], + ], + ], + ʌ: [ + [ + [0.15, 0.7], + [0.5, 0.3], + [0.85, 0.7], + ], + ], + + w: [ + [ + [0.15, 0.3], + [0.15, 0.725], + ], + [ + [0.15, 0.7], + [0.85, 0.7], + [0.85, 0.3], + ], + [ + [0.5, 0.3], + [0.5, 0.7], + ], + ], + ʍ: [ + [ + [0.85, 0.7], + [0.85, 0.275], + ], + [ + [0.85, 0.3], + [0.15, 0.3], + [0.15, 0.7], + ], + [ + [0.5, 0.7], + [0.5, 0.3], + ], + ], + + x: [ + [ + [0.15, 0.3], + [0.85, 0.7], + ], + [ + [0.85, 0.3], + [0.15, 0.7], + ], + ], + + y: [ + [ + [0.15, 0.3], + [0.15, 0.7], + [0.875, 0.7], + ], + [ + [0.85, 0.3], + [0.85, 0.9], + [0.5, 0.9], + ], + ], + ʏ: [ + [ + [0.265, 0.3], + [0.5, 0.5], + [0.73, 0.3], + ], + [ + [0.5, 0.5], + [0.5, 0.628], + ], + ], + ɏ: [ + [ + [0.25, 0.3], + [0.25, 0.7], + [0.775, 0.7], + ], + [ + [0.75, 0.3], + [0.75, 0.9], + [0.5, 0.9], + ], + [ + [0.15, 0.5], + [0.85, 0.5], + ], + ], + ƴ: [ + [ + [0.15, 0.3], + [0.15, 0.7], + [0.775, 0.7], + ], + [ + [0.85, 0.3], + [0.75, 0.3], + [0.75, 0.9], + [0.5, 0.9], + ], + ], + ỿ: [ + [ + [0.15, 0.3], + [0.15, 0.7], + [0.775, 0.7], + ], + [ + [0.75, 0.3], + [0.75, 0.9], + [0.5, 0.9], + [0.85, 0.7], + ], + ], + ȝ: [ + [ + [0.25, 0.4], + [0.75, 0.3], + [0.75, 0.65], + [0.25, 0.75], + ], + [ + [0.5, 0.55], + [0.75, 0.5], + ], + ], + + z: [ + [ + [0.15, 0.3], + [0.85, 0.3], + [0.15, 0.7], + [0.85, 0.7], + ], + ], + ƍ: [ + [ + [0.15, 0.3], + [0.85, 0.3], + [0.85, 0.7], + [0.15, 0.7], + [0.15, 0.3], + ], + [ + [0.15, 0.7], + [0.85, 0.9], + [0.15, 0.9], + ], + ], + ƶ: [ + [ + [0.15, 0.3], + [0.85, 0.3], + [0.15, 0.7], + [0.85, 0.7], + ], + [ + [0.35, 0.5], + [0.65, 0.5], + ], + ], + ʐ: [ + [ + [0.15, 0.3], + [0.85, 0.3], + [0.15, 0.7], + [0.85, 0.7], + [0.85, 0.87], + [0.9, 0.9], + ], + ], + ʑ: [ + [ + [0.15, 0.3], + [0.85, 0.3], + [0.15, 0.7], + [0.85, 0.7], + [0.85, 0.6], + [0.65, 0.6], + [0.35, 0.8], + ], + ], + ɀ: [ + [ + [0.15, 0.3], + [0.85, 0.3], + [0.15, 0.7], + [0.5, 0.9], + [0.85, 0.9], + ], + ], + ʒ: [ + [ + [0.15, 0.3], + [0.85, 0.3], + [0.5, 0.7], + [0.85, 0.7], + [0.85, 0.9], + [0.15, 0.9], + ], + ], + ƹ: [ + [ + [0.85, 0.3], + [0.15, 0.3], + [0.5, 0.7], + [0.15, 0.7], + [0.15, 0.9], + [0.85, 0.9], + ], + ], + ƺ: [ + [ + [0.15, 0.3], + [0.85, 0.3], + [0.5, 0.5], + [0.85, 0.5], + [0.85, 0.7], + [0.15, 0.7], + [0.15, 0.9], + [0.7, 0.9], + ], + ], + ʓ: [ + [ + [0.15, 0.3], + [0.85, 0.3], + [0.5, 0.5], + [0.85, 0.5], + [0.85, 0.7], + [0.15, 0.7], + [0.15, 0.5], + [0.65, 0.9], + ], + ], + þ: [ + [ + [0.25, 0.3], + [0.75, 0.3], + [0.75, 0.7], + [0.25, 0.7], + ], + [ + [0.25, 0.1], + [0.25, 0.9], + ], + ], + ƿ: [ + [ + [0.25, 0.3], + [0.75, 0.1], + [0.75, 0.5], + [0.25, 0.7], + ], + [ + [0.25, 0.3], + [0.25, 0.9], + ], + ], + ƨ: [ + [ + [0.15, 0.3], + [0.85, 0.3], + [0.85, 0.4], + [0.15, 0.6], + [0.15, 0.7], + [0.85, 0.7], + ], + ], + ƽ: [ + [ + [0.15, 0.3], + [0.85, 0.3], + ], + [ + [0.35, 0.3], + [0.35, 0.5], + [0.85, 0.5], + [0.85, 0.7], + [0.15, 0.7], + ], + ], + ƅ: [ + [ + [0.15, 0.1], + [0.25, 0.1], + [0.25, 0.725], + ], + [ + [0.25, 0.3], + [0.85, 0.3], + [0.85, 0.7], + [0.25, 0.7], + ], + ], + ɂ: [ + [ + [0.15, 0.3], + [0.85, 0.3], + [0.85, 0.5], + [0.5, 0.5], + [0.5, 0.7], + ], + ], + ʕ: [ + [ + [0.85, 0.3], + [0.15, 0.3], + [0.15, 0.5], + [0.5, 0.5], + [0.5, 0.9], + ], + ], + ʡ: [ + [ + [0.15, 0.3], + [0.85, 0.3], + [0.85, 0.5], + [0.5, 0.5], + [0.5, 0.9], + ], + [ + [0.35, 0.7], + [0.65, 0.7], + ], + ], + ʢ: [ + [ + [0.85, 0.3], + [0.15, 0.3], + [0.15, 0.5], + [0.5, 0.5], + [0.5, 0.9], + ], + [ + [0.65, 0.7], + [0.35, 0.7], + ], + ], + ʖ: [ + [ + [0.15, 0.7], + [0.85, 0.7], + [0.85, 0.5], + [0.5, 0.5], + [0.5, 0.1], + ], + ], + ʗ: [ + [ + [0.75, 0.3], + [0.25, 0.3], + [0.25, 0.9], + [0.75, 0.9], + ], + ], + ʘ: [ + [ + [0.25, 0.3], + [0.75, 0.3], + [0.75, 0.7], + [0.25, 0.7], + [0.25, 0.3], + ], + [ + [0.5, 0.4875], + [0.5, 0.5125], + ], + ], + ʬ: [ + [ + [0.25, 0.3], + [0.33, 0.5], + [0.5, 0.3], + [0.66, 0.5], + [0.75, 0.3], + ], + [ + [0.25, 0.5], + [0.33, 0.7], + [0.5, 0.5], + [0.66, 0.7], + [0.75, 0.5], + ], + ], + ʭ: [ + [ + [0.25, 0.4], + [0.25, 0.3], + [0.75, 0.3], + [0.75, 0.4], + ], + [ + [0.25, 0.7], + [0.25, 0.6], + [0.75, 0.6], + [0.75, 0.7], + ], + ], +} as Font; + +const keys = Object.keys(base); +const r = (x: number) => Math.round(x * 1000) / 1000; +const remapped = {} as Font; + +keys.forEach((k: keyof Font) => { + const g = base[k].map((l) => l.map((v) => [v[0], r(v[1] / 1.4 + 0.2)])); + remapped[k] = g; +}); +console.log(JSON.stringify(remapped)); +*/ +export { base }; diff --git a/src/glyphs/lowercase/diaBaseAssociation.ts b/src/lowercase/diaBaseAssociation.ts similarity index 98% rename from src/glyphs/lowercase/diaBaseAssociation.ts rename to src/lowercase/diaBaseAssociation.ts index 4d8826c..ce12ffc 100644 --- a/src/glyphs/lowercase/diaBaseAssociation.ts +++ b/src/lowercase/diaBaseAssociation.ts @@ -1,4 +1,4 @@ -import { type ExtendedTable } from "../../type"; +import { type ExtendedTable } from "../type"; // Associate diacritics with existing glyph const diaBaseAssociation = { @@ -17,7 +17,7 @@ const diaBaseAssociation = { ẩ: ["a", ["cr", "ha"]], ǎ: ["a", ["hc"]], å: ["a", ["gs"]], - ǻ: ["a", ["gs", "ha"]], + ǻ: ["a", ["gs", "ct"]], ä: ["a", ["dr"]], ǟ: ["a", ["dr", "mc"]], ã: ["a", ["tl"]], diff --git a/src/glyphs/uppercase/index.ts b/src/lowercase/index.ts similarity index 67% rename from src/glyphs/uppercase/index.ts rename to src/lowercase/index.ts index 452e5fe..97a6518 100644 --- a/src/glyphs/uppercase/index.ts +++ b/src/lowercase/index.ts @@ -1,14 +1,15 @@ -import { Font, Glyph, DiaGroup } from "../../type"; +import { Font, Glyph, DiaGroup } from "../type"; import { base } from "./base"; import { diaBaseAssociation } from "./diaBaseAssociation"; -import { mergeDia } from "../mergeDia"; +import { mergeDiacritics } from "../diacritics/mergeDiacritics"; +import diacritics from "../diacritics/glyphs" // Clone exisiting glyph and add diacritical marks const diacriticized = {} as Font; Object.keys(diaBaseAssociation).map((char) => { diacriticized[char as keyof typeof diacriticized] = [ ...base[diaBaseAssociation[char][0] as keyof Font], - ...mergeDia(diaBaseAssociation[char][1] as DiaGroup), + ...mergeDiacritics(diaBaseAssociation[char][1] as DiaGroup, diacritics), ] as Glyph; }); diff --git a/src/glyphs/number.ts b/src/number.ts similarity index 69% rename from src/glyphs/number.ts rename to src/number.ts index a247b70..bb0cd7e 100644 --- a/src/glyphs/number.ts +++ b/src/number.ts @@ -1,21 +1,21 @@ const number = { 0: [ [ - [0.15, 0.2], + [0.15, 0.271], [0.15, 0.7], [0.85, 0.7], - [0.85, 0.2], - [0.15, 0.2], + [0.85, 0.271], + [0.15, 0.271], ], [ - [0.15, 0.2], + [0.15, 0.271], [0.85, 0.7], ], ], 1: [ [ [0.15, 0.3], - [0.5, 0.2], + [0.5, 0.271], [0.5, 0.7], ], [ @@ -25,8 +25,8 @@ const number = { ], 2: [ [ - [0.15, 0.2], - [0.85, 0.2], + [0.15, 0.271], + [0.85, 0.271], [0.85, 0.4], [0.15, 0.4], [0.15, 0.7], @@ -35,8 +35,8 @@ const number = { ], 3: [ [ - [0.15, 0.2], - [0.85, 0.2], + [0.15, 0.271], + [0.85, 0.271], [0.85, 0.7], [0.15, 0.7], ], @@ -47,19 +47,19 @@ const number = { ], 4: [ [ - [0.15, 0.2], + [0.15, 0.271], [0.15, 0.6], [0.85, 0.6], ], [ - [0.75, 0.2], + [0.75, 0.271], [0.75, 0.7], ], ], 5: [ [ - [0.75, 0.2], - [0.15, 0.2], + [0.75, 0.271], + [0.15, 0.271], [0.15, 0.4], [0.85, 0.4], [0.85, 0.7], @@ -68,8 +68,8 @@ const number = { ], 6: [ [ - [0.85, 0.2], - [0.15, 0.2], + [0.85, 0.271], + [0.15, 0.271], [0.15, 0.7], [0.85, 0.7], [0.85, 0.4], @@ -78,8 +78,8 @@ const number = { ], 7: [ [ - [0.15, 0.2], - [0.75, 0.2], + [0.15, 0.271], + [0.75, 0.271], [0.75, 0.7], ], [ @@ -89,11 +89,11 @@ const number = { ], 8: [ [ - [0.15, 0.2], + [0.15, 0.271], [0.15, 0.7], [0.85, 0.7], - [0.85, 0.2], - [0.15, 0.2], + [0.85, 0.271], + [0.15, 0.271], ], [ [0.15, 0.4], @@ -104,8 +104,8 @@ const number = { [ [0.85, 0.4], [0.15, 0.4], - [0.15, 0.2], - [0.85, 0.2], + [0.15, 0.271], + [0.85, 0.271], [0.85, 0.7], [0.15, 0.7], ], diff --git a/src/glyphs/poncuation.ts b/src/poncuation.ts similarity index 100% rename from src/glyphs/poncuation.ts rename to src/poncuation.ts diff --git a/src/uppercase/base.ts b/src/uppercase/base.ts new file mode 100644 index 0000000..e605dd6 --- /dev/null +++ b/src/uppercase/base.ts @@ -0,0 +1,817 @@ +import { type Font } from "../type"; + +const base = { + A: [ + [ + [0.85, 0.7], + [0.85, 0.271], + [0.15, 0.271], + [0.15, 0.7], + ], + [ + [0.15, 0.557], + [0.85, 0.557], + ], + ], + Æ: [ + [ + [0.5, 0.7], + [0.5, 0.271], + [0.15, 0.271], + [0.15, 0.7], + ], + [ + [0.15, 0.557], + [0.6, 0.557], + ], + [ + [0.85, 0.271], + [0.5, 0.271], + [0.5, 0.7], + [0.85, 0.7], + ], + ], + B: [ + [ + [0.6, 0.557], + [0.6, 0.271], + [0.15, 0.271], + [0.15, 0.7], + [0.85, 0.7], + [0.85, 0.557], + [0.15, 0.557], + ], + ], + Ƀ: [ + [ + [0.6, 0.557], + [0.6, 0.271], + [0.25, 0.271], + [0.25, 0.7], + [0.85, 0.7], + [0.85, 0.557], + [0.25, 0.557], + ], + [ + [0.15, 0.629], + [0.35, 0.629], + ], + ], + Ɓ: [ + [ + [0.6, 0.557], + [0.6, 0.271], + [0.25, 0.271], + [0.25, 0.7], + [0.85, 0.7], + [0.85, 0.557], + [0.25, 0.557], + ], + [ + [0.3, 0.271], + [0.15, 0.271], + [0.15, 0.414], + ], + ], + Ƃ: [ + [ + [0.6, 0.271], + [0.25, 0.271], + [0.25, 0.7], + [0.85, 0.7], + [0.85, 0.557], + [0.25, 0.557], + ], + ], + C: [ + [ + [0.85, 0.271], + [0.15, 0.271], + [0.15, 0.7], + [0.85, 0.7], + ], + ], + Ƈ: [ + [ + [0.85, 0.15], + [0.83, 0.15], + [0.8, 0.18], + [0.8, 0.271], + [0.2, 0.271], + [0.2, 0.7], + [0.8, 0.7], + ], + ], + D: [ + [ + [0.15, 0.271], + [0.85, 0.271], + [0.85, 0.7], + [0.15, 0.7], + ], + [ + [0.3, 0.271], + [0.3, 0.7], + ], + ], + Đ: [ + [ + [0.25, 0.271], + [0.85, 0.271], + [0.85, 0.7], + [0.25, 0.7], + ], + [ + [0.3, 0.271], + [0.3, 0.7], + ], + [ + [0.2, 0.521], + [0.4, 0.521], + ], + ], + DZ: [ + [ + [0.15, 0.271], + [0.45, 0.271], + [0.45, 0.7], + [0.15, 0.7], + ], + [ + [0.2, 0.271], + [0.2, 0.7], + ], + [ + [0.55, 0.271], + [0.85, 0.271], + [0.55, 0.7], + [0.85, 0.7], + ], + ], + Ɗ: [ + [ + [0.15, 0.414], + [0.15, 0.271], + [0.85, 0.271], + [0.85, 0.7], + [0.25, 0.7], + ], + [ + [0.3, 0.271], + [0.3, 0.7], + ], + ], + Ƌ: [ + [ + [0.15, 0.271], + [0.85, 0.271], + [0.85, 0.718], + ], + [ + [0.85, 0.7], + [0.15, 0.7], + [0.15, 0.414], + [0.85, 0.414], + ], + ], + E: [ + [ + [0.85, 0.271], + [0.15, 0.271], + [0.15, 0.7], + [0.85, 0.7], + ], + [ + [0.15, 0.557], + [0.55, 0.557], + ], + ], + F: [ + [ + [0.85, 0.271], + [0.15, 0.271], + [0.15, 0.7], + ], + [ + [0.15, 0.557], + [0.55, 0.557], + ], + ], + G: [ + [ + [0.85, 0.271], + [0.15, 0.271], + [0.15, 0.7], + [0.85, 0.7], + [0.85, 0.557], + [0.5, 0.557], + ], + ], + H: [ + [ + [0.15, 0.271], + [0.15, 0.7], + ], + [ + [0.15, 0.557], + [0.85, 0.557], + ], + [ + [0.85, 0.271], + [0.85, 0.7], + ], + ], + I: [ + [ + [0.15, 0.271], + [0.85, 0.271], + ], + [ + [0.15, 0.7], + [0.85, 0.7], + ], + [ + [0.5, 0.271], + [0.5, 0.7], + ], + ], + J: [ + [ + [0.4, 0.271], + [0.85, 0.271], + ], + [ + [0.6, 0.271], + [0.6, 0.7], + [0.15, 0.7], + [0.15, 0.629], + ], + ], + K: [ + [ + [0.15, 0.271], + [0.15, 0.7], + ], + [ + [0.85, 0.271], + [0.15, 0.557], + [0.85, 0.7], + ], + ], + L: [ + [ + [0.15, 0.271], + [0.15, 0.7], + [0.85, 0.7], + ], + ], + M: [ + [ + [0.15, 0.7], + [0.15, 0.271], + [0.5, 0.557], + [0.85, 0.271], + [0.85, 0.7], + ], + ], + N: [ + [ + [0.15, 0.7], + [0.15, 0.271], + [0.85, 0.7], + [0.85, 0.271], + ], + ], + O: [ + [ + [0.15, 0.271], + [0.15, 0.7], + [0.85, 0.7], + [0.85, 0.271], + [0.15, 0.271], + ], + ], + P: [ + [ + [0.15, 0.557], + [0.85, 0.557], + [0.85, 0.271], + [0.15, 0.271], + [0.15, 0.7], + ], + ], + Q: [ + [ + [0.15, 0.271], + [0.15, 0.7], + [0.85, 0.7], + [0.85, 0.271], + [0.15, 0.271], + ], + [ + [0.6, 0.629], + [0.95, 0.736], + ], + ], + R: [ + [ + [0.15, 0.557], + [0.85, 0.557], + [0.85, 0.271], + [0.15, 0.271], + [0.15, 0.7], + ], + [ + [0.15, 0.557], + [0.85, 0.7], + ], + ], + S: [ + [ + [0.85, 0.271], + [0.15, 0.271], + [0.15, 0.557], + [0.85, 0.557], + [0.85, 0.7], + [0.15, 0.7], + ], + ], + T: [ + [ + [0.15, 0.271], + [0.85, 0.271], + ], + [ + [0.5, 0.271], + [0.5, 0.7], + ], + ], + U: [ + [ + [0.15, 0.271], + [0.15, 0.7], + [0.85, 0.7], + [0.85, 0.271], + ], + ], + V: [ + [ + [0.15, 0.271], + [0.5, 0.7], + [0.85, 0.271], + ], + ], + W: [ + [ + [0.15, 0.271], + [0.3, 0.7], + [0.5, 0.557], + [0.7, 0.7], + [0.85, 0.271], + ], + ], + X: [ + [ + [0.15, 0.271], + [0.85, 0.7], + ], + [ + [0.15, 0.7], + [0.85, 0.271], + ], + ], + Y: [ + [ + [0.15, 0.271], + [0.5, 0.557], + [0.85, 0.271], + ], + [ + [0.5, 0.557], + [0.5, 0.7], + ], + ], + Z: [ + [ + [0.15, 0.271], + [0.85, 0.271], + [0.15, 0.7], + [0.85, 0.7], + ], + ], +} as Font; +/* +const base = { + A: [ + [ + [0.85, 0.7], + [0.85, 0.1], + [0.15, 0.1], + [0.15, 0.7], + ], + [ + [0.15, 0.5], + [0.85, 0.5], + ], + ], + Æ: [ + [ + [0.5, 0.7], + [0.5, 0.1], + [0.15, 0.1], + [0.15, 0.7], + ], + [ + [0.15, 0.5], + [0.6, 0.5], + ], + [ + [0.85, 0.1], + [0.5, 0.1], + [0.5, 0.7], + [0.85, 0.7], + ], + ], + B: [ + [ + [0.6, 0.5], + [0.6, 0.1], + [0.15, 0.1], + [0.15, 0.7], + [0.85, 0.7], + [0.85, 0.5], + [0.15, 0.5], + ], + ], + Ƀ: [ + [ + [0.6, 0.5], + [0.6, 0.1], + [0.25, 0.1], + [0.25, 0.7], + [0.85, 0.7], + [0.85, 0.5], + [0.25, 0.5], + ], + [ + [0.15, 0.6], + [0.35, 0.6], + ], + ], + Ɓ: [ + [ + [0.6, 0.5], + [0.6, 0.1], + [0.25, 0.1], + [0.25, 0.7], + [0.85, 0.7], + [0.85, 0.5], + [0.25, 0.5], + ], + [ + [0.3, 0.1], + [0.15, 0.1], + [0.15, 0.3], + ], + ], + Ƃ: [ + [ + [0.6, 0.1], + [0.25, 0.1], + [0.25, 0.7], + [0.85, 0.7], + [0.85, 0.5], + [0.25, 0.5], + ], + ], + + C: [ + [ + [0.85, 0.1], + [0.15, 0.1], + [0.15, 0.7], + [0.85, 0.7], + ], + ], + Ƈ: [ + [ + [0.85, 0.1], + [0.8, 0.11], + [0.75, 0.15], + [0.75, 0.1], + [0.25, 0.1], + [0.25, 0.7], + [0.75, 0.7], + ], + ], + + D: [ + [ + [0.15, 0.1], + [0.85, 0.1], + [0.85, 0.7], + [0.15, 0.7], + ], + [ + [0.3, 0.1], + [0.3, 0.7], + ], + ], + Đ: [ + [ + [0.25, 0.1], + [0.85, 0.1], + [0.85, 0.7], + [0.25, 0.7], + ], + [ + [0.3, 0.1], + [0.3, 0.7], + ], + [ + [0.2, 0.45], + [0.4, 0.45], + ], + ], + DZ: [ + [ + [0.15, 0.1], + [0.45, 0.1], + [0.45, 0.7], + [0.15, 0.7], + ], + [ + [0.2, 0.1], + [0.2, 0.7], + ], + [ + [0.55, 0.1], + [0.85, 0.1], + [0.55, 0.7], + [0.85, 0.7], + ], + ], + Ɗ: [ + [ + [0.15, 0.3], + [0.15, 0.1], + [0.85, 0.1], + [0.85, 0.7], + [0.25, 0.7], + ], + [ + [0.3, 0.1], + [0.3, 0.7], + ], + ], + Ƌ: [ + [ + [0.15, 0.1], + [0.85, 0.1], + [0.85, 0.725], + ], + [ + [0.85, 0.7], + [0.15, 0.7], + [0.15, 0.3], + [0.85, 0.3], + ], + ], + + E: [ + [ + [0.85, 0.1], + [0.15, 0.1], + [0.15, 0.7], + [0.85, 0.7], + ], + [ + [0.15, 0.5], + [0.55, 0.5], + ], + ], + F: [ + [ + [0.85, 0.1], + [0.15, 0.1], + [0.15, 0.7], + ], + [ + [0.15, 0.5], + [0.55, 0.5], + ], + ], + G: [ + [ + [0.85, 0.1], + [0.15, 0.1], + [0.15, 0.7], + [0.85, 0.7], + [0.85, 0.5], + [0.5, 0.5], + ], + ], + H: [ + [ + [0.15, 0.1], + [0.15, 0.7], + ], + [ + [0.15, 0.5], + [0.85, 0.5], + ], + [ + [0.85, 0.1], + [0.85, 0.7], + ], + ], + I: [ + [ + [0.15, 0.1], + [0.85, 0.1], + ], + [ + [0.15, 0.7], + [0.85, 0.7], + ], + [ + [0.5, 0.1], + [0.5, 0.7], + ], + ], + J: [ + [ + [0.4, 0.1], + [0.85, 0.1], + ], + [ + [0.6, 0.1], + [0.6, 0.7], + [0.15, 0.7], + [0.15, 0.6], + ], + ], + K: [ + [ + [0.15, 0.1], + [0.15, 0.7], + ], + [ + [0.85, 0.1], + [0.15, 0.5], + [0.85, 0.7], + ], + ], + L: [ + [ + [0.15, 0.1], + [0.15, 0.7], + [0.85, 0.7], + ], + ], + M: [ + [ + [0.15, 0.7], + [0.15, 0.1], + [0.5, 0.5], + [0.85, 0.1], + [0.85, 0.7], + ], + ], + N: [ + [ + [0.15, 0.7], + [0.15, 0.1], + [0.85, 0.7], + [0.85, 0.1], + ], + ], + O: [ + [ + [0.15, 0.1], + [0.15, 0.7], + [0.85, 0.7], + [0.85, 0.1], + [0.15, 0.1], + ], + ], + P: [ + [ + [0.15, 0.5], + [0.85, 0.5], + [0.85, 0.1], + [0.15, 0.1], + [0.15, 0.7], + ], + ], + Q: [ + [ + [0.15, 0.1], + [0.15, 0.7], + [0.85, 0.7], + [0.85, 0.1], + [0.15, 0.1], + ], + [ + [0.6, 0.6], + [0.95, 0.75], + ], + ], + R: [ + [ + [0.15, 0.5], + [0.85, 0.5], + [0.85, 0.1], + [0.15, 0.1], + [0.15, 0.7], + ], + [ + [0.15, 0.5], + [0.85, 0.7], + ], + ], + S: [ + [ + [0.85, 0.1], + [0.15, 0.1], + [0.15, 0.5], + [0.85, 0.5], + [0.85, 0.7], + [0.15, 0.7], + ], + ], + T: [ + [ + [0.15, 0.1], + [0.85, 0.1], + ], + [ + [0.5, 0.1], + [0.5, 0.7], + ], + ], + U: [ + [ + [0.15, 0.1], + [0.15, 0.7], + [0.85, 0.7], + [0.85, 0.1], + ], + ], + V: [ + [ + [0.15, 0.1], + [0.5, 0.7], + [0.85, 0.1], + ], + ], + W: [ + [ + [0.15, 0.1], + [0.3, 0.7], + [0.5, 0.5], + [0.7, 0.7], + [0.85, 0.1], + ], + ], + X: [ + [ + [0.15, 0.1], + [0.85, 0.7], + ], + [ + [0.15, 0.7], + [0.85, 0.1], + ], + ], + Y: [ + [ + [0.15, 0.1], + [0.5, 0.5], + [0.85, 0.1], + ], + [ + [0.5, 0.5], + [0.5, 0.7], + ], + ], + Z: [ + [ + [0.15, 0.1], + [0.85, 0.1], + [0.15, 0.7], + [0.85, 0.7], + ], + ], +} as Font; +const keys = Object.keys(base); +const r = (x: number) => Math.round(x * 1000) / 1000; +const remapped = {} as Font; + +keys.forEach((k: keyof Font) => { + const g = base[k].map((l) => l.map((v) => [v[0], r(v[1] / 1.4 + 0.2)])); + remapped[k] = g; +}); +console.log(JSON.stringify(remapped)); +*/ +export { base }; diff --git a/src/glyphs/uppercase/diaBaseAssociation.ts b/src/uppercase/diaBaseAssociation.ts similarity index 66% rename from src/glyphs/uppercase/diaBaseAssociation.ts rename to src/uppercase/diaBaseAssociation.ts index 7bfd56b..d75c627 100644 --- a/src/glyphs/uppercase/diaBaseAssociation.ts +++ b/src/uppercase/diaBaseAssociation.ts @@ -1,4 +1,4 @@ -import { type ExtendedTable } from "../../type"; +import { type ExtendedTable } from "../type"; // Associate diacritics with existing glyph const diaBaseAssociation = { @@ -6,23 +6,23 @@ const diaBaseAssociation = { Á: ["A", ["ct"]], À: ["A", ["gr"]], Ă: ["A", ["br"]], - Ắ: ["A", ["br"]], - Ằ: ["A", ["br"]], - Ẵ: ["A", ["br"]], - Ẳ: ["A", ["br"]], + Ắ: ["A", ["br", "ct"]], + Ằ: ["A", ["br", "gr"]], + Ẵ: ["A", ["br", "tl"]], + Ẳ: ["A", ["br", "ha"]], Â: ["A", ["cr"]], - Ấ: ["A", ["cr"]], - Ầ: ["A", ["cr"]], - Ẫ: ["A", ["cr"]], - Ẩ: ["A", ["cr"]], + Ấ: ["A", ["cr", "ct"]], + Ầ: ["A", ["cr", "gr"]], + Ẫ: ["A", ["cr", "tl"]], + Ẩ: ["A", ["cr", "ha"]], Ǎ: ["A", ["hc"]], Å: ["A", ["gs"]], - Ǻ: ["A", ["gs"]], + Ǻ: ["A", ["gs", "ct"]], Ä: ["A", ["dr"]], - Ǟ: ["A", ["dr"]], + Ǟ: ["A", ["dr", "mc"]], Ã: ["A", ["tl"]], Ȧ: ["A", ["da"]], - Ǡ: ["A", ["da"]], + Ǡ: ["A", ["da", "mc"]], Ą: ["A", ["gnk"]], Ā: ["A", ["mc"]], Ả: ["A", ["ha"]], @@ -60,7 +60,13 @@ const diaBaseAssociation = { Ð: ["Đ", []], Ɖ: ["Đ", []], - + É: ["E", ["ct"]], + È: ["E", ["gr"]], + Ĕ: ["E", ["br"]], + Ê: ["E", ["cr"]], + Ế: ["E", ["cr", "ct"]], + Ề: ["E", ["cr", "gr"]], + Ễ: ["E", ["cr", "tl"]], } as ExtendedTable; export { diaBaseAssociation }; diff --git a/src/uppercase/index.ts b/src/uppercase/index.ts new file mode 100644 index 0000000..cd4717a --- /dev/null +++ b/src/uppercase/index.ts @@ -0,0 +1,29 @@ +import { Font, Glyph, DiaGroup } from "../type"; +import { base } from "./base"; +import { diaBaseAssociation } from "./diaBaseAssociation"; +import { mergeDiacritics } from "../diacritics/mergeDiacritics"; +import diacritics from "../diacritics/glyphs"; +import { topDia } from "../diacritics/utility"; + +// Move all diacritics above the letter a little higher up +const upperDia = {} as Font +Object.keys(diacritics).forEach((g: keyof Font) => { + upperDia[g] = [...topDia, 'brd'].includes(g) + ? diacritics[g].map((l) => l.map((p) => [p[0], p[1] - 0.14])) + : diacritics[g] +}) +// Clone exisiting glyph and add diacritical marks +const diacriticized = {} as Font; +Object.keys(diaBaseAssociation).map((char) => { + diacriticized[char as keyof typeof diacriticized] = [ + ...base[diaBaseAssociation[char][0] as keyof Font], + ...mergeDiacritics(diaBaseAssociation[char][1] as DiaGroup, upperDia), + ] as Glyph; +}); + +// Merge all glyphs (with and without diacritical marks) +const lowercase = { + ...base, + ...diacriticized, +}; +export default lowercase;