ChildView.h
上传用户:lin85885
上传日期:2013-04-27
资源大小:796k
文件大小:4k
源码类别:

3D图形编程

开发平台:

Visual C++

  1. // ChildView.h : interface of the CChildView class
  2. //
  3. /////////////////////////////////////////////////////////////////////////////
  4. #if !defined(AFX_CHILDVIEW_H__BDDF956A_C67B_11D3_91F5_0000E83E7EBA__INCLUDED_)
  5. #define AFX_CHILDVIEW_H__BDDF956A_C67B_11D3_91F5_0000E83E7EBA__INCLUDED_
  6. #include "Transform.h"
  7. #include "Mesh.h"
  8. #if _MSC_VER > 1000
  9. #pragma once
  10. #endif // _MSC_VER > 1000
  11. #define MOUSE_SPIN 1
  12. #define MOUSE_TRANSLATE 2
  13. #define MOUSE_ZOOM 3
  14. #define TIMER_ANIMATE 1
  15. #define TIMER_TOOLBAR 2
  16. #define ANIMATE_RATE 50
  17. #define TOOLBAR_RATE 20
  18. #define ROTATE_RATE 4.0f
  19. #define ZOOM_RATE 0.05f
  20. /////////////////////////////////////////////////////////////////////////////
  21. // CChildView window
  22. class CChildView : public CWnd
  23. {
  24. // Construction
  25. public:
  26. CChildView();
  27. // Attributes
  28. public:
  29. // Operations
  30. public:
  31. // Overrides
  32. // ClassWizard generated virtual function overrides
  33. //{{AFX_VIRTUAL(CChildView)
  34. protected:
  35. virtual BOOL PreCreateWindow(CREATESTRUCT& cs);
  36. virtual BOOL OnCommand(WPARAM wParam, LPARAM lParam);
  37. //}}AFX_VIRTUAL
  38. // Implementation
  39. public:
  40. BOOL SaveAsBMP(char *bmpFileName);
  41. void DrawAxes();
  42. void Init();
  43. void Translate(float d[3]);
  44. void MouseTranslate(UINT nFlags, int x, int y);
  45. void MouseZoom(UINT nFlags, int x, int y);
  46. void Zoom(float scale);
  47. void MouseSpinGlobal(UINT nFlags, int x, int y, int init);
  48. void SpinGlobal(float axes[3], float angle);
  49. void DrawScene();
  50. void Project();
  51. virtual ~CChildView();
  52. protected:
  53. HDC m_hDc;
  54. HGLRC m_hRc;
  55. float m_fViewWidth, m_fViewHeight;
  56. float m_fViewNear, m_fViewFar;
  57. BOOL m_bLButtonDown;
  58. int m_nMouseAct;
  59. BOOL m_bAnimate;
  60. BOOL m_bAxes;
  61. float m_vProjectCenter[3];
  62. EYE m_sEye;
  63. float m_spinAxes[3];
  64. float m_spinAngle;
  65. int m_nRenderMode,m_nRenderModel;
  66. CMesh * m_pModel;
  67. int m_nFaceNo;
  68. int m_nsFaceNo;
  69. protected:
  70. void SetupBmpHeader(BITMAPINFOHEADER *pbmih, int sx, int sy, int bpp);
  71. BOOL SetThePixelFormat(CDC * pDC);
  72. // Generated message map functions
  73. //{{AFX_MSG(CChildView)
  74. afx_msg void OnPaint();
  75. afx_msg void OnSize( UINT nType, int cx, int cy );
  76. afx_msg int  OnCreate( LPCREATESTRUCT lpCreateStruct );
  77. afx_msg void OnMouseMove( UINT nFlags, CPoint point );
  78. afx_msg void OnLButtonDown(UINT nFlags, CPoint point);
  79. afx_msg void OnLButtonUp(UINT nFlags, CPoint point);
  80. afx_msg BOOL OnSetCursor(CWnd* pWnd, UINT nHitTest, UINT message);
  81. afx_msg void OnTimer( UINT nIDEvent );
  82. afx_msg void OnContextMenu( CWnd* pWnd, CPoint pos );
  83. afx_msg void OnMouseSpin();
  84. afx_msg void OnUpdateMouseSpin(CCmdUI* pCmdUI);
  85. afx_msg void OnMouseTranslate();
  86. afx_msg void OnUpdateMouseTranslate(CCmdUI* pCmdUI);
  87. afx_msg void OnMouseZoom();
  88. afx_msg void OnUpdateMouseZoom(CCmdUI* pCmdUI);
  89. afx_msg void OnAnimate();
  90. afx_msg void OnUpdateAnimate(CCmdUI* pCmdUI);
  91. afx_msg void OnSpinXccw();
  92. afx_msg void OnSpinXcw();
  93. afx_msg void OnSpinYccw();
  94. afx_msg void OnSpinYcw();
  95. afx_msg void OnSpinZccw();
  96. afx_msg void OnSpinZcw();
  97. afx_msg void OnZoomIn();
  98. afx_msg void OnZoomOut();
  99. afx_msg void OnOpenFile();
  100. afx_msg void OnOriginalModel();
  101. afx_msg void OnUpdateOriginalModel(CCmdUI* pCmdUI);
  102. afx_msg void OnSimplifiedModel();
  103. afx_msg void OnUpdateSimplifiedModel(CCmdUI* pCmdUI);
  104. afx_msg void OnWireframe();
  105. afx_msg void OnUpdateWireframe(CCmdUI* pCmdUI);
  106. afx_msg void OnFlat();
  107. afx_msg void OnUpdateFlat(CCmdUI* pCmdUI);
  108. afx_msg void OnSimplify();
  109. afx_msg void OnSaveFile();
  110. afx_msg void OnAxes();
  111. afx_msg void OnUpdateAxes(CCmdUI* pCmdUI);
  112. afx_msg void OnSavePicture();
  113. afx_msg void OnUpdateSimplify(CCmdUI* pCmdUI);
  114. afx_msg void OnUpdateSaveFile(CCmdUI* pCmdUI);
  115. afx_msg void OnCloseFile();
  116. afx_msg void OnUpdateCloseFile(CCmdUI* pCmdUI);
  117. //}}AFX_MSG
  118. DECLARE_MESSAGE_MAP()
  119. };
  120. /////////////////////////////////////////////////////////////////////////////
  121. //{{AFX_INSERT_LOCATION}}
  122. // Microsoft Visual C++ will insert additional declarations immediately before the previous line.
  123. #endif // !defined(AFX_CHILDVIEW_H__BDDF956A_C67B_11D3_91F5_0000E83E7EBA__INCLUDED_)