void initialisation() { // donner la couleur de fond glClearColor( 0.7, 0.3, 0.0, 1.0 ); // activer les etats openGL glEnable( GL_NORMALIZE ); glEnable( GL_DEPTH_TEST ); chargerTextures(); // charger les nuanceurs chargerNuanceurs(); }
void initialiser() { // positionnement de la caméra: angle et distance de la caméra à la base du bras thetaCam = thetaInit; phiCam = phiInit; distCam = distInit; // donner la couleur de fond glClearColor( 0.0, 0.0, 0.0, 1.0 ); // activer les etats openGL glEnable( GL_DEPTH_TEST ); // charger les nuanceurs chargerNuanceurs(); // créer le VBO pour les sommets // ... // créer le VBO la connectivité // ... }
void keyboard(unsigned char touche, int x, int y) { switch ( touche ) { case 27: // escape glutDestroyWindow(g_feneID); exit(0); break; case ' ': afficheDe = !afficheDe; glutPostRedisplay(); break; case 'r': case 'R': utiliseCouleur = !utiliseCouleur; glutPostRedisplay(); break; case 't': case 'T': texmode = ++texmode % 4; switch(texmode) { case 0: glTexParameterf( GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT ); glTexParameterf( GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT ); break; case 1: glTexParameterf( GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP ); glTexParameterf( GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_REPEAT ); break; case 2: glTexParameterf( GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_REPEAT ); glTexParameterf( GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP ); break; case 3: glTexParameterf( GL_TEXTURE_2D, GL_TEXTURE_WRAP_S, GL_CLAMP); glTexParameterf( GL_TEXTURE_2D, GL_TEXTURE_WRAP_T, GL_CLAMP); break; } glutPostRedisplay(); break; case 'n': case 'N': noirTransparent = !noirTransparent; glutPostRedisplay(); break; case 'x': utiliseNuanceurs = !utiliseNuanceurs; glutPostRedisplay(); break; case 'v': // Recharger les nuanceurs chargerNuanceurs(); std::cout << "// Recharger nuanceurs" << std::endl; glutPostRedisplay(); break; case '1': // vue 1 phi=DEG2RAD(90+45); theta=DEG2RAD(55); glutPostRedisplay(); break; case '2': // vue 2 phi=DEG2RAD(180+90+45); theta=DEG2RAD(180-55); glutPostRedisplay(); break; } std::cout << " texmode=" << texmode << " utiliseNuanceurs=" << ( utiliseNuanceurs ? "OUI" : "NON" ) << " utiliseCouleur=" << ( utiliseCouleur ? "OUI" : "NON" ) << " noirTransparent=" << ( noirTransparent ? "OUI" : "NON" ) << std::endl; }
void FenetreTP::clavier( TP_touche touche ) { switch ( touche ) { case TP_ESCAPE: case TP_q: quit(); break; case TP_x: // permutation de l'affichage des axes afficheAxes = !afficheAxes; std::cout << "// Affichage des axes ? " << ( afficheAxes ? "OUI" : "NON" ) << std::endl; break; case TP_v: // Recharger les nuanceurs chargerNuanceurs(); std::cout << "// Recharger nuanceurs" << std::endl; break; case TP_MINUS: case TP_UNDERSCORE: distCam += 0.1; break; case TP_PLUS: case TP_EQUALS: if ( distCam > 1.0 ) distCam -= 0.1; break; case TP_i: phiCam = phiInit; thetaCam = thetaInit; distCam = distInit; break; case TP_l: modeLookAt = !modeLookAt; std::cout << " modeLookAt=" << modeLookAt << std::endl; break; case TP_g: modePolygone = ( modePolygone == GL_FILL ) ? GL_LINE : GL_FILL; break; case TP_PAGEDOWN: angleElevation -= 1.0; verifierAngles(); std::cerr << " angleElevation=" << angleElevation << " angleEpaule=" << angleEpaule << " angleCoude=" << angleCoude << " anglePoignet=" << anglePoignet << std::endl; break; case TP_PAGEUP: angleElevation += 1.0; verifierAngles(); std::cerr << " angleElevation=" << angleElevation << " angleEpaule=" << angleEpaule << " angleCoude=" << angleCoude << " anglePoignet=" << anglePoignet << std::endl; break; case TP_LEFT: angleEpaule -= 2.0; verifierAngles(); std::cerr << " angleElevation=" << angleElevation << " angleEpaule=" << angleEpaule << " angleCoude=" << angleCoude << " anglePoignet=" << anglePoignet << std::endl; break; case TP_RIGHT: angleEpaule += 2.0; verifierAngles(); std::cerr << " angleElevation=" << angleElevation << " angleEpaule=" << angleEpaule << " angleCoude=" << angleCoude << " anglePoignet=" << anglePoignet << std::endl; break; case TP_DOWN: angleCoude -= 2.0; verifierAngles(); std::cerr << " angleElevation=" << angleElevation << " angleEpaule=" << angleEpaule << " angleCoude=" << angleCoude << " anglePoignet=" << anglePoignet << std::endl; break; case TP_UP: angleCoude += 2.0; verifierAngles(); std::cerr << " angleElevation=" << angleElevation << " angleEpaule=" << angleEpaule << " angleCoude=" << angleCoude << " anglePoignet=" << anglePoignet << std::endl; break; case TP_LEFTBRACKET: anglePoignet -= 1.0; verifierAngles(); std::cerr << " angleElevation=" << angleElevation << " angleEpaule=" << angleEpaule << " angleCoude=" << angleCoude << " anglePoignet=" << anglePoignet << std::endl; break; case TP_RIGHTBRACKET: anglePoignet += 1.0; verifierAngles(); std::cerr << " angleElevation=" << angleElevation << " angleEpaule=" << angleEpaule << " angleCoude=" << angleCoude << " anglePoignet=" << anglePoignet << std::endl; break; default: std::cout << " touche inconnue : " << (char) touche << std::endl; break; } }