summaryrefslogtreecommitdiff
path: root/lib/svg
diff options
context:
space:
mode:
Diffstat (limited to 'lib/svg')
-rw-r--r--lib/svg/path.py3
-rw-r--r--lib/svg/svg.py8
-rw-r--r--lib/svg/tags.py11
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',