opentypejs/opentype.js

Update docs for Font.getPath to explain what happens with cutout subpaths

Ouverte

#347 ouverte le 4 juin 2018

 (3 commentaires) (5 réactions) (0 personne assignée)JavaScript (512 forks)batch import
help wanted

Métriques du dépôt

Stars
 (4 170 étoiles)
Métriques de merge PR
 (Métriques PR en attente)

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 fillrule attribute 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?

Guide contributeur