diff options
author | linhsu0723 <linhsu0723> | 2022-10-11 10:48:58 +0300 |
---|---|---|
committer | Sergey Sharybin <sergey.vfx@gmail.com> | 2022-10-11 10:49:59 +0300 |
commit | a2e69343eb0893f4e4d404d20ba4c2f66d01f40a (patch) | |
tree | 527aee5e6402e040ace97ba8fa92e9318cc08736 | |
parent | 77158558c10eafe6777562d1b8daaf6d1db70d88 (diff) |
Fix (partial) T92713: SVG importer: Implicit close keeps current point
Don't change current point coordinate for implicit path close.
This can fix some broken paths in T92713.
Differential Revision: https://developer.blender.org/D16198
-rw-r--r-- | io_curve_svg/import_svg.py | 14 |
1 files changed, 11 insertions, 3 deletions
diff --git a/io_curve_svg/import_svg.py b/io_curve_svg/import_svg.py index e84c9949..d407ecc8 100644 --- a/io_curve_svg/import_svg.py +++ b/io_curve_svg/import_svg.py @@ -484,7 +484,7 @@ class SVGPathParser: """ __slots__ = ('_data', # Path data supplird - '_point', # Current point coorfinate + '_point', # Current point coordinate '_handle', # Last handle coordinate '_splines', # List of all splies created during parsing '_spline', # Currently handling spline @@ -870,6 +870,14 @@ class SVGPathParser: cv = self._spline['points'][0] self._point = (cv['x'], cv['y']) + def _pathCloseImplicitly(self): + """ + Close path implicitly without changing current point coordinate + """ + + if self._spline: + self._spline['closed'] = True + def parse(self): """ Execute parser @@ -890,11 +898,11 @@ class SVGPathParser: closed = False if code in {'M', 'm'} and self._use_fill and not closed: - self._pathClose('z') # Ensure closed before MoveTo path command + self._pathCloseImplicitly() # Ensure closed before MoveTo path command cmd(code) if self._use_fill and not closed: - self._pathClose('z') # Ensure closed at the end of parsing + self._pathCloseImplicitly() # Ensure closed at the end of parsing def getSplines(self): """ |