//tasta apasata void notifyKeyPressed(unsigned char key_pressed, int mouse_x, int mouse_y){ if (key_pressed == 27) lab::glut::close(); //ESC inchide glut si if (key_pressed == 32) { //SPACE //reincarca shader glDeleteProgram(lab::gl_program_shader_gouraud); lab::gl_program_shader_gouraud = lab::loadShader("shadere\\shader_gouraud_vertex.glsl", "shadere\\shader_gouraud_fragment.glsl"); } if (key_pressed == 'h'){ static bool wire = true; wire = !wire; glPolygonMode(GL_FRONT_AND_BACK, (wire ? GL_LINE : GL_FILL)); } if (key_pressed == 'a') { matrice_translatie_1 *= myTranslate(-2.0f, 0, 0); light_position.x -= 10; } if (key_pressed == 'd') { matrice_translatie_1 *= myTranslate(2.0f, 0, 0); light_position.x += 10; } if (key_pressed == 'w') { matrice_translatie_1 *= myTranslate(0, 0, -2.0f); light_position.z -= 10; } if (key_pressed == 's') { matrice_translatie_1 *= myTranslate(0, 0, 2.0f); light_position.z += 10; } float moveSpeed = 5; // Camera Translation if (key_pressed == 'u') { camera.translateForward(moveSpeed); } if (key_pressed == 'h') { camera.translateRight(-moveSpeed); } if (key_pressed == 'j') { camera.translateForward(-moveSpeed); } if (key_pressed == 'k') { camera.translateRight(moveSpeed); } if (key_pressed == 'i') { camera.translateUpword(moveSpeed); } if (key_pressed == 'y') { camera.translateUpword(-moveSpeed); } }
//This function is the display function that calls draw functions. void display() { glClearColor(1.0, 1.0, 1.0, 0.0); glClear(GL_COLOR_BUFFER_BIT|GL_DEPTH_BUFFER_BIT); glColor3f(0.0, 0.0, 0.0); //Draw cube away from origin initMat(curMatrix); myScale(20, 40, 20); myTranslate(50, -30, -40); myRotate(45, 0, 1, 0); myCube(); glFlush(); }