Mercurial > MadButterfly
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': |