+ glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);\r
+ glMatrixMode(GL_MODELVIEW);\r
+ glLoadIdentity();\r
+\r
+ //gluLookAt(\r
+ // -30.0, -30.0, -30.0, /* eye is at (x,y,z) */\r
+ /// 0.0, 0.0, 0.0, /* center is at (x,y,z) */\r
+ // 0.0, 1.0, 0.0 /* up is in postivie Y direction */\r
+ // );\r
+\r
+ /* Reposition the light source. */\r
+ lightPosition[0] = 12*cos(lightAngle);\r
+ lightPosition[1] = lightHeight;\r
+ lightPosition[2] = 12*sin(lightAngle);\r
+ lightPosition[3] = 0.0;\r
+\r
+ glPushMatrix();\r
+\r
+ /* Perform scene rotations based on user mouse/keyboard input. */\r
+ glRotatef(angle, 0.0, 1.0, 0.0);\r
+ glRotatef(angle2, 1.0, 0.0, 0.0);\r
+ glTranslatef(camx, camy, camz);\r
+ glRotatef(rot, 1.0, 0.0, 0.0);\r
+\r
+ glLightfv(GL_LIGHT0, GL_POSITION, lightPosition);\r
+\r
+ drawFloor();\r
+\r
+ drawLine();\r
+ \r
+ // Draw teapot for a test object\r
+ glPushMatrix();\r
+ glTranslatef(0.0, 0.5, 0.0); // **NOTE: Teapot currently does not rest on surface\r
+ glColor3f(0.0, 0.0, 0.0);\r
+ glutSolidTeapot(1);\r
+ glPopMatrix();\r
+\r
+ // Draw a white ball over the light source\r
+ glPushMatrix();\r
+ glDisable(GL_LIGHTING);\r
+ glColor3f(1.0, 1.0, 0.0);\r
+ glTranslatef(lightPosition[0], lightPosition[1], lightPosition[2]);\r
+ glutSolidSphere(1.0, 50, 50);\r
+ glEnable(GL_LIGHTING);\r
+ glPopMatrix();\r
+\r
+ glPopMatrix();\r
+\r
+ glutSwapBuffers();\r
+}\r
+\r
+/**\r
+ * init function; sets initial OpenGL state\r
+ */\r
+void init() {\r
+ glLightfv(GL_LIGHT0, GL_POSITION, light0_pos);\r
+ glLightfv(GL_LIGHT0, GL_AMBIENT, ambient0);\r
+ glLightfv(GL_LIGHT0, GL_DIFFUSE, diffuse0);\r
+ glLightfv(GL_LIGHT0, GL_SPECULAR, specular0);\r
+ glLightfv(GL_LIGHT0, GL_SPOT_DIRECTION, direction0);\r
+\r
+ glLightf(GL_LIGHT0, GL_SPOT_CUTOFF, 90.0);\r
+\r
+ glLightModelfv(GL_LIGHT_MODEL_AMBIENT, glightmodel);\r
+\r
+ glMaterialfv(GL_FRONT_AND_BACK, GL_AMBIENT, ambient);\r
+ glMaterialfv(GL_FRONT_AND_BACK, GL_DIFFUSE, diffuse);\r
+ glMaterialfv(GL_FRONT_AND_BACK, GL_SPECULAR, specular);\r
+ glMaterialfv(GL_FRONT_AND_BACK, GL_EMISSION, emission0);\r
+ glMaterialf(GL_FRONT_AND_BACK, GL_SHININESS, shine);\r
+\r
+ glEnable(GL_LIGHT0);\r
+ glEnable(GL_LIGHTING);\r