opentypejs/opentype.js
Update docs for Font.getPath to explain what happens with cutout subpaths
Open
#347 opened on Jun 4, 2018
help wanted
Repository metrics
- Stars
- (4,170 stars)
- PR merge metrics
- (No merged PRs in 30d)
Description
Right now the API docs for Font.getPath in the README.md do not explain what happens with paths that include cutout subpaths (the letter O being an obvious candidate). The OpenType spec itself allows for three possible cases:
- CFF/Type2 outlines rely on crossing number, so any subpath B contained by outermost subpath A is a cutout, any subpath C inside subpath B is a fill, any subpath D inside C is a cutout, etc.
- TTF outlines rely on path direction, so in the above example B is only a cutout for A if either A is defined clockwise and B is defined counter-clockwise.
- SVG outlines rely on "literally whichever you want" because glyphs are specified using SVG1.1 documents which means that the
fillruleattribute can be used to specify whether crossing (fillrule="evenodd") or direction (fillrule="nonzero") is used.
Right now the API docs don't say whether OpenType.js yields the paths as specified in the font, with a way to look up what the cutout algorithm needs to be per glyph, or whether it rewrites paths so that a glyph looks correct when rendered using the currently also unspecified cutout algorithm =)
Can that get an update?