summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--scripts/lib/fontbuild/decomposeGlyph.py15
1 files changed, 6 insertions, 9 deletions
diff --git a/scripts/lib/fontbuild/decomposeGlyph.py b/scripts/lib/fontbuild/decomposeGlyph.py
index b3cc8ea..94b9404 100644
--- a/scripts/lib/fontbuild/decomposeGlyph.py
+++ b/scripts/lib/fontbuild/decomposeGlyph.py
@@ -2,23 +2,20 @@ def decomposeGlyph(font, glyphName):
"""Moves the components of a glyph to its outline."""
glyph = font[glyphName]
- for component in glyph.components:
- decompose(font, glyphName, component.baseGlyph,
- component.offset, component.scale)
- glyph.clear(contours=False, anchors=False, guides=False)
+ decompose(font, glyph, glyph, (0, 0), (1, 1))
+ glyph.clearComponents()
-def decompose(font, parentName, componentName, offset, scale):
+def decompose(font, parent, component, offset, scale):
"""Copy contours to parent from component, including nested components."""
- parent = font[parentName]
- component = font[componentName]
-
for nested in component.components:
- decompose(font, parentName, nested.baseGlyph,
+ decompose(font, parent, font[nested.baseGlyph],
(offset[0] + nested.offset[0], offset[1] + nested.offset[1]),
(scale[0] * nested.scale[0], scale[1] * nested.scale[1]))
+ if component == parent:
+ return
for contour in component:
contour = contour.copy()
contour.scale(scale)