X-Git-Url: https://git.ucc.asn.au/?a=blobdiff_plain;f=scene.c;h=df115d154dc6fd443dd34df01347dc7dd2419937;hb=3d89d50018205ce3262ee69d780ed0d5e07ecd78;hp=a35d885bf367fda0e9ba9a13309f188f7ada97a3;hpb=1f4718a29c0c386bd93e10f88dce8b9bb2f171b5;p=atyndall%2Fcits2231.git diff --git a/scene.c b/scene.c index a35d885..df115d1 100644 --- a/scene.c +++ b/scene.c @@ -167,6 +167,31 @@ void getTexture(int i) { // getTexture(i) loads texture i if it isn't already lo glBindTexture(GL_TEXTURE_2D, 0); // Back to default texture } +// Menu enum +enum menu { + // Main menu + ROTATE_MOVE_CAMERA, + POSITION_SCALE, + ROTATION_TEXTURE_SCALE, + EXIT, + + // Material submenu + MATERIAL_ALL_RGB, + MATERIAL_AMBIENT_RGB, + MATERIAL_DIFFUSE_RGB, + MATERIAL_SPECULAR_RGB, + MATERIAL_ALL_ADSS, + MATERIAL_RED_ADSS, + MATERIAL_GREEN_ADSS, + MATERIAL_BLUE_ADSS, + + // Light submenu + LIGHT_MOVE_LIGHT_1, + LIGHT_RGBALL_LIGHT_1, + LIGHT_MOVE_LIGHT_2, + LIGHT_RGBALL_LIGHT_2 +}; + // Menu arrays const char *textureMenuEntries[NTEXTURE] = { "1 Plain", "2 Rust", "3 Concrete", "4 Carpet", "5 Beach Sand", @@ -197,7 +222,11 @@ const char *materialMenuEntries[8] = { }; void processMainEvents(int id) { - if(id == 99) exit(0); + switch (id) { + case EXIT: + exit(0); + + } } void processObjectEvents(int id) { @@ -220,22 +249,42 @@ void processLightEvents(int id) { } + + void makeMenu() { - int main, object, material, texture, gtexture, light; + glutCreateMenu(processMainEvents); - object = glutCreateMenu(processObjectEvents); - for ( int i = 0; objectMenuEntries[i]; i++ ) { - glutAddMenuEntry( objectMenuEntries[i], i ); - } - + glutAddMenuEntry("Rotate/Move Camera", ROTATE_MOVE_CAMERA); + //Add object + glutAddMenuEntry("Position/Scale", POSITION_SCALE); + glutAddMenuEntry("Rotation/Texture Scale", ROTATION_TEXTURE_SCALE); + //material + //texture + //ground texture + //lights - glutCreateMenu(processMainEvents); - glutAddMenuEntry("Exit", 99); - glutAttachMenu(GLUT_RIGHT_BUTTON); + glutAddMenuEntry("Exit", EXIT); + glutAttachMenu(GLUT_RIGHT_BUTTON); } + +/*void createGLUTMenus() { + + int menu,submenu; + + submenu = glutCreateMenu(processMenuEvents); + glutAddMenuEntry("Red",RED); + glutAddMenuEntry("Blue",BLUE); + glutAddMenuEntry("Green",GREEN); + + menu = glutCreateMenu(processMenuEvents); + glutAddMenuEntry("White",WHITE); + glutAddSubMenu("RGB Menu",submenu); + glutAttachMenu(GLUT_RIGHT_BUTTON); +*/ + void display() { // You probably want to change both of the following. glClear(GL_COLOR_BUFFER_BIT);