212 Commits

Author SHA1 Message Date
Behdad Esfahbod
22de9ef3d8 [interpolatable] Try harder matching contours
This improves a bunch of .notdef glyphs.
Only adverse effect is in AdventPro's --glyphs uni2116
2023-11-23 09:21:40 -07:00
Behdad Esfahbod
4591e255d2 [interpolatable] Fixup 2023-11-23 08:52:19 -07:00
Behdad Esfahbod
0c660e31f2 [interpolatable] Refactor some code 2023-11-23 08:50:52 -07:00
Behdad Esfahbod
cfdbe69b4a [interpolatablePlot] Add a title page 2023-11-23 08:04:31 -07:00
Behdad Esfahbod
b30da672f0 Revert "[interpolatable] Use absolute sqrt area, not signed"
This reverts commit 772d1f8c7895f9b8844264488bd2b542c4391022.

The new false-positives were not worth it. It degrades
the suggested fix for some fonts, but at least they are
not false-positives.
2023-11-22 19:34:32 -07:00
Behdad Esfahbod
a72139f354 [interpolatable] Minor, remove a pair of unnecessary parentheses 2023-11-22 15:28:55 -07:00
Behdad Esfahbod
772d1f8c78 [interpolatable] Use absolute sqrt area, not signed
Results are improved. Two regressions only:
- Piazzolla uni046B
- Cairo oslash
2023-11-22 10:02:59 -07:00
Behdad Esfahbod
1cd954d0ff [interpolatable] Tweak magic number
This removes a lot of false positives, and only seems
to introduce a few false positives for Handjet and Caveat.
2023-11-22 07:48:31 -07:00
Behdad Esfahbod
e8d212609f [interpolatable] More work and less play
Reduces false-positives more than it introduces.
2023-11-21 16:39:29 -07:00
Behdad Esfahbod
3465666edf [interpolatable] Comment 2023-11-21 14:54:34 -07:00
Behdad Esfahbod
377bb5a34b [interpolatable] Comment 2023-11-21 14:03:45 -07:00
Behdad Esfahbod
c689bb475a [interpolate] Add some Black Magic
See comments.

In particular, this reports glyph "intersection" in
Archivo fonts that are broken but otherwise will go
unnoticed.
2023-11-21 12:57:41 -07:00
Behdad Esfahbod
772dc549f3
[ttGlyphSet] Add option to not recalculate glyf bounds (#3348)
Avoids unnecessary work in the interpolator.
2023-11-21 12:06:57 -07:00
Behdad Esfahbod
62a28c2183 Revert "[interpolatable] Speed up one function"
This reverts commit c48067b109dd9750a4c960d898d2821974d94c5a.

Was slower in testing.
2023-11-21 10:10:51 -07:00
Behdad Esfahbod
c48067b109 [interpolatable] Speed up one function 2023-11-21 09:49:19 -07:00
Behdad Esfahbod
d20529a65e [interpolatable] Comment 2023-11-21 09:10:58 -07:00
Behdad Esfahbod
9c154e81c2 [interpolatable] Add --name 2023-11-20 20:29:06 -07:00
Behdad Esfahbod
d8db3f47a3 [interpolatable] Err; use right transform for second contour 2023-11-20 19:34:06 -07:00
Behdad Esfahbod
97ebce4977 [interpolatable] Use eigenmagic to reduce false-positives
Mostly in Italic fonts, like RobotoSerif-Italic.
2023-11-20 19:07:24 -07:00
Behdad Esfahbod
884a802eb3 [interpolatable] Report "nothing wrong" 2023-11-20 17:41:08 -07:00
Behdad Esfahbod
dbcdbb14ca [interpolatable] Minor elif 2023-11-20 17:39:59 -07:00
Behdad Esfahbod
896aa97cd6 [interpolatable] Fixups 2023-11-20 16:37:25 -07:00
Behdad Esfahbod
42db614679 [interpolatable] Add --show-all
Helpful debugging false-negatives.
2023-11-20 16:19:28 -07:00
Behdad Esfahbod
c6e24b23ef [interpolatable] Add input names to any raised exception
When I'm running 24 instances at a time, it has been
impossible to know which font threw an exception...
2023-11-20 12:03:53 -07:00
Behdad Esfahbod
74fe7791ea [interpolatable] Include cross-product in the wrong_start mix
Reduces false-positives.
2023-11-20 11:56:13 -07:00
Behdad Esfahbod
51e70f9742
[interpolatable] Return master indices in addition to master names (#3346)
[interpolatable] Add master indices to problem reports

More solid than using names to refer back to the master index,
as needed in interpolatablePlot.
2023-11-20 08:59:11 -07:00
Behdad Esfahbod
82f44a6b45 black 2023-11-20 07:38:39 -07:00
Behdad Esfahbod
e1cf7b7ba6 [interpolatable] Improve mixed-error resolution
Test with:

anektamil/AnekTamil\[wdth\,wght\].ttf --glyphs guillemotleft
cairo/cairo/Cairo\[slnt\,wght\].ttf --glyphs threedotsdownbelowar.color0
adventpro/AdventPro-Italic\[wdth\,wght\].ttf --glyphs uni2116
2023-11-20 07:33:27 -07:00
Behdad Esfahbod
5fee01c13b [interpolatable] Improve mixed-errors 2023-11-20 06:23:20 -07:00
Behdad Esfahbod
ec67af78b9 black 2023-11-19 22:57:12 -07:00
Behdad Esfahbod
47a7088139 [interpolatable] Sort problems by master pairs, not type 2023-11-19 22:56:04 -07:00
Behdad Esfahbod
79b3fcad28 black 2023-11-19 22:39:12 -07:00
Behdad Esfahbod
dd5f34ef63 [interpolatable] Print master names before differences 2023-11-19 21:55:51 -07:00
Behdad Esfahbod
4d9864beda [interpolatablePlot] Plot fix for wrong_contour_order as well 2023-11-19 17:28:19 -07:00
Behdad Esfahbod
f3faff7b0d [interpolatable] Comment 2023-11-19 15:09:38 -07:00
Behdad Esfahbod
bb29f43c46 [interpolatable] Minor speed up 2023-11-19 14:34:27 -07:00
Behdad Esfahbod
7c92b75203 [interpolatable] Use StatisticsControlPen as well
We use both StatisticsPen and StatisticsControlPen.
If either produced a perfect matching, we accept it.
Otherwise we use the worst score of the two.

This takes care of Kablammo[MORF].ttf and Nabla[EDPT,EHLT].ttf.

Slows down the tool, but I think it's in the right direction.
Further heuristics can be used.
2023-11-19 14:01:57 -07:00
Behdad Esfahbod
c96b56d3de [interpolatablePlot] Draw suggested start point on the second graph 2023-11-19 07:54:14 -07:00
Behdad Esfahbod
e023a9c261 Black 2023-11-18 17:05:57 -07:00
Behdad Esfahbod
eddcb1ff52 [interpolatable] Fix drawing of reversed contour point start 2023-11-18 16:50:50 -07:00
Behdad Esfahbod
b57150b12f [interpolatable] Whitespace 2023-11-18 16:50:50 -07:00
Behdad Esfahbod
ae747dc9d1 [interpolatable] Remove math_error
I've now run this scripts on hundreds of different font
families. Never hit the math_error big try. Remove it.
If something fails, it's a bug we want to get report
of and fix.
2023-11-18 13:46:42 -07:00
Behdad Esfahbod
a613189471 [interpolatable] Add --output 2023-11-17 20:12:01 -07:00
Behdad Esfahbod
391dbdd433 [interpolatable] Bail early if only one glyphset 2023-11-17 19:39:57 -07:00
Behdad Esfahbod
b702043cab [interpolatablePlot] Fix handle drawing 2023-11-17 19:01:24 -07:00
Behdad Esfahbod
2079a2a256 [interpolatable] Refactor some more code 2023-11-17 18:57:45 -07:00
Behdad Esfahbod
9725f0eed0 [interpolatable] Code to use angle as well in wrong_start_order vector
Doesn't seem to improve any of my test cases though,
so it's commented out.
2023-11-17 18:20:18 -07:00
Behdad Esfahbod
7d91dda9bd [interpolatable] Simplify same function more 2023-11-17 17:56:38 -07:00
Behdad Esfahbod
1fd0db4ddf [interpolatable] Simplify a function 2023-11-17 17:53:39 -07:00
Behdad Esfahbod
69e5f032d6 [interpolatable] Remove unused variable 2023-11-17 17:50:52 -07:00