Skip to content

Commit

Permalink
Merge pull request #348 from robotools/segments_offCurveOnly
Browse files Browse the repository at this point in the history
Dont pop and extend to last segment when there are only quad off curves
  • Loading branch information
typesupply committed Mar 8, 2021
2 parents 723dbd9 + a5f655c commit be091ae
Show file tree
Hide file tree
Showing 2 changed files with 17 additions and 4 deletions.
7 changes: 4 additions & 3 deletions Lib/defcon/objects/contour.py
Original file line number Diff line number Diff line change
Expand Up @@ -301,9 +301,10 @@ def _get_segments(self):
if len(segments[-1]) == 0:
del segments[-1]
if lastWasOffCurve:
lastSegment = segments[-1]
segment = segments.pop(0)
lastSegment.extend(segment)
if len(segments) != 1:
lastSegment = segments[-1]
segment = segments.pop(0)
lastSegment.extend(segment)
elif segments[0][-1].segmentType != "move":
segment = segments.pop(0)
segments.append(segment)
Expand Down
14 changes: 13 additions & 1 deletion Lib/defcon/test/objects/test_contour.py
Original file line number Diff line number Diff line change
Expand Up @@ -268,6 +268,18 @@ def test_removeSegment_curves_preserveCurve(self):
[(543, 0, None), (700, 157, None), (700, 350, "curve")],
[(700.0, 736.0, None), (0.0, 736.0, None), (0, 350, "curve")]])

def test_offCurveOnlySegement(self):
font = Font()
glyph = font.newGlyph("offCurveOnly")
pen = glyph.getPen()
pen.qCurveTo((100, 100), (100, 200), (200, 200), (200, 100), None)
pen.endPath()
contour = glyph[0]
self.assertEqual(
[simpleSegment(segment) for segment in contour.segments],
[[(100, 100, None), (100, 200, None), (200, 200, None), (200, 100, None)]]
)

def test_clockwise_get(self):
font = Font(getTestFontPath())
contour = font["A"][0]
Expand Down Expand Up @@ -377,7 +389,7 @@ def test_identifier(self):
contour.identifier = None
self.assertEqual(contour.identifier, "contour 2")
self.assertEqual(sorted(glyph.identifiers), ["contour 1", "contour 2"])

def test_correct_direction_same_area(self):
glyph = Glyph()
pen = glyph.getPointPen()
Expand Down

0 comments on commit be091ae

Please sign in to comment.