Exemple #1
0
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é
   // ...
}
Exemple #3
0
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;
   }
}