[qu2cuPen] Drop cubic implicit oncurves

This commit is contained in:
Behdad Esfahbod 2023-02-17 15:31:21 -07:00
parent ea8ae8f399
commit c11682ca85

View File

@ -73,4 +73,21 @@ class Qu2CuPen(ContourFilterPen):
currentPt = args[-1] if args else None
if quadratics:
newContour.extend(self._quadratics_to_curve(quadratics))
# Add cubic implicit oncurve points
contour = newContour
newContour = []
for op, args in contour:
if (op == "curveTo" and newContour and newContour[-1][0] == "curveTo"):
pt0 = newContour[-1][1][-2]
pt1 = newContour[-1][1][-1]
pt2 = args[0]
if (pt2[0] - pt1[0] == pt1[0] - pt0[0] and
pt2[1] - pt1[1] == pt1[1] - pt0[1]):
newArgs = newContour[-1][1][:-1] + args
newContour[-1] = ("curveTo", newArgs)
continue
newContour.append((op, args))
return newContour