More shape cleanups

This commit is contained in:
be5invis 2023-01-07 18:51:30 -08:00
parent 4ffe001ccb
commit 8013efca5d
76 changed files with 591 additions and 584 deletions

View file

@ -63,22 +63,27 @@ function flattenSimpleGlyph(cache, skew, g) {
g.includeContours(CurveUtil.repToShape(cached), 0, 0);
cache.refreshGF(ck);
} else {
let gSimplified;
if (skew) {
const tfBack = g.gizmo ? g.gizmo.inverse() : new Transform(1, -skew, 0, 1, 0, 0);
const tfForward = g.gizmo ? g.gizmo : new Transform(1, +skew, 0, 1, 0, 0);
gSimplified = new Geom.TransformedGeometry(
new SimplifyGeometry(new Geom.TransformedGeometry(g.geometry, tfBack)),
tfForward
);
} else {
gSimplified = new SimplifyGeometry(g.geometry);
}
try {
let gSimplified;
if (skew) {
const tfBack = g.gizmo ? g.gizmo.inverse() : new Transform(1, -skew, 0, 1, 0, 0);
const tfForward = g.gizmo ? g.gizmo : new Transform(1, +skew, 0, 1, 0, 0);
gSimplified = new Geom.TransformedGeometry(
new SimplifyGeometry(new Geom.TransformedGeometry(g.geometry, tfBack)),
tfForward
);
} else {
gSimplified = new SimplifyGeometry(g.geometry);
}
const cs = gSimplified.asContours();
g.clearGeometry();
g.includeContours(cs, 0, 0);
if (ck) cache.saveGF(ck, CurveUtil.shapeToRep(cs));
const cs = gSimplified.asContours();
g.clearGeometry();
g.includeContours(cs, 0, 0);
if (ck) cache.saveGF(ck, CurveUtil.shapeToRep(cs));
} catch (e) {
console.error("Detected broken geometry when processing", g._m_identifier);
throw e;
}
}
}