MyglView.h
上传用户:cding2008
上传日期:2007-01-03
资源大小:1812k
文件大小:5k
源码类别:

OpenGL

开发平台:

Visual C++

  1. /////////////////////////////////////////////////////////////////////////////
  2. // MyglView.h : header file; interface of the CMyglView class
  3. //
  4. // ModelMagic 3D and 'glOOP' (OpenGL Object Oriented Programming library)
  5. // Copyright (c) Craig Fahrnbach 1997, 1999
  6. //
  7. // OpenGL is a registered trademark of Silicon Graphics
  8. //
  9. //
  10. // This program is provided for educational and personal use only and
  11. // is provided without guarantee or warrantee expressed or implied.
  12. //
  13. // Commercial use is strickly prohibited without written permission
  14. // from ImageWare Development.
  15. //
  16. /////////////////////////////////////////////////////////////////////////////
  17. class CEditCameraDlg;
  18. /////////////////////////////////////////////////////////////////////////////
  19. // CMyglView 
  20. class CMyglView : public CView
  21. {
  22. DECLARE_DYNCREATE(CMyglView)
  23. // Construction
  24. public:
  25. CMyglView();
  26. virtual ~CMyglView();
  27. // Attributes
  28. public:
  29. C3dCamera m_Camera; // Our windows camera
  30. CClientDC* m_pDC; // Pointer to our Device Context
  31. HGLRC m_hRC; // Handle to our Rendering Context
  32. protected:
  33. int m_nMouseZ;
  34. int m_nInitMouseZ;
  35. CPoint m_CPointLeftButtonDown; // Screen position of the mouse
  36. GLfloat m_fMouseZCoord; // Coordinate of the mouse 'z'
  37. GLfloat m_fSelectedCoord[3]; // Coordinate of the selected object
  38. GLfloat m_fSelectedCoord2[3]; // 2nd Coordinate of the selected object
  39. GLfloat m_fLeftButtonDownCoord[3]; // World coordinate of the mouse
  40. // Operations
  41. public:
  42. // Overrides
  43. // ClassWizard generated virtual function overrides
  44. //{{AFX_VIRTUAL(CMyglView)
  45. public:
  46. virtual void OnDraw(CDC* pDC);  // overridden to draw this view
  47. virtual BOOL PreCreateWindow(CREATESTRUCT& cs);
  48. virtual void OnPrepareDC(CDC* pDC, CPrintInfo* pInfo = NULL);
  49. protected:
  50. virtual void OnBeginPrinting(CDC* pDC, CPrintInfo* pInfo);
  51. virtual void OnEndPrinting(CDC* pDC, CPrintInfo* pInfo);
  52. virtual void OnActivateView(BOOL bActivate, CView* pActivateView, CView* pDeactiveView);
  53. virtual void OnPrint(CDC* pDC, CPrintInfo* pInfo);
  54. virtual BOOL OnPreparePrinting(CPrintInfo* pInfo);
  55. //}}AFX_VIRTUAL
  56. // Implementation
  57. public:
  58. void DisplayWorldCoord(VECTORF fMouseCoordinate);
  59. CMyglDoc* GetDocument();
  60. void CalculateMargins(CDC* pDC, CRect* pRectMargins);
  61. void ViewIso();
  62. void ViewFront();
  63. void ViewSide();
  64. void ViewTop();
  65. #ifdef _DEBUG
  66. virtual void AssertValid() const;
  67. virtual void Dump(CDumpContext& dc) const;
  68. #endif
  69. protected:
  70. // Generated message map functions
  71. protected:
  72. //{{AFX_MSG(CMyglView)
  73. afx_msg BOOL OnEraseBkgnd(CDC* pDC);
  74. afx_msg void OnSize(UINT nType, int cx, int cy);
  75. afx_msg int OnCreate(LPCREATESTRUCT lpCreateStruct);
  76. afx_msg void OnPaletteChanged(CWnd* pFocusWnd);
  77. afx_msg BOOL OnQueryNewPalette();
  78. afx_msg void OnDestroy();
  79. afx_msg void OnMouseMove(UINT nFlags, CPoint point);
  80. afx_msg void OnViewPerspective();
  81. afx_msg void OnViewZoomIn();
  82. afx_msg void OnViewZoomOut();
  83. afx_msg void OnUpdateViewPerspective(CCmdUI* pCmdUI);
  84. afx_msg void OnAnimateSceen();
  85. afx_msg void OnUpdateAnimateSceen(CCmdUI* pCmdUI);
  86. afx_msg void OnViewWireFrame();
  87. afx_msg void OnUpdateViewWireFrame(CCmdUI* pCmdUI);
  88. afx_msg void OnViewFlatShade();
  89. afx_msg void OnUpdateViewFlatShade(CCmdUI* pCmdUI);
  90. afx_msg void OnViewDisplayAxis();
  91. afx_msg void OnUpdateViewDisplayAxis(CCmdUI* pCmdUI);
  92. afx_msg void OnViewDisplayGrid();
  93. afx_msg void OnUpdateViewDisplayGrid(CCmdUI* pCmdUI);
  94. afx_msg void OnViewIso();
  95. afx_msg void OnUpdateViewIso(CCmdUI* pCmdUI);
  96. afx_msg void OnViewFront();
  97. afx_msg void OnUpdateViewFront(CCmdUI* pCmdUI);
  98. afx_msg void OnViewSide();
  99. afx_msg void OnUpdateViewSide(CCmdUI* pCmdUI);
  100. afx_msg void OnViewTop();
  101. afx_msg void OnUpdateViewTop(CCmdUI* pCmdUI);
  102. afx_msg void OnViewSmoothShade();
  103. afx_msg void OnUpdateViewSmoothShade(CCmdUI* pCmdUI);
  104. afx_msg void OnKeyDown(UINT nChar, UINT nRepCnt, UINT nFlags);
  105. afx_msg void OnCameraEdit();
  106. afx_msg void OnLButtonDown(UINT nFlags, CPoint point);
  107. afx_msg void OnViewCullfaces();
  108. afx_msg void OnUpdateViewCullfaces(CCmdUI* pCmdUI);
  109. afx_msg void OnLButtonDblClk(UINT nFlags, CPoint point);
  110. afx_msg void OnFilePrintPreview();
  111. afx_msg void OnFilePageSetup();
  112. afx_msg void OnFileSaveImage();
  113. afx_msg void OnRButtonDown(UINT nFlags, CPoint point);
  114. afx_msg void OnLButtonUp(UINT nFlags, CPoint point);
  115. afx_msg BOOL OnSetCursor(CWnd* pWnd, UINT nHitTest, UINT message);
  116. afx_msg void OnViewOutline();
  117. afx_msg void OnUpdateViewOutline(CCmdUI* pCmdUI);
  118. //}}AFX_MSG
  119. DECLARE_MESSAGE_MAP()
  120. };
  121. #ifndef _DEBUG  // debug version in MyglView.cpp
  122. inline CMyglDoc* CMyglView::GetDocument()
  123.    { return (CMyglDoc*)m_pDocument; }
  124. #endif
  125. /////////////////////////////////////////////////////////////////////////////