(no commit message)
[atyndall/cits2231.git] / scene.c
diff --git a/scene.c b/scene.c
index 19d74af..6ae85a7 100644 (file)
--- a/scene.c
+++ b/scene.c
@@ -113,7 +113,8 @@ void processLightEvents(int id) {
  * @param id ID of object selected\r
  */\r
 void processObjectEvents(int id) {\r
-\r
+  // **NOTE: For the testing phase, only have the teapot\r
+  addSceneObject(id);\r
 }\r
 \r
 /**\r
@@ -129,7 +130,8 @@ void processTextureEvents(int id) {
  * @param id ID of ground texture selected\r
  */\r
 void processGTextureEvents(int id) {\r
-\r
+  currentGroundTexture = id;\r
+  glutPostRedisplay();\r
 }\r
 \r
 /**\r
@@ -169,7 +171,7 @@ void makeMenu() {
   //glutAddMenuEntry("Rotation/Texture Scale", M_ROTATION_TEXTURE_SCALE);\r
   //glutAddSubMenu("Material", materialMenu);\r
   //glutAddSubMenu("Texture", textureMenu);\r
-  //glutAddSubMenu("Ground texture", gTextureMenu);\r
+  glutAddSubMenu("Ground texture", gTextureMenu);\r
   //glutAddSubMenu("Lights", lightMenu);\r
   glutAddMenuEntry("Exit", M_EXIT);\r
 \r
@@ -318,7 +320,7 @@ void display() {
     75.0,\r
     aspect,\r
     0.1,\r
-    200\r
+    300\r
     );\r
 \r
   glMatrixMode(GL_MODELVIEW);\r
@@ -338,12 +340,18 @@ void display() {
   lightPosition0[2] = 12*sin(lightAngle0);\r
   lightPosition0[3] = 0.0;\r
 \r
+  direction0[0] = lightPosition0[0];\r
+  direction0[2] = lightPosition0[2];\r
+\r
   /* Reposition the light source 1. */\r
   lightPosition1[0] = 12*cos(lightAngle1);\r
   lightPosition1[1] = lightHeight1;\r
   lightPosition1[2] = 12*sin(lightAngle1);\r
   lightPosition1[3] = 0.0;\r
 \r
+  direction1[0] = lightPosition1[0];\r
+  direction1[2] = lightPosition1[2];\r
+\r
   glPushMatrix();\r
 \r
     /* Perform scene rotations based on user mouse/keyboard input. */\r
@@ -355,13 +363,11 @@ void display() {
     glLightfv(GL_LIGHT1, GL_POSITION, lightPosition1);\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
+      glColor3f(0.0, 0.0, 1.0);\r
       glFrontFace(GL_CW); // The teapot does not obey the right-hand rule\r
       glutSolidTeapot(1);\r
       glFrontFace(GL_CCW);\r
@@ -370,21 +376,23 @@ void display() {
     // Draw a white ball over the light source\r
     glPushMatrix();\r
       glDisable(GL_LIGHTING);\r
-      glColor3f(1.0, 1.0, 0.0);\r
+      glColor3f(1.0, 1.0, 1.0);\r
       glTranslatef(lightPosition0[0], lightPosition0[1], lightPosition0[2]);\r
-      glutSolidSphere(1.0, 50, 50);\r
+      glutSolidSphere(0.5, 50, 50);\r
       glEnable(GL_LIGHTING);\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
+      glColor3f(1.0, 1.0, 1.0);\r
       glTranslatef(lightPosition1[0], lightPosition1[1], lightPosition1[2]);\r
-      glutSolidSphere(1.0, 50, 50);\r
+      glutSolidSphere(0.5, 50, 50);\r
       glEnable(GL_LIGHTING);\r
     glPopMatrix();\r
 \r
+    drawAxisLines();\r
+\r
   glPopMatrix();\r
 \r
   glutSwapBuffers();\r
@@ -399,22 +407,13 @@ void init() {
   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
   glLightfv(GL_LIGHT1, GL_AMBIENT, ambient1);\r
   glLightfv(GL_LIGHT1, GL_DIFFUSE, diffuse1);\r
   glLightfv(GL_LIGHT1, GL_SPECULAR, specular1);\r
   glLightfv(GL_LIGHT1, GL_SPOT_DIRECTION, direction1);\r
 \r
-  glLightf(GL_LIGHT1, GL_SPOT_CUTOFF, 90.0);\r
-\r
   glLightModelfv(GL_LIGHT_MODEL_AMBIENT, glightmodel);\r
-\r
-  glMaterialfv(GL_FRONT, GL_AMBIENT, ambient);\r
-  glMaterialfv(GL_FRONT, GL_DIFFUSE, diffuse);\r
-  glMaterialfv(GL_FRONT, GL_SPECULAR, specular);\r
-  glMaterialfv(GL_FRONT, GL_EMISSION, emission);\r
-  glMaterialf(GL_FRONT, GL_SHININESS, shine);\r
+  glLightModeli(GL_LIGHT_MODEL_COLOR_CONTROL, GL_SEPARATE_SPECULAR_COLOR);\r
 \r
   glEnable(GL_LIGHT0);\r
   glEnable(GL_LIGHT1);\r
@@ -452,8 +451,6 @@ int main(int argc, char **argv) {
   glDepthRange(0,1);\r
   glEnable(GL_DEPTH_TEST); // Enables Depth Testing\r
   glDepthFunc(GL_LEQUAL);  // the type\r
-  glEnable(GL_TEXTURE_2D);\r
-  glEnable(GL_CULL_FACE);\r
   glEnable(GL_NORMALIZE);\r
   glLineWidth(2.0);\r
 \r

UCC git Repository :: git.ucc.asn.au