from Togra import * ISPAUSED = [0] def myKb(*args): if args[0] == ord('q'): e.exit() # this will exit! if args[0] == ord(' '): if ISPAUSED[0]: e.cont() else: e.pause() ISPAUSED[0] = not ISPAUSED[0] e = init(1) e.keyFunction = myKb ip = InterpolatedPath(3) ip.append((Vector(30,0,0), Vector(0,-15,0), Vector(0,15,0)),0) ip.append((Vector(0,30,0), Vector(15,0,0), Vector(-15,0,0)), 1000) ip.append((Vector(-30,0,0), Vector(0,15,0), Vector(0,-15,0)), 2000) ip.append((Vector(0,-30,0), Vector(-15,0,0), Vector(15,0,0)),3000) ip.append((Vector(30,0,0), Vector(0,-15,0), Vector(0,15,0)),4000) ip.setMaxIndex(4000) ip2 = InterpolatedPath(3) ip2.append((Vector(60,0,0), Vector(0,-20,0), Vector(0,20,0)),0) ip2.append((Vector(0,40,0), Vector(30,0,0), Vector(-30,0,0)), 750) ip2.append((Vector(-60,0,0), Vector(0,20,0), Vector(0,-20,0)), 1500) ip2.append((Vector(0,-40,0), Vector(-30,0,0), Vector(30,0,0)),2250) ip2.append((Vector(60,0,0), Vector(0,-20,0), Vector(0,20,0)),3000) ip2.setMaxIndex(3000) globl = e.baseContainer globl.setTransform(Transform(translate=Vector(80, 0, -40))) translates = [Vector(35,0,35), Vector(0,35,35), Vector(0,-35,35), Vector(0,0,70), Vector(-35,0,35), Vector(0,0,35), Vector(0,0,35), Vector(0,0,35), Vector(0,0,35)] rotates = [Vector(0,1,0), Vector(1,0,0), Vector(1,0,0), Vector(0,0,1), Vector(0,1,0), Vector(0,0,1), Vector(0,0,1), Vector(0,0,1), Vector(0,0,1)] rAmounts = [90, 90, -90, 180, -90, 45, -45, 135, -135] containers = [] for i in range(len(translates)): containers.append(Container()) containers[-1].setTransform(Transform(translate=translates[i], rotateAxis=rotates[i], rotateAmount=rAmounts[i])) r = sphere(0, 0, 0, 10, 40, 40) r.setPath(ip) s = sphere(0, 0, 0, 10, 40, 40) s.setPath(ip2) for i in range(5): containers[i].append(r) for i in range(5, 9): containers[i].append(s) containers.append(r) map(globl.append, containers) e.run()