Jhy3DView.h
上传用户:eehhbb
上传日期:2022-08-03
资源大小:2550k
文件大小:4k
源码类别:

OpenGL

开发平台:

Visual C++

  1. // Jhy3DView.h : interface of the CJhy3DView class
  2. //
  3. /////////////////////////////////////////////////////////////////////////////
  4. #if !defined(AFX_JHY3DVIEW_H__F7137F3D_15C9_459F_93EC_A51A2E0BD80F__INCLUDED_)
  5. #define AFX_JHY3DVIEW_H__F7137F3D_15C9_459F_93EC_A51A2E0BD80F__INCLUDED_
  6. #include "3DPolygon.h" // Added by ClassView
  7. #include "3DTeapot.h" // Added by ClassView
  8. #include "Light.h" // Added by ClassView
  9. #include "3DBox.h"
  10. #include "glglaux.h"// GLaux库的头文件 // Added by ClassView
  11. #include "3DBezierSurface.h" // Added by ClassView
  12. #include "3DNurbsSurface.h" // Added by ClassView
  13. #if _MSC_VER > 1000
  14. #pragma once
  15. #endif // _MSC_VER > 1000
  16. class CJhy3DView : public CView
  17. {
  18. protected: // create from serialization only
  19. CJhy3DView();
  20. DECLARE_DYNCREATE(CJhy3DView)
  21. // Attributes
  22. public:
  23. CJhy3DDoc* GetDocument();
  24. // Operations
  25. public:
  26. // Overrides
  27. // ClassWizard generated virtual function overrides
  28. //{{AFX_VIRTUAL(CJhy3DView)
  29. public:
  30. virtual void OnDraw(CDC* pDC);  // overridden to draw this view
  31. virtual BOOL PreCreateWindow(CREATESTRUCT& cs);
  32. protected:
  33. virtual BOOL OnPreparePrinting(CPrintInfo* pInfo);
  34. virtual void OnBeginPrinting(CDC* pDC, CPrintInfo* pInfo);
  35. virtual void OnEndPrinting(CDC* pDC, CPrintInfo* pInfo);
  36. //}}AFX_VIRTUAL
  37. // Implementation
  38. public:
  39. C3DNurbsSurface m_3dnurbsSuf;
  40. C3DBezierSurface m_3dbezierSuf;
  41. int LoadGLTextures();
  42. AUX_RGBImageRec *LoadBMP(char *Filename);     // 载入位图图象
  43. GLuint m_texture[1];
  44. C3DBox m_3dbox;
  45. void DrawPyramid();
  46. void CloseLight();
  47. CLight m_light;
  48. void OpenLight();
  49. CPoint m_TempMovePos;
  50. int m_n3dRotate_z;
  51. int m_n3dRotate_y;
  52. int m_n3dRotate_x;
  53. short m_n3DRenderMode;
  54. C3DTeapot m_3dteapot;
  55. C3DPolygon m_3dpolygon;
  56. void DrawPolygon();
  57. void DrawOGLscene();
  58. bool InitOpenGL();
  59. CDC* m_pDC;
  60. HGLRC m_hRC;
  61. virtual ~CJhy3DView();
  62. int m_nGraph;//1线框多边形 2填充多边形 3填充三角形 4茶壶 5四棱锥 6长方体  7光照材质及纹理设置
  63. #ifdef _DEBUG
  64. virtual void AssertValid() const;
  65. virtual void Dump(CDumpContext& dc) const;
  66. #endif
  67. protected:
  68. // Generated message map functions
  69. protected:
  70. //{{AFX_MSG(CJhy3DView)
  71. afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);
  72. afx_msg void OnSize(UINT nType, int cx, int cy);
  73. afx_msg void OnDestroy();
  74. afx_msg void OnTriangle();
  75. afx_msg void OnPolygon();
  76. afx_msg void OnWirePolygon();
  77. afx_msg void OnRenderWireMode();
  78. afx_msg void OnWireTeapot();
  79. afx_msg void OnLButtonDown(UINT nFlags, CPoint point);
  80. afx_msg void OnCancelMode();
  81. afx_msg void OnMouseMove(UINT nFlags, CPoint point);
  82. afx_msg void OnCaptureChanged(CWnd *pWnd);
  83. afx_msg void OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags);
  84. afx_msg void OnChar(UINT nChar, UINT nRepCnt, UINT nFlags);
  85. afx_msg void OnRenderSolidMode();
  86. afx_msg void OnPyramid();
  87. afx_msg void OnLightingSet();
  88. afx_msg void On3DBox();
  89. afx_msg void OnRender3DTextureModeTeapot();
  90. afx_msg void OnRenderLightSolid3dBox();
  91. afx_msg void OnDraw3dBeziersurface();
  92. afx_msg void OnRENDERTextureMode3dbox();
  93. afx_msg void OnSphereMapModeTeapot();
  94. afx_msg void OnSPHEREMAPMODE3dbox();
  95. afx_msg void OnDraw3dNurbsSurface();
  96. //}}AFX_MSG
  97. DECLARE_MESSAGE_MAP()
  98. };
  99. #ifndef _DEBUG  // debug version in Jhy3DView.cpp
  100. inline CJhy3DDoc* CJhy3DView::GetDocument()
  101.    { return (CJhy3DDoc*)m_pDocument; }
  102. #endif
  103. /////////////////////////////////////////////////////////////////////////////
  104. //{{AFX_INSERT_LOCATION}}
  105. // Microsoft Visual C++ will insert additional declarations immediately before the previous line.
  106. #endif // !defined(AFX_JHY3DVIEW_H__F7137F3D_15C9_459F_93EC_A51A2E0BD80F__INCLUDED_)