(no commit message)
[atyndall/cits2231.git] / scene.c
diff --git a/scene.c b/scene.c
index ccb5dac..0251439 100644 (file)
--- a/scene.c
+++ b/scene.c
 void processMainEvents(int id) {\r
   switch (id) {\r
     case M_ROTATE_MOVE_CAMERA:\r
-      // Do stuff\r
+      manipulateState = STATE_CAMERA_ROTATE_MOVE;\r
       break;\r
-\r
     case M_POSITION_SCALE:\r
-      // Do stuff\r
+      manipulateState = STATE_OBJECT_POSITION_SCALE;\r
       break;\r
-\r
     case M_ROTATION_TEXTURE_SCALE:\r
-      // Do stuff\r
+      manipulateState = STATE_OBJECT_ROTATION_TEXTURE_SCALE;\r
       break;\r
-\r
     case M_EXIT:\r
       exit(EXIT_SUCCESS);\r
 \r
@@ -115,6 +112,7 @@ void processLightEvents(int id) {
 void processObjectEvents(int id) {\r
   // **NOTE: For the testing phase, only have the teapot\r
   addSceneObject(id);\r
+  glutPostRedisplay();\r
 }\r
 \r
 /**\r
@@ -165,10 +163,10 @@ void makeMenu() {
 \r
   // Construct main menu\r
   glutCreateMenu(processMainEvents);\r
-  //glutAddMenuEntry("Rotate/Move Camera", M_ROTATE_MOVE_CAMERA);\r
-  //glutAddSubMenu("Add object", objectMenu);\r
-  //glutAddMenuEntry("Position/Scale", M_POSITION_SCALE);\r
-  //glutAddMenuEntry("Rotation/Texture Scale", M_ROTATION_TEXTURE_SCALE);\r
+  glutAddMenuEntry("Rotate/Move Camera", M_ROTATE_MOVE_CAMERA);\r
+  glutAddSubMenu("Add object", objectMenu);\r
+  glutAddMenuEntry("Position/Scale", M_POSITION_SCALE);\r
+  glutAddMenuEntry("Rotation/Texture Scale", M_ROTATION_TEXTURE_SCALE);\r
   //glutAddSubMenu("Material", materialMenu);\r
   //glutAddSubMenu("Texture", textureMenu);\r
   glutAddSubMenu("Ground texture", gTextureMenu);\r
@@ -206,6 +204,8 @@ void mouse(int button, int state, int x, int y) {
       } else if ( state == GLUT_UP ) {\r
         buttonSelected = -1;\r
       }\r
+      startx = x;\r
+      starty = y;\r
       break;\r
   }\r
 }\r
@@ -291,7 +291,6 @@ void motion(int x, int y) {
       }\r
 \r
       starty = y;\r
-      printf("zoom is %f, y is %d starty is %d\n", zoom, y, starty);\r
       startx = x;\r
 \r
       break;\r
@@ -386,27 +385,24 @@ void display() {
     drawFloor();\r
     \r
     // Draw sceneObjs array\r
-    glPushMatrix();\r
-      for ( int i = 0; i < nObjects; i++ ) {\r
+    for ( int i = 0; i < nObjects; i++ ) {\r
+      glPushMatrix();\r
         SceneObject so = sceneObjs[i];\r
 \r
         // Apply rotation vector\r
-        vector* rv = so.rotation.vect;\r
-        glRotatef(so.rotation.parameter, *rv[0], *rv[1], *rv[2]);\r
+        //glRotatef(so.rotation.amount, so.rotation.vector[0], so.rotation.vector[1], so.rotation.vector[2]);\r
 \r
         // Apply scaling vector\r
-        vector* sv = so.scale;\r
-        glScalef(*sv[0], *sv[1], *sv[2]);\r
+        glScalef(so.scale[0], so.scale[1], so.scale[2]);\r
 \r
         // Apply translation vector\r
-        glTranslatef(so.x, so.y, so.z);\r
+        //glTranslatef(so.x, so.y, so.z);\r
 \r
         // Apply texture\r
         if ( so.texture > 0 ) {\r
           getTexture(so.texture);\r
           glBindTexture(GL_TEXTURE_2D, so.texture);\r
         } else {\r
-          getTexture(0);\r
           glBindTexture(GL_TEXTURE_2D, 0);\r
         }\r
 \r
@@ -421,8 +417,9 @@ void display() {
         }\r
 \r
         glBindTexture(GL_TEXTURE_2D, 0);\r
-      }\r
-    glPopMatrix();\r
+      glPopMatrix();\r
+    }\r
+    \r
 \r
     // Draw a white ball over the light source\r
     glPushMatrix();\r

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