Files @ 102a456be7db
Branch filter:

Location: light9/lightsim/sim2 - annotation

drewp@bigasterisk.com
refactor EE moving towards the ability to re-bump existing curves
Ignore-this: 3a488225654c1cc8695b5466b2cdbc1c
f866d4dec57b
f866d4dec57b
f866d4dec57b
f866d4dec57b
f866d4dec57b
f866d4dec57b
f866d4dec57b
f866d4dec57b
f866d4dec57b
f866d4dec57b
f866d4dec57b
f866d4dec57b
f866d4dec57b
f866d4dec57b
f866d4dec57b
f866d4dec57b
f866d4dec57b
f866d4dec57b
f866d4dec57b
f866d4dec57b
f866d4dec57b
f866d4dec57b
f866d4dec57b
f866d4dec57b
f866d4dec57b
f866d4dec57b
f866d4dec57b
f866d4dec57b
f866d4dec57b
f866d4dec57b
f866d4dec57b
f866d4dec57b
f866d4dec57b
f866d4dec57b
f866d4dec57b
f866d4dec57b
f866d4dec57b
f866d4dec57b
f866d4dec57b
f866d4dec57b
f866d4dec57b
f866d4dec57b
f866d4dec57b
f866d4dec57b
f866d4dec57b
f866d4dec57b
f866d4dec57b
f866d4dec57b
f866d4dec57b
f866d4dec57b
f866d4dec57b
f866d4dec57b
f866d4dec57b
f866d4dec57b
f866d4dec57b
f866d4dec57b
f866d4dec57b
f866d4dec57b
f866d4dec57b
f866d4dec57b
f866d4dec57b
f866d4dec57b
f866d4dec57b
f866d4dec57b
f866d4dec57b
f866d4dec57b
f866d4dec57b
f866d4dec57b
f866d4dec57b
f866d4dec57b
f866d4dec57b
f866d4dec57b
f866d4dec57b
f866d4dec57b
f866d4dec57b
f866d4dec57b
f866d4dec57b
f866d4dec57b
f866d4dec57b
f866d4dec57b
f866d4dec57b
f866d4dec57b
f866d4dec57b
f866d4dec57b
f866d4dec57b
f866d4dec57b
f866d4dec57b
f866d4dec57b
f866d4dec57b
f866d4dec57b
f866d4dec57b
f866d4dec57b
f866d4dec57b
f866d4dec57b
f866d4dec57b
f866d4dec57b
f866d4dec57b
f866d4dec57b
f866d4dec57b
f866d4dec57b
f866d4dec57b
f866d4dec57b
f866d4dec57b
f866d4dec57b
f866d4dec57b
f866d4dec57b
f866d4dec57b
f866d4dec57b
f866d4dec57b
f866d4dec57b
f866d4dec57b
f866d4dec57b
f866d4dec57b
f866d4dec57b
f866d4dec57b
f866d4dec57b
f866d4dec57b
f866d4dec57b
f866d4dec57b
f866d4dec57b
f866d4dec57b
f866d4dec57b
f866d4dec57b
#!/usr/bin/python2.4
from __future__ import division
import sys, time, math
import Image, ImageFilter
import Numeric as num
from OpenGL import GL, GLUT, GLU
from OpenGL.GL import *

def openglSetup(width=512, height=256):
    global cardList

    glClearColor (0.0, 0.0, 0.0, 0.0)
    glShadeModel (GL_SMOOTH)
    glEnable(GL_COLOR_MATERIAL)

    glLightfv(GL_LIGHT0, GL_AMBIENT, [0.0, 0.0, 0.0, 1.0])
    glLightfv(GL_LIGHT0, GL_DIFFUSE, [1.0, 1.0, 1.0, 1.0])
    glLightfv(GL_LIGHT0, GL_POSITION, [0.0, 3.0, 3.0, 0.0])
    glLightModelfv(GL_LIGHT_MODEL_AMBIENT, [0.2, 0.2, 0.2, 1.0])
    glLightModelfv(GL_LIGHT_MODEL_LOCAL_VIEWER, [0])

    #glFrontFace(GL_CW)
    glEnable(GL_LIGHTING)
    glEnable(GL_LIGHT0)
    #glEnable(GL_AUTO_NORMAL)
    #glEnable(GL_NORMALIZE)
    glEnable(GL_DEPTH_TEST) 


    glViewport (0, 0, width, height)
    glMatrixMode (GL_PROJECTION)
    glLoadIdentity ()
    glFrustum (-1.0, 1.0, -1.0, 1.0, 1.5, 20.0)
    glMatrixMode (GL_MODELVIEW)

    cardList = glGenLists(1)
    glNewList(cardList, GL_COMPILE)
    glColor3f(1,1,1)
    glBegin(GL_QUADS)
    glTexCoord2f(0.0, 1.0); glVertex3f(-1.0, 0.0,  1.0)
    glTexCoord2f(1.0, 1.0); glVertex3f( 1.0, 0.0,  1.0)
    glTexCoord2f(1.0, 0.0); glVertex3f( 1.0, 1.0,  1.0)
    glTexCoord2f(0.0, 0.0); glVertex3f(-1.0, 1.0,  1.0)
    glEnd()
    glEndList()



def imageCard(img):
    """card facing +Z from -1<x<1 -1<y<1"""
    textureData = img.convert(mode="RGBA").tostring()

    glBindTexture(GL_TEXTURE_2D, 0)
    glTexImage2D( GL_TEXTURE_2D, 0, GL_RGBA,
                  512, #multiImage.size()[0],
                  256, #multiImage.size()[1],
                  0,
                  GL_RGBA, GL_UNSIGNED_BYTE, textureData)
    glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MAG_FILTER, GL_NEAREST)
    glTexParameterf(GL_TEXTURE_2D, GL_TEXTURE_MIN_FILTER, GL_NEAREST)

    glCallList(cardList)

def setupDraw():
    """per-frame setup"""
    glClearColor(0.0, 0.0, 0.0, 0.0)
    glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT)
    glLoadIdentity ()
    GLU.gluLookAt (0.5, 0.5, 8.0,
                   0.5, 0.5, 0.0,
                   0.0, 1.0, 0.0)

    glDisable(GL_TEXTURE_2D)

correctFrameStart = None
def drawFrame():
    global correctFrameStart
    t1 = time.time()
    setupDraw()
    
    matching = False
    glPushMatrix()
    try:
        glTranslatef(1, -.9, 3.2)
        # flip to compensate for the camera facing the user
        glScalef(-1, 1, 1)
        
        glDisable(GL_LIGHTING)
        glEnable(GL_TEXTURE_2D)

#        imageCard(Image.open("skyline/bg.png"))
        imageCard(Image.open("skyline/cyc-lo-red.png"))

##         if grab.lastFrame:
##             imageCard(grab.lastFrame)
##             glEnable(GL_LIGHTING)
##             glDisable(GL_TEXTURE_2D)
##             if grab.seenPose:
##                 for colorName, pos in grab.seenPose.pos.items():
##                     cube(color=(x / 255 for x in vision.colors[colorName]),
##                          center=((1-pos[0]) * 2 - 1, pos[1] * 2 - 1, 1),
##                          side=.1, wire=False)
##                 matching = game.pose.compare(grab.seenPose)
        glEnable(GL_LIGHTING)
        glDisable(GL_TEXTURE_2D)
    finally:
        glPopMatrix()

    
    glFlush()
    #print "draw", time.time() - t1

GLUT.glutInit(sys.argv)
window = GLUT.glutCreateWindow("sim2")
openglSetup()
GLUT.glutDisplayFunc(drawFrame)
def menu(arg):
    print "hi", arg
GLUT.glutCreateMenu(menu)
GLUT.glutAddMenuEntry("hi", 1)
GLUT.glutAttachMenu(GLUT.GLUT_RIGHT_BUTTON)

GLUT.glutMainLoop()