-
Notifications
You must be signed in to change notification settings - Fork 0
/
svg.js
62 lines (47 loc) · 1.26 KB
/
svg.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
function RSVGElement(){
//var paper = Raphael();
this.fake = true;
this.width = 1;
this.height = 1;
this.childNodes = [];
}
RSVGElement.prototype.setAttribute = function(attr, val){
this[attr] = val;
}
RSVGElement.prototype.suspendRedraw = emptyFn //no op
RSVGElement.prototype.unsuspendRedraw = emptyFn //no op
RSVGElement.prototype.appendTo = function(el){
//console.log("creating paper")
this.paper = Raphael(el, this.width, this.height);
//this.parentNode = el;
}
RSVGElement.prototype.appendChild = function(el){
//create el
if(!el) return; //do nothing if no element
if(this.paper[el.tag]){
////console.log("Appending Shape ",el.tag)
switch(el.tag){
case "rect":
el.shape = this.paper.rect(el.x, el.y, el.width, el.height);
break;
case 'ellipse':
el.shape = this.paper.ellipse(el.cx, el.cy, el.rx, el.ry);
break;
}
el.shape = this.paper[el.tag]();
}
this.childNodes.push(el)
if(el.tag == "g"){
if(!el.shape){
el.shape = this.paper.set();
}
//no clue because g doesn't actually exist
}
el.parentNode = this; //am i doing it right?
return el;
}
RSVGElement.prototype.removeChild = function(el){
if(el.shape){
el.shape.remove()
}
}