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
void processObjectEvents(int id) {\r
// **NOTE: For the testing phase, only have the teapot\r
addSceneObject(id);\r
+ glutPostRedisplay();\r
}\r
\r
/**\r
\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
}\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
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
+ //GLfloat* rv = &so.rotation.vector;\r
+ printf("%f, %f, %f\n", so.rotation.vector[0], so.rotation.vector[1], so.rotation.vector[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
+ //GLfloat* sv = &so.scale;\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
getTexture(so.texture);\r
glBindTexture(GL_TEXTURE_2D, so.texture);\r
} else {\r
- getTexture(0);\r
glBindTexture(GL_TEXTURE_2D, 0);\r
}\r
\r
}\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