1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44
| #include "GLWidget.h"
// Constructeur ------------------------------------------------------------------------------------------
GLWidget::GLWidget(QWidget * parent) : QGLWidget(parent)
{
initializeGL();
}
// Destructeur -------------------------------------------------------------------------------------------
GLWidget::~GLWidget()
{
}
// Méthodes ----------------------------------------------------------------------------------------------
void GLWidget::initializeGL()
{
glClearColor(0.0, 0.0, 0.0, 0.0); // Fond en noir.
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT); // Nettoie l'écran (buffer) avec les valeurs précisées par glClearColor (de même pour le depth buffer).
/* Comment initialiser la caméra ? */
}
void GLWidget::afficherSystem(Systeme * system)
{
glClear(GL_COLOR_BUFFER_BIT | GL_DEPTH_BUFFER_BIT);
glLoadIdentity(); // Réinitialiser la valeur actuelle modelview matrice
glBegin(GL_QUADS);
glColor3ub(255,0,0); // Face rouge
glVertex3d( demi_largeur + pos_x, demi_longueur + pos_y, epaisseur + pos_z);
glVertex3d( demi_largeur + pos_x, demi_longueur + pos_y, 0 + pos_z);
glVertex3d(- demi_largeur + pos_x, demi_longueur + pos_y, 0 + pos_z);
glVertex3d(- demi_largeur + pos_x, demi_longueur + pos_y, epaisseur + pos_z);
[...]
glColor3ub(255,0,255); //face magenta
glVertex3d( demi_largeur + pos_x, demi_longueur + pos_y, epaisseur + pos_z);
glVertex3d( demi_largeur + pos_x, - demi_longueur + pos_y, epaisseur + pos_z);
glVertex3d(- demi_largeur + pos_x, - demi_longueur + pos_y, epaisseur + pos_z);
glVertex3d(- demi_largeur + pos_x, demi_longueur + pos_y, epaisseur + pos_z);
glEnd();
glFlush();
swapBuffers();
} |
Partager