1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21
| void Terrain::calcul_souris(FreeFlyCamera * camera)
{
GLint viewport[4];
GLdouble modelview[16];
GLdouble projection[16];
GLfloat winX, winY, winZ;
GLdouble posX, posY, posZ;
glGetDoublev( GL_MODELVIEW_MATRIX, modelview );
glGetDoublev( GL_PROJECTION_MATRIX, projection );
glGetIntegerv( GL_VIEWPORT, viewport );
winX = (float)camera->get_posX_souris_clik();
winY = (float)viewport[3] - (float)camera->get_posY_souris_clik();
glReadPixels( (int)winX, int(winY), 1, 1, GL_DEPTH_COMPONENT, GL_FLOAT, &winZ );
gluUnProject(winX,winY,winZ,modelview,projection,viewport,&posX,&posY,&posZ);
posX_souris_terrain = (float)posX;
posY_souris_terrain = (float)posY;
posZ_souris_terrain = (float)posZ; |
Partager