from Togra import * import Image import sys import Tracker import togragst import gst GL_QUADS = 7 if len(sys.argv) == 2: fname = sys.argv[1] else: fname = "/home/shans/alien.mpg" scene = init() track = Tracker.initTracker(scene) scene.newLight(Vector(0,20,-60),(0.6,0.6,0.6,1)) r1 = InterpolatedPath(3) r1.setType(2) r1.append((Vector(1,0.5,0.2), 0), 0) r1.append((Vector(1,0.5,0.2), 360), 2000) r1.setMaxIndex(2000) r2 = InterpolatedPath(3) r2.setType(2) r2.append((Vector(0,0.5,1), 0), 0) r2.append((Vector(0,0.5,1), 360), 20000) r2.setMaxIndex(20000) panelList = VectorList(8) panelList.append(Vector(0,-5,-5)) panelList.append(Vector(0,5,-5)) panelList.append(Vector(0,5,5)) panelList.append(Vector(0,-5,5)) panelList.append(Vector(0,-5,-5)) panelList.append(Vector(0,-5,5)) panelList.append(Vector(0,5,5)) panelList.append(Vector(0,5,-5)) panelNormals = VectorList(8) for i in range(4): panelNormals.append(Vector(1, 0, 0)) for i in range(4): panelNormals.append(Vector(-1, 0, 0)) panelTexture = FloatList(16) for i in range(2): panelTexture.append(1.0) panelTexture.append(0.0) panelTexture.append(0.0) panelTexture.append(0.0) panelTexture.append(0.0) panelTexture.append(1.0) panelTexture.append(1.0) panelTexture.append(1.0) sr = StaticRender(panelList, GL_QUADS, normals=panelNormals, textureCoords=panelTexture) translations = [Vector(5, 0, 0), Vector(-5, 0, 0), Vector(0, 5, 0), Vector(0, -5, 0), Vector(0, 0, 5), Vector(0, 0, -5)] rotations = [Vector(1, 0, 0), Vector(1, 0, 0), Vector(0, 0, 1), Vector(0, 0, 1), Vector(0, 1, 0), Vector(0, 1, 0)] rAmts = [0, 0, 90, 90, 90, 90] box = Container(6) box.transformContainer.append(r1) for i in range(len(translations)): panel = Container(1) panel.append(sr) panel.transformContainer.append(Transform(translate=translations[i], rotateAxis=rotations[i], rotateAmount=rAmts[i])) box.append(panel) t = [Vector(0, 0, 20), Vector(-20, 0, 0), Vector(20, 0, 0), Vector(0, 0, -20), Vector(0, 20, 0), Vector(0, -20, 0)] all = Container() for i in t: step = Container(1) step.append(box) step.transformContainer.append(Transform(translate=i)) all.append(step) #textureImage = IntList(xsize*ysize) #for pixel in im.getdata(): # r, g, b = pixel # pixelValue = r | g << 8 | b << 16 # textureImage.append(pixelValue) panelMaterial = Material() tex = togragst.AutoGstTexture(512, 256, togragst.FILE_WITH_AUDIO, fname) panelMaterial.setTexture(tex.texture) box.setMaterial(panelMaterial) scene.view_from = Vector(0,0,-60) #scene.baseContainer.transformContainer.append(r2) scene.baseContainer.transformContainer.append(track) scene.baseContainer.append(all) scene.setBackgroundColour(0,0,0) scene.run()