/** * @brief CGLArea::paintGL * * Fonction de dessin sur la fenetre openGL */ void CGLArea::paintGL() { glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); glLoadIdentity(); // paintRef(); GLfloat ambientLight[] = {0.2f, 0.2f, 0.2f, 1.0f}; GLfloat lightColor[] = {0.6f, 0.6f, 0.6f, 1.0f}; GLfloat lightPos[] ={10,0,-15,1}; glLightModelfv(GL_LIGHT_MODEL_AMBIENT, ambientLight); glLightfv(GL_LIGHT0, GL_DIFFUSE, lightColor); glLightfv(GL_LIGHT0, GL_SPECULAR, lightColor); glLightfv(GL_LIGHT0, GL_POSITION, lightPos); maSphere->vSetMaterialColor(); CVector3 oPos; maSphere->vGetPosition(&oPos); glLoadIdentity(); glTranslatef(oPos.fGetX(), oPos.fGetY(), oPos.fGetZ()); // For each face... for(int j=0; j<maSphere->iGetNbFaces(); j++) { glBegin(GL_POLYGON); // For each vertex of the face for(int k=0;k<maSphere->iGetNbVertices(j);k++) { CVector3 oVertex; CVector3 oNormal; maSphere->vGetVertex(j,k,&oVertex); maSphere->vGetNormale(j,k,&oNormal); glNormal3f(oVertex.fGetX(), oVertex.fGetY(), oVertex.fGetZ()); glVertex3f(oVertex.fGetX(), oVertex.fGetY(), oVertex.fGetZ()); } glEnd(); } }