Mercurial > code > home > repos > light9
view lightsim/sim2 @ 2450:a4052905ca7d default tip
notes about how rdfdb syncs, or should sync
author | drewp@bigasterisk.com |
---|---|
date | Mon, 03 Jun 2024 23:01:54 -0700 |
parents | f866d4dec57b |
children |
line wrap: on
line source
#!/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()