Update generator.regulate
This commit is contained in:
parent
e51a40e20d
commit
17b19412b4
1 changed files with 29 additions and 34 deletions
63
generator.js
63
generator.js
|
@ -160,44 +160,39 @@ if (argv.o) {
|
||||||
autoref(font.glyf);
|
autoref(font.glyf);
|
||||||
// regulate
|
// regulate
|
||||||
font.glyf.forEach(g => {
|
font.glyf.forEach(g => {
|
||||||
if (g.contours) {
|
if (!g.contours) return;
|
||||||
for (var k = 0; k < g.contours.length; k++) {
|
for (var k = 0; k < g.contours.length; k++) {
|
||||||
var contour = g.contours[k];
|
var contour = g.contours[k];
|
||||||
for (var p = 0; p < contour.length; p++) {
|
for (var p = 0; p < contour.length; p++) {
|
||||||
contour[p].x += contour[p].y * skew;
|
contour[p].x += contour[p].y * skew;
|
||||||
if (contour[p].on) {
|
if (!contour[p].on) continue;
|
||||||
contour[p].x = Math.round(contour[p].x);
|
contour[p].x = Math.round(contour[p].x);
|
||||||
}
|
}
|
||||||
}
|
var offJ = null,
|
||||||
var offJ = null,
|
mx = null;
|
||||||
mx = null;
|
for (var p = 0; p < contour.length; p++) {
|
||||||
for (var p = 0; p < contour.length; p++) {
|
if (!contour[p].on) continue;
|
||||||
if (contour[p].on) {
|
if (offJ) {
|
||||||
if (offJ) {
|
var origx = contour[p].x;
|
||||||
var origx = contour[p].x;
|
var rx = Math.round(contour[p].x * 4) / 4;
|
||||||
var rx = Math.round(contour[p].x * 4) / 4;
|
var origx0 = mx;
|
||||||
var origx0 = mx;
|
var rx0 = contour[offJ - 1].x;
|
||||||
var rx0 = contour[offJ - 1].x;
|
if (origx === origx0) continue;
|
||||||
if (origx != origx0) {
|
for (var poff = offJ; poff < p; poff++) {
|
||||||
for (var poff = offJ; poff < p; poff++) {
|
contour[poff].x =
|
||||||
contour[poff].x =
|
(contour[poff].x - origx0) / (origx - origx0) * (rx - rx0) + rx0;
|
||||||
(contour[poff].x - origx0) / (origx - origx0) * (rx - rx0) +
|
|
||||||
rx0;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
mx = contour[p].x;
|
|
||||||
contour[p].x = Math.round(contour[p].x * 4) / 4;
|
|
||||||
offJ = p + 1;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
mx = contour[p].x;
|
||||||
|
contour[p].x = Math.round(contour[p].x * 4) / 4;
|
||||||
|
offJ = p + 1;
|
||||||
}
|
}
|
||||||
var c1 = [];
|
|
||||||
for (var k = 0; k < g.contours.length; k++) {
|
|
||||||
c1.push(Glyph.contourToStandardCubic(g.contours[k]));
|
|
||||||
}
|
|
||||||
g.contours = c1;
|
|
||||||
}
|
}
|
||||||
|
var c1 = [];
|
||||||
|
for (var k = 0; k < g.contours.length; k++) {
|
||||||
|
c1.push(Glyph.contourToStandardCubic(g.contours[k]));
|
||||||
|
}
|
||||||
|
g.contours = c1;
|
||||||
});
|
});
|
||||||
// overlap removal
|
// overlap removal
|
||||||
font.glyf.forEach(g => {
|
font.glyf.forEach(g => {
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue