Welcome to mirror list, hosted at ThFree Co, Russian Federation.

git.blender.org/blender-addons.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorlinhsu0723 <linhsu0723>2022-10-11 10:48:58 +0300
committerSergey Sharybin <sergey.vfx@gmail.com>2022-10-11 10:49:59 +0300
commita2e69343eb0893f4e4d404d20ba4c2f66d01f40a (patch)
tree527aee5e6402e040ace97ba8fa92e9318cc08736
parent77158558c10eafe6777562d1b8daaf6d1db70d88 (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.py14
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):
"""