Bonjours,
J ai un probleme pour utiliser ces deux fonctions.
Enfaite j ai un cube et avec un mouvement sur ce cube j'essaye de connaitre le vecteur sense (vecteur dessiner par la mouvement de souris)
Bien place dans la fonction clique square j'ai ecrit :
GLint viewport[4];
GLdouble modelview[16];
GLdouble projection[16];
glGetDoublev( GL_MODELVIEW_MATRIX, modelview );
glGetDoublev( GL_PROJECTION_MATRIX, projection );
glGetIntegerv( GL_VIEWPORT, viewport );
glReadPixels(x,y,1,1,GL_DEPTH_COMPONENT,GL_INT,&z);
gluUnProject(x, y, z, modelview, projection, viewport, (double *)&sourisXY[1], (double *)&sourisXY[2], (double *)&sourisXY[3]);
Enfaite x et y sont les variables de la position de la souris.
sourisXY de 1 a 3 (tableau de 4 variables) est une variable global contenant la possition du point sur le cube cliqué.
Maintenant, bien placé dans la fonction de mouvement de la souris, j'ai ecrit le code suivant :
GLint viewport[4];
GLdouble modelview[16];
GLdouble projection[16];
glGetDoublev( GL_MODELVIEW_MATRIX, modelview );
glGetDoublev( GL_PROJECTION_MATRIX, projection );
glGetIntegerv( GL_VIEWPORT, viewport );
glReadPixels(x,y,1,1,GL_DEPTH_COMPONENT,GL_INT,&z);
gluUnProject(x, y, z, modelview, projection, viewport, (double *)&X, (double *)&Y, (double *)&Z);
vectSouris.xyz[0] = X-sourisXY[1];
vectSouris.xyz[1] = Y-sourisXY[2];
vectSouris.xyz[2] = Z-sourisXY[3];
avec vectSouris le vecteur correspondant au vecteur de deplacement de la souris.
Enfaite par la suite j'utilise ce vecteur mais j'ai l impression que tous ce que j ai ecrit est faux. Pouvez vous confirmer SVP et me corriger .
Merci