comparison flax/Timeline.py @ 124:8de8a2f467db

The "T" function now creates TimedEvents with LinearBlenders for you The "T" function now creates TimedEvents with LinearBlenders for you (using the same LinearBlender). Thus, we don't need to specify linear anymore. The timeline seek bar was reading the length of track1 instead of the whole timeline. This is fixed.
author dmcc
date Fri, 13 Jun 2003 15:55:54 +0000
parents 41c0ec6cd10a
children 5670f66845ce
comparison
equal deleted inserted replaced
123:41c0ec6cd10a 124:8de8a2f467db
287 levels = [t.get_levels_at_time(self.current_time) 287 levels = [t.get_levels_at_time(self.current_time)
288 for t in self.tracks] 288 for t in self.tracks]
289 return dict_max(*levels) 289 return dict_max(*levels)
290 290
291 if __name__ == '__main__': 291 if __name__ == '__main__':
292 T = TimedEvent 292 def T(*args, **kw):
293 293 """This used to be a synonym for TimedEvent:
294 linear = LinearBlender() 294
295 T = TimedEvent
296
297 It now acts the same way, except that it will fill in a default
298 blender if you don't. The default blender is a LinearBlender."""
299 linear = LinearBlender()
300 if 'blender' not in kw:
301 kw['blender'] = linear
302
303 return TimedEvent(*args, **kw)
304
295 quad = ExponentialBlender(2) 305 quad = ExponentialBlender(2)
296 invquad = ExponentialBlender(0.5) 306 invquad = ExponentialBlender(0.5)
297 smoove = SmoothBlender() 307 smoove = SmoothBlender()
298 308
299 track1 = TimelineTrack('red track', 309 track1 = TimelineTrack('red track',
300 T(0, 'red', blender=linear, level=0), 310 T(0, 'red', level=0),
301 T(4, 'red', blender=quad, level=0.5), 311 T(4, 'red', blender=quad, level=0.5),
302 T(12, 'red', blender=smoove, level=0.7), 312 T(12, 'red', blender=smoove, level=0.7),
303 T(15, 'red', level=0.0)) # last TimedEvent doesn't need a blender 313 T(15, 'red', level=0.0)) # last TimedEvent doesn't need a blender
304 track2 = TimelineTrack('green track', 314 track2 = TimelineTrack('green track',
305 T(0, 'green', blender=invquad, level=0.2), 315 T(0, 'green', blender=invquad, level=0.2),
306 T(5, 'green', blender=smoove, level=1), 316 T(5, 'green', blender=smoove, level=1),
307 T(10, 'green', blender=linear, level=0.8), 317 T(10, 'green', level=0.8),
308 T(15, 'green', blender=linear, level=0.6), 318 T(15, 'green', level=0.6),
309 T(20, 'green', level=0.0)) # last TimedEvent doesn't need a blender 319 T(20, 'green', level=0.0)) # last TimedEvent doesn't need a blender
310 track3 = TimelineTrack('tableau demo', 320 track3 = TimelineTrack('tableau demo',
311 T(0, 'blue', level=0.0, blender=linear), 321 T(0, 'blue', level=0.0),
312 T(2, 'blue', level=1.0, blender=InstantEnd()), 322 T(2, 'blue', level=1.0, blender=InstantEnd()),
313 T(18, 'blue', level=1.0, blender=linear), 323 T(18, 'blue', level=1.0),
314 T(20, 'blue', level=0.0, blender=linear)) 324 T(20, 'blue', level=0.0))
315 325
316 tl = Timeline([track1, track2, track3]) 326 tl = Timeline([track1, track2, track3])
317 327
318 tl.play() 328 tl.play()
319 329
341 levels = tl.get_levels() 351 levels = tl.get_levels()
342 for color in colors: 352 for color in colors:
343 scalevars[color].set(levels.get(color, 0)) 353 scalevars[color].set(levels.get(color, 0))
344 354
345 colorscalesframe.pack() 355 colorscalesframe.pack()
346 time_scale = Tix.Scale(root, from_=0, to_=track1.length(), 356 time_scale = Tix.Scale(root, from_=0, to_=tl.length(),
347 orient=Tix.HORIZONTAL, res=0.01, command=set_timeline_time) 357 orient=Tix.HORIZONTAL, res=0.01, command=set_timeline_time)
348 time_scale.pack(side=Tix.BOTTOM, fill=Tix.X, expand=1) 358 time_scale.pack(side=Tix.BOTTOM, fill=Tix.X, expand=1)
349 359
350 def play_tl(): 360 def play_tl():
351 tl.tick() 361 tl.tick()