unproject.cpp 676 B

1234567891011121314151617181920212223242526272829303132
  1. #include "unproject.h"
  2. #ifdef __APPLE__
  3. # include <OpenGL/gl.h>
  4. # include <OpenGL/glu.h>
  5. #else
  6. # ifdef _WIN32
  7. # define NOMINMAX
  8. # include <Windows.h>
  9. # undef NOMINMAX
  10. # endif
  11. # include <GL/gl.h>
  12. # include <GL/glu.h>
  13. #endif
  14. IGL_INLINE int igl::unproject(
  15. const double winX,
  16. const double winY,
  17. const double winZ,
  18. double* objX,
  19. double* objY,
  20. double* objZ)
  21. {
  22. // Put model, projection, and viewport matrices into double arrays
  23. double MV[16];
  24. double P[16];
  25. int VP[4];
  26. glGetDoublev(GL_MODELVIEW_MATRIX, MV);
  27. glGetDoublev(GL_PROJECTION_MATRIX, P);
  28. glGetIntegerv(GL_VIEWPORT, VP);
  29. return gluUnProject(winX,winY,winZ,MV,P,VP,objX,objY,objZ);
  30. }