glBindTexture(GL_TEXTURE_2D, 0); // Back to default texture\r
}\r
\r
+// Menu enum\r
+enum menu {\r
+ // Main menu\r
+ ROTATE_MOVE_CAMERA,\r
+ POSITION_SCALE,\r
+ ROTATION_TEXTURE_SCALE,\r
+ EXIT,\r
+\r
+ // Material submenu\r
+ MATERIAL_ALL_RGB,\r
+ MATERIAL_AMBIENT_RGB,\r
+ MATERIAL_DIFFUSE_RGB,\r
+ MATERIAL_SPECULAR_RGB,\r
+ MATERIAL_ALL_ADSS,\r
+ MATERIAL_RED_ADSS,\r
+ MATERIAL_GREEN_ADSS,\r
+ MATERIAL_BLUE_ADSS,\r
+\r
+ // Light submenu\r
+ LIGHT_MOVE_LIGHT_1,\r
+ LIGHT_RGBALL_LIGHT_1,\r
+ LIGHT_MOVE_LIGHT_2,\r
+ LIGHT_RGBALL_LIGHT_2\r
+};\r
+\r
// Menu arrays\r
const char *textureMenuEntries[NTEXTURE] = {\r
"1 Plain", "2 Rust", "3 Concrete", "4 Carpet", "5 Beach Sand", \r
};\r
\r
void processMainEvents(int id) {\r
- if(id == 99) exit(0);\r
+ switch (id) {\r
+ case EXIT:\r
+ exit(0);\r
+\r
+ }\r
}\r
\r
void processObjectEvents(int id) {\r
\r
}\r
\r
-void makeMenu() {\r
- //int main, object, objectsize, material, texture, gtexture, light;\r
-\r
- glutCreateMenu(processMainEvents);\r
- \r
-\r
- /*int objectSize = sizeof(objectMenuEntries) / sizeof(objectMenuEntries[0]);\r
- int numMenus = objectSize/10 + 1;\r
- int objectSubmenu[numMenus];\r
-\r
- for( int i = 0; objectSubmenu[i]; i++ ) {\r
- objectSubmenu[i] = 0;\r
- }\r
\r
- // Create the n-(n+10) menus\r
- for ( int i = 0; i < numMenus; i++ ) {\r
\r
- objectSubmenu[i] = glutCreateMenu(processObjectEvents);\r
-\r
- for ( int j = 0; j < (i + 1) * 10; j++ ) {\r
-\r
- if ( objectMenuEntries[j] ) {\r
- glutAddMenuEntry( objectMenuEntries[j], j + 1 );\r
- } else { \r
- break;\r
- }\r
-\r
- }\r
-\r
- }\r
+void makeMenu() {\r
+ glutCreateMenu(processMainEvents);\r
\r
- // Create the overmenu*/\r
- //int objectMenu = glutCreateMenu(processObjectEvents);\r
- /*for ( int i = 0; objectSubmenu[i]; i++ ) {\r
- char name[10];\r
- sprintf(name,"%d",(i + 1) * 10);\r
- glutAddSubMenu( name, objectSubmenu[i] );\r
- }*/\r
+ glutAddMenuEntry("Rotate/Move Camera", ROTATE_MOVE_CAMERA);\r
+ //Add object\r
+ glutAddMenuEntry("Position/Scale", POSITION_SCALE);\r
+ glutAddMenuEntry("Rotation/Texture Scale", ROTATION_TEXTURE_SCALE);\r
+ //material\r
+ //texture\r
+ //ground texture\r
+ //lights\r
\r
- //glutAddSubMenu("Objects", objectMenu);\r
- glutAddMenuEntry("Exit", 99);\r
- \r
- \r
\r
+ glutAddMenuEntry("Exit", EXIT);\r
\r
glutAttachMenu(GLUT_RIGHT_BUTTON);\r
-\r
}\r
\r
\r