summaryrefslogtreecommitdiffstats
path: root/src/adopter.js
diff options
context:
space:
mode:
authorwout <wout@impinc.co.uk>2014-06-21 18:25:29 +0200
committerwout <wout@impinc.co.uk>2014-06-21 18:25:29 +0200
commit19b6fd4338246d1fd9ca4806e57c7aebcec63826 (patch)
tree3dd1d207de9f586f7e4d4cd36917e347ab022a9e /src/adopter.js
parentbb0e6be2da0cea98c5303871c0be055f5f70d7a9 (diff)
downloadsvg.js-19b6fd4338246d1fd9ca4806e57c7aebcec63826.tar.gz
svg.js-19b6fd4338246d1fd9ca4806e57c7aebcec63826.zip
Removed all structural references
Diffstat (limited to 'src/adopter.js')
-rw-r--r--src/adopter.js23
1 files changed, 23 insertions, 0 deletions
diff --git a/src/adopter.js b/src/adopter.js
new file mode 100644
index 0000000..c762a2b
--- /dev/null
+++ b/src/adopter.js
@@ -0,0 +1,23 @@
+// Adopt existing svg elements
+SVG.adopt = function(node) {
+ // Make sure a node isn't already adopted
+ if (node.instance) return node.instance
+
+ // Initialize variables
+ var element
+
+ // Adopt with element-specific settings
+ if (node.nodeName == 'svg')
+ element = node.parentNode instanceof SVGElement ? new SVG.Nested : new SVG.Doc
+ else if (node.nodeName == 'lineairGradient')
+ element = new SVG.Gradient('lineair')
+ else if (node.nodeName == 'radialGradient')
+ element = new SVG.Gradient('radial')
+ else
+ element = new SVG[capitalize(node.nodeName)]
+
+ // Ensure references
+ element.type = node.nodeName
+ element.node = node
+ return node.instance = element
+} \ No newline at end of file