comparison pyink/tween.py @ 1172:178b126edd2c

Implement the correct normal tween. We will duplicate the node in the start scene. Insted of deleting all nodes which is not in the stop scene, we should delete the object which is not in the start scene instead. If we delete objecvt the the stop scene, the object should appear until we reach the stop scene.
author wycc
date Thu, 30 Dec 2010 11:50:02 +0800
parents e64b02951627
children 25e1579ed3d1
comparison
equal deleted inserted replaced
1171:16ea7b81eda8 1172:178b126edd2c
59 stop_nodes[node_label] = node 59 stop_nodes[node_label] = node
60 except: 60 except:
61 pass 61 pass
62 node = node.next() 62 node = node.next()
63 pass 63 pass
64 64 # Collect all nodes in start scene
65 # Remove duplicate nodes that is not in the set of stop nodes 65 start_nodes = {}
66 #for node_ref in dup_nodes: 66 node = start_scene_group.firstChild()
67 # if node_ref not in stop_nodes: 67 while node:
68 # node = dup_nodes[node_ref] 68 try:
69 # duplicate_group.removeChild(node) 69 node_label = node.getAttribute("id")
70 # pass 70 start_nodes[node_label] = node
71 # pass 71 except:
72 pass
73 node = node.next()
74 pass
75
76
77 # Remove duplicate nodes that is not in the set of start nodes
78 for node_ref in dup_nodes:
79 if node_ref not in start_nodes:
80 node = dup_nodes[node_ref]
81 duplicate_group.removeChild(node)
82 pass
83 pass
72 84
73 # 85 #
74 # Node ID of a node of start scene must be mapped to 86 # Node ID of a node of start scene must be mapped to
75 # 'ns0:duplicate-src' attribute of a node of stop scene. The 87 # 'ns0:duplicate-src' attribute of a node of stop scene. The
76 # nodes which can not be mapped to a node of stop scene are 88 # nodes which can not be mapped to a node of stop scene are
174 """ 186 """
175 if typ == self.TWEEN_TYPE_SCALE: 187 if typ == self.TWEEN_TYPE_SCALE:
176 self.updateTweenObjectScale(obj,s,d,p,newobj) 188 self.updateTweenObjectScale(obj,s,d,p,newobj)
177 pass 189 pass
178 elif typ == self.TWEEN_TYPE_NORMAL: 190 elif typ == self.TWEEN_TYPE_NORMAL:
191 print "newobj=",newobj
179 if newobj == None: 192 if newobj == None:
180 newobj = s.duplicate(self.document) 193 newobj = s.duplicate(self.document)
181 newobj.setAttribute("ref", s.getAttribute("id")) 194 newobj.setAttribute("ref", s.getAttribute("id"))
182 obj.appendChild(newobj) 195 obj.appendChild(newobj)
183 pass 196 pass
195 newobj = s.duplicate(self.document) 208 newobj = s.duplicate(self.document)
196 top = self.document.createElement("svg:g") 209 top = self.document.createElement("svg:g")
197 top.setAttribute("ref",s.getAttribute("id")) 210 top.setAttribute("ref",s.getAttribute("id"))
198 top.appendChild(newobj) 211 top.appendChild(newobj)
199 obj.appendChild(top) 212 obj.appendChild(top)
200 print "aaa"
201 else: 213 else:
202 top = newobj 214 top = newobj
203 newobj = top.firstChild() 215 newobj = top.firstChild()
204 216
205 if s.name() == 'svg:g': 217 if s.name() == 'svg:g':