From 6e60ed6cc76342b5ce67a78d152dfa1d00cb6f8b Mon Sep 17 00:00:00 2001 From: midichef <67946319+midichef@users.noreply.github.com> Date: Fri, 28 Jul 2023 23:17:28 -0700 Subject: [PATCH] [ttf] implement _closePath() to draw missing lines --- visidata/loaders/ttf.py | 14 ++++++++++++++ 1 file changed, 14 insertions(+) diff --git a/visidata/loaders/ttf.py b/visidata/loaders/ttf.py index da75ad957..ddc014739 100644 --- a/visidata/loaders/ttf.py +++ b/visidata/loaders/ttf.py @@ -60,11 +60,14 @@ class GlyphPen(InvertedCanvas, BasePen): aspectRatio = 1.0 def __init__(self, name, **kwargs): super().__init__(name, **kwargs) + self.path_firstxy = None self.lastxy = None self.attr = self.plotColor(('glyph',)) def _moveTo(self, xy): self.lastxy = xy + if self.path_firstxy is None: + self.path_firstxy = xy def _lineTo(self, xy): x1, y1 = self.lastxy @@ -72,6 +75,17 @@ def _lineTo(self, xy): self.line(x1, y1, x2, y2, self.attr) self._moveTo(xy) + def _closePath(self): + if self.path_firstxy: + if (self.path_firstxy != self.lastxy): + self._lineTo(self.path_firstxy) + self.path_firstxy = None + self.lastxy = None + + def _endPath(self): + self.path_firstxy = None + self.lastxy = None + def _curveToOne(self, xy1, xy2, xy3): vd.error('NotImplemented')