diff --git a/demo/src/index.ts b/demo/src/index.ts index ed41925..abcefa4 100644 --- a/demo/src/index.ts +++ b/demo/src/index.ts @@ -44,7 +44,7 @@ const mirrorXGlyph = (g: Glyph) => g.map((l: Line) => l.map((p: Vec) => [1 - p[0], p[1]])); // font["ɜ"] = mirrorYGlyph(font["ɛ"]) -//alert(`ʁ: ${JSON.stringify(scaleGlyph(mirrorXGlyph(rotateGlyph(font["R"]))))},`); +//alert(`ɯ: ${JSON.stringify(mirrorXGlyph(font["w"]))},`); for (let l = 0; l < lowercase.length; l++) { if (font[lowercase[l]] === undefined) { diff --git a/src/glyphs/diacritics.ts b/src/glyphs/diacritics.ts index 08df11f..08a6e84 100644 --- a/src/glyphs/diacritics.ts +++ b/src/glyphs/diacritics.ts @@ -45,6 +45,18 @@ const diacritics = { [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: [ [ @@ -184,7 +196,16 @@ const diacritics = { [0.85, 0.7], [0.85, 0.85], [0.83, 0.88], - [0.75, 0.9] + [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 @@ -242,7 +263,7 @@ const diacritics = { [0.49, 0.79], [0.45, 0.8], ], - ] -} as Font; + ], + } as Font; export default diacritics; diff --git a/src/glyphs/lowercase/base.ts b/src/glyphs/lowercase/base.ts index 3929ff7..db7d274 100644 --- a/src/glyphs/lowercase/base.ts +++ b/src/glyphs/lowercase/base.ts @@ -1629,6 +1629,79 @@ const base = { [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: [ [ @@ -1641,6 +1714,129 @@ const base = { [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], @@ -1652,6 +1848,99 @@ const base = { [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], diff --git a/src/glyphs/lowercase/diaBaseAssociation.ts b/src/glyphs/lowercase/diaBaseAssociation.ts index 90d5902..e421b3b 100644 --- a/src/glyphs/lowercase/diaBaseAssociation.ts +++ b/src/glyphs/lowercase/diaBaseAssociation.ts @@ -233,16 +233,54 @@ const diaBaseAssociation = { ṩ: ["s", ["da", "db"]], ș: ["s", ["cm"]], ẛ: ["ſ", ["da"]], - ʂ: ["s", ["gnk"]], + ʂ: ["s", ["hbl"]], + + // t + ť: ["t", ["ct"]], + ẗ: ["t", ["dr"]], + ṫ: ["t", ["da"]], + ţ: ["t", ["cd"]], + ṭ: ["t", ["db"]], + ț: ["t", ["cm"]], + ṱ: ["t", ["crb"]], + ṯ: ["t", ["lb"]], + ƫ: ["t", ["hbr"]], + // u - ụ: ["u", ["db"]], + ú: ["u", ["ct"]], + ù: ["u", ["gr"]], + ŭ: ["u", ["br"]], + û: ["u", ["cr"]], + ǔ: ["u", ["hc"]], + ů: ["u", ["gs"]], + ü: ["u", ["dr"]], + ǘ: ["u", ["dr", "ct"]], + ǜ: ["u", ["dr", "gr"]], + ǚ: ["u", ["dr", "hc"]], + ǖ: ["u", ["dr", "mc"]], + ű: ["u", ["ct", "ct"]], + ũ: ["u", ["tl"]], + ṹ: ["u", ["tl", "ct"]], + ų: ["u", ["gnk"]], + ū: ["u", ["mc"]], + ṻ: ["u", ["mc", "dr"]], ủ: ["u", ["ha"]], + ȕ: ["u", ["gr", "gr"]], + ȗ: ["u", ["bri"]], + ư: ["u", ["hr"]], ứ: ["u", ["hr", "ct"]], ừ: ["u", ["hr", "gr"]], - ử: ["u", ["hr", "ha"]], ữ: ["u", ["hr", "tl"]], + ử: ["u", ["hr", "ha"]], ự: ["u", ["hr", "db"]], - + ụ: ["u", ["db"]], + ṳ: ["u", ["drb"]], + ṷ: ["u", ["crb"]], + ṵ: ["u", ["tlb"]], + + // v + ṽ: ["v", ["tl"]], + ṿ: ["v", ["db"]], // y ỳ: ["y", ["gr"]], ỵ: ["y", ["db"]],