[qu2cuPen] Drop quadratic implicit oncurves too

This commit is contained in:
Behdad Esfahbod 2023-02-17 15:41:57 -07:00
parent 74cab7ae1f
commit 86aff322b9

View File

@ -74,18 +74,18 @@ class Qu2CuPen(ContourFilterPen):
if quadratics: if quadratics:
newContour.extend(self._quadratics_to_curve(quadratics)) newContour.extend(self._quadratics_to_curve(quadratics))
# Add cubic implicit oncurve points # Add back implicit oncurve points
contour = newContour contour = newContour
newContour = [] newContour = []
for op, args in contour: for op, args in contour:
if (op == "curveTo" and newContour and newContour[-1][0] == "curveTo"): if (op in {"curveTo", "qCurveTo"} and newContour and newContour[-1][0] == op):
pt0 = newContour[-1][1][-2] pt0 = newContour[-1][1][-2]
pt1 = newContour[-1][1][-1] pt1 = newContour[-1][1][-1]
pt2 = args[0] pt2 = args[0]
if (pt2[0] - pt1[0] == pt1[0] - pt0[0] and if (pt2[0] - pt1[0] == pt1[0] - pt0[0] and
pt2[1] - pt1[1] == pt1[1] - pt0[1]): pt2[1] - pt1[1] == pt1[1] - pt0[1]):
newArgs = newContour[-1][1][:-1] + args newArgs = newContour[-1][1][:-1] + args
newContour[-1] = ("curveTo", newArgs) newContour[-1] = (op, newArgs)
continue continue
newContour.append((op, args)) newContour.append((op, args))