InfoPanel0.cpp
上传用户:hkb425
上传日期:2007-06-16
资源大小:34191k
文件大小:2k
源码类别:

游戏引擎

开发平台:

Visual C++

  1. // InfoPanel.cpp: implementation of the CInfoPanel class.
  2. //
  3. //////////////////////////////////////////////////////////////////////
  4. #include "stdafx.h"
  5. #include "InfoPanel.h"
  6. #include "GameSetting.h"
  7. #include "heightmap.h"
  8. #include "imgtext.h"
  9. //////////////////////////////////////////////////////////////////////
  10. // Construction/Destruction
  11. //////////////////////////////////////////////////////////////////////
  12. CInfoPanel::CInfoPanel()
  13. {
  14. /*
  15.     Viewport[0]=Viewport[1]=0;
  16. Viewport[2]=CGameSetting::m_iScrWidth;
  17. Viewport[3]=CGameSetting::m_iScrWidth;
  18.     focusx=Viewport[2]/2;
  19. focusy=Viewport[3]/2;*/
  20. }
  21. CInfoPanel::~CInfoPanel()
  22. {
  23. }
  24. void CInfoPanel::DrawInfoPanel()
  25. {
  26.     //////////////// calcau
  27.     GLdouble objx,objy,objz;
  28. GLfloat depth[4];
  29.     GLdouble ModelMatrix[16], ProjMatrix[16];
  30.     GLint    Viewport[4];
  31. glGetIntegerv(GL_VIEWPORT, Viewport);
  32. int focusx=Viewport[2]/2;
  33. int focusy=Viewport[3]/2;
  34. glReadPixels(focusx,focusy,1,1,GL_DEPTH_COMPONENT,GL_FLOAT,depth);
  35.     glGetDoublev(GL_MODELVIEW_MATRIX,  ModelMatrix);
  36.     glGetDoublev(GL_PROJECTION_MATRIX, ProjMatrix);
  37.     gluUnProject(focusx,focusy, depth[0], 
  38.          ModelMatrix, ProjMatrix, Viewport,
  39.  &objx, &objy, &objz);
  40.     
  41. // double dx=CHeightmap::m_pViewPos->xpos-objx;
  42. // double dy=CHeightmap::m_pViewPos->ypos-objy;
  43. // double dz=CHeightmap::m_pViewPos->zpos-objz;
  44. // double distance=sqrt( dx*dx+dy*dy+dz*dz);
  45. glLoadIdentity();
  46. /////////////////////////////
  47. ///////////////////// distance info
  48. glColor3f(1,1,1);
  49. CImgText::PrintValue(10,100,objx);
  50. CImgText::PrintValue(10,120,objy);
  51. CImgText::PrintValue(10,140,objz);
  52. CImgText::PrintValue(10,180,distance);
  53. ////////////////////// viewer pos info
  54. CImgText::PrintValue(620,10,CHeightmap::m_pViewPos->xpos);
  55. CImgText::PrintValue(620,30,CHeightmap::m_pViewPos->ypos);
  56. CImgText::PrintValue(620,50,CHeightmap::m_pViewPos->zpos);
  57. CImgText::PrintValue(620,70,*CHeightmap::m_pViewRotY);
  58. /////////////////////draw cursor
  59. glColor3f(0,1,0);
  60. glBegin(GL_LINES);
  61.         glVertex3f(0,      0.02f,-1.12f);
  62.         glVertex3f(0,     -0.02f,-1.12f);
  63.         glVertex3f(-0.02f,0,     -1.12f);
  64.         glVertex3f(0.02f, 0,     -1.12f);
  65.     glEnd();
  66. }