 
    
     
    
Fichier source : TexturageCubeCylindre.cpp
static void solidCube(double ct) {
      float c =(float) ct/2.0F;
      glBegin(GL_QUADS);
      { glNormal3f(0.0F,0.0F,-1.0F);
        glTexCoord2f(1.0F,0.0F);
        glVertex3f( c, c,-c);
        glTexCoord2f(1.0F,1.0F);
        glVertex3f( c,-c,-c);
        glTexCoord2f(0.0F,1.0F);
        glVertex3f(-c,-c,-c);
        glTexCoord2f(0.0F,0.0F);
        glVertex3f(-c, c,-c); }
      { glNormal3f(0.0F,0.0F,1.0F);
        glTexCoord2f(0.0F,0.0F);
        glVertex3f( c, c, c);
        glTexCoord2f(1.0F,0.0F);
        glVertex3f(-c, c, c);
        glTexCoord2f(1.0F,1.0F);
        glVertex3f(-c,-c, c);
        glTexCoord2f(0.0F,1.0F);
        glVertex3f( c,-c, c); }
      { glNormal3f(-1.0F,0.0F,0.0F);
        glTexCoord2f(0.0F,0.0F);
        glVertex3f(-c, c,-c);
        glTexCoord2f(1.0F,0.0F);
        glVertex3f(-c,-c,-c);
        glTexCoord2f(1.0F,1.0F);
        glVertex3f(-c,-c, c);
        glTexCoord2f(0.0F,1.0F);
        glVertex3f(-c, c, c); }
      { glNormal3f(1.0F,0.0F,0.0F);
        glTexCoord2f(0.0F,0.0F);
        glVertex3f( c, c, c);
        glTexCoord2f(1.0F,0.0F);
        glVertex3f( c,-c, c);
        glTexCoord2f(1.0F,1.0F);
        glVertex3f( c,-c,-c);
        glTexCoord2f(0.0F,1.0F);
        glVertex3f( c, c,-c); }
      { glNormal3f(0.0F,-1.0F,0.0F);
        glTexCoord2f(0.0F,0.0F);
        glVertex3f(-c,-c, c);
        glTexCoord2f(1.0F,0.0F);
        glVertex3f(-c,-c,-c);
        glTexCoord2f(1.0F,1.0F);
        glVertex3f( c,-c,-c);
        glTexCoord2f(0.0F,1.0F);
        glVertex3f( c,-c, c); }
      { glNormal3f(0.0F,1.0F,0.0F);
        glTexCoord2f(0.0F,0.0F);
        glVertex3f( c, c, c);
        glTexCoord2f(1.0F,0.0F);
        glVertex3f( c, c,-c);
        glTexCoord2f(1.0F,1.0F);
        glVertex3f(-c, c,-c);
        glTexCoord2f(0.0F,1.0F);
        glVertex3f(-c, c, c); }
      glEnd();
    }
    
    #ifndef M_PI
    #define M_PI 3.14159
    #endif
    
    static void solidCylindre(double hauteur,double rayon,int ns) {
      float h = hauteur/2;
      glBegin(GL_QUAD_STRIP);
      for( int i = 0 ; i <= ns ; i++ ) {
        float a = (2*M_PI*i)/ns;
        float cs = cos(a);
        float sn = -sin(a);
        glNormal3f(cs,0.0F,sn);
        float x = rayon*cs;
        float z = rayon*sn;
        glTexCoord2f((float) i/ns,0.0F);
        glVertex3f(x,h,z);
        glTexCoord2f((float) i/ns,1.0F);
        glVertex3f(x,-h,z); }
      glEnd();
      glBegin(GL_POLYGON);
      glNormal3f(0.0F,1.0F,0.0F);
      for( int i = 0 ; i < ns ; i++ ) {
        float a = (2*M_PI*i)/ns;
        float cs = cos(a);
        float sn = -sin(a);
        float x = rayon*cs;
        float z = rayon*sn;
        glTexCoord2f(cs/4.0F,-sn/4.0F);
        glVertex3f(x,hauteur/2.0F,z); }
      glEnd();
      glBegin(GL_POLYGON);
      glNormal3f(0.0F,-1.0F,0.0F);
      for( int i = 0 ; i < ns ; i++ ) {
        float a = (2*M_PI*i)/ns;
        float cs = cos(a);
        float sn = sin(a);
        float x = rayon*cs;
        float z = rayon*sn;
        glTexCoord2f(cs/4.0F,sn/4.0F);
        glVertex3f(x,-hauteur/2.0F,z); }
      glEnd();
    }