diff options
Diffstat (limited to 'lib/svg')
| -rw-r--r-- | lib/svg/path.py | 3 | ||||
| -rw-r--r-- | lib/svg/svg.py | 8 | ||||
| -rw-r--r-- | lib/svg/tags.py | 11 |
3 files changed, 20 insertions, 2 deletions
diff --git a/lib/svg/path.py b/lib/svg/path.py index f0f6708b..817c2972 100644 --- a/lib/svg/path.py +++ b/lib/svg/path.py @@ -36,6 +36,9 @@ def get_node_transform(node): # combine this node's transform with all parent groups' transforms transform = compose_parent_transforms(node, transform) + if node.get('id', '').startswith('clone_'): + transform = simpletransform.parseTransform(node.get('transform', '')) + # add in the transform implied by the viewBox viewbox_transform = get_viewbox_transform(node.getroottree().getroot()) transform = simpletransform.composeTransform(viewbox_transform, transform) diff --git a/lib/svg/svg.py b/lib/svg/svg.py index 464a2a18..3cf7f017 100644 --- a/lib/svg/svg.py +++ b/lib/svg/svg.py @@ -1,4 +1,4 @@ -from inkex import etree +from inkex import NSS, etree from ..utils import cache @@ -24,3 +24,9 @@ def generate_unique_id(document_or_element, prefix="path"): i += 1 return new_id + + +def find_elements(node, xpath): + document = get_document(node) + elements = document.xpath(xpath, namespaces=NSS) + return elements diff --git a/lib/svg/tags.py b/lib/svg/tags.py index 3e444513..589f489e 100644 --- a/lib/svg/tags.py +++ b/lib/svg/tags.py @@ -7,12 +7,16 @@ inkex.NSS['inkstitch'] = 'http://inkstitch.org/namespace' SVG_PATH_TAG = inkex.addNS('path', 'svg') SVG_POLYLINE_TAG = inkex.addNS('polyline', 'svg') +SVG_RECT_TAG = inkex.addNS('rect', 'svg') +SVG_ELLIPSE_TAG = inkex.addNS('ellipse', 'svg') +SVG_CIRCLE_TAG = inkex.addNS('circle', 'svg') SVG_TEXT_TAG = inkex.addNS('text', 'svg') SVG_TSPAN_TAG = inkex.addNS('tspan', 'svg') SVG_DEFS_TAG = inkex.addNS('defs', 'svg') SVG_GROUP_TAG = inkex.addNS('g', 'svg') SVG_SYMBOL_TAG = inkex.addNS('symbol', 'svg') SVG_USE_TAG = inkex.addNS('use', 'svg') +SVG_IMAGE_TAG = inkex.addNS('image', 'svg') EMBROIDERABLE_TAGS = (SVG_PATH_TAG, SVG_POLYLINE_TAG) @@ -30,12 +34,17 @@ SODIPODI_ROLE = inkex.addNS('role', 'sodipodi') INKSTITCH_LETTERING = inkex.addNS('lettering', 'inkstitch') +EMBROIDERABLE_TAGS = (SVG_PATH_TAG, SVG_POLYLINE_TAG, SVG_RECT_TAG, SVG_ELLIPSE_TAG, SVG_CIRCLE_TAG) +NOT_EMBROIDERABLE_TAGS = (SVG_IMAGE_TAG, SVG_TEXT_TAG) +SVG_OBJECT_TAGS = (SVG_ELLIPSE_TAG, SVG_CIRCLE_TAG, SVG_RECT_TAG) + INKSTITCH_ATTRIBS = {} -# Fill inkstitch_attribs = [ 'ties', 'trim_after', 'stop_after', + # clone + 'clone', # fill 'angle', 'auto_fill', |
