Trying to convert openGL to MFC coordinates and having Problems with "gluProject"

Posted by Erez on Stack Overflow See other posts from Stack Overflow or by Erez
Published on 2010-06-01T06:12:44Z Indexed on 2010/06/01 6:13 UTC
Read the original article Hit count: 622

Filed under:
|
|

Hi, i'm trying to find the naswer on the web and can't find a full solution that i can use and that will work...

I'm developing a MFC project with static picture as the canvas for an openGL class that draw the grphics for my game.

On moush down, i need to retrive a shape coordinate from the openGL class.

I'm looking for a way to convert the openGL coordinates to MFC coordinates but no matter what i try i get junk after using the gluProject or gluUnProject (i've tried to do both ways but non is working)

GLdouble modelMatrix[16];
  glGetDoublev(GL_MODELVIEW_MATRIX,modelMatrix);
  GLdouble projMatrix[16];
  glGetDoublev(GL_PROJECTION_MATRIX,projMatrix);
  int viewport[4];
  glGetIntegerv(GL_VIEWPORT,viewport);

  POINT mouse;              // Stores The X And Y Coords For The Current Mouse Position
  GetCursorPos(&mouse);         // Gets The Current Cursor Coordinates (Mouse Coordinates)
  ScreenToClient(hWnd, &mouse);
  GLdouble winX, winY, winZ;        // Holds Our X, Y and Z Coordinates
  winX; = (float)point.x;     // Holds The Mouse X Coordinate
  winY; = (float)point.y;     // Holds The Mouse Y Coordinate
  winY = (float)viewport[3] - winY;
  glReadPixels(winX, winY, 1, 1, GL_DEPTH_COMPONENT, GL_FLOAT, &winZ);
  GLdouble posX=s1->getPosX(), posY=s1->getPosY(), posZ=s1->getPosZ();    // Hold The Final Values
  gluUnProject( winX, winY, winZ, modelMatrix, projMatrix, viewport, &posX, &posY, &posZ);
  gluProject(posX, posY, posZ, modelMatrix, projMatrix, viewport, &winX, &winY, &winZ);

This is just part of the code i've tried. ofcourse not gluProject and gluUnProject together. just had them both here to show.....and i know there is lots of junk over there, its from some of my tries...

p.s. i've tried many many more combinations and examples from the web and nothing seem to work in my case....

Can any one show me what is the right way to do the transformation?

10x

© Stack Overflow or respective owner

Related posts about opengl

Related posts about mfc