3dPagePlane.cpp
上传用户:shxiangxiu
上传日期:2007-01-03
资源大小:1101k
文件大小:3k
源码类别:

OpenGL

开发平台:

Visual C++

  1. /////////////////////////////////////////////////////////////////////////////
  2. // 3dPagePlane.cpp : implementation file
  3. //
  4. // glOOP (OpenGL Object Oriented Programming library)
  5. // Copyright (c) Craig Fahrnbach 1997, 1998
  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. // This program is -not- in the public domain.
  17. //
  18. /////////////////////////////////////////////////////////////////////////////
  19. #include "stdafx.h"
  20. #include "glOOP.h"
  21. #include "3dObjectDialog.h"
  22. #ifdef _DEBUG
  23. #undef THIS_FILE
  24. static char BASED_CODE THIS_FILE[] = __FILE__;
  25. #endif
  26. //////////////////////////////////////////////////////////////////
  27. // C3dPagePlane
  28. IMPLEMENT_DYNCREATE(C3dPagePlane, CPropertyPage)
  29. /////////////////////////////////////////////////////////////////////////////
  30. // C3dPagePlane dialog construction
  31. C3dPagePlane::C3dPagePlane()
  32. : CPropertyPage(C3dPagePlane::IDD)
  33. {
  34. m_bInitVertices = FALSE;
  35. //{{AFX_DATA_INIT(C3dPagePlane)
  36. m_fDepth = 0.0f;
  37. m_fWidth = 0.0f;
  38. m_szName = _T("");
  39. //}}AFX_DATA_INIT
  40. }
  41. /////////////////////////////////////////////////////////////////////////////
  42. // C3dPagePlane Destructor
  43. C3dPagePlane::~C3dPagePlane()
  44. {
  45. }
  46. void C3dPagePlane::DoDataExchange(CDataExchange* pDX)
  47. {
  48. CPropertyPage::DoDataExchange(pDX);
  49. //{{AFX_DATA_MAP(C3dPagePlane)
  50. DDX_Text(pDX, IDC_DEPTH, m_fDepth);
  51. DDX_Text(pDX, IDC_WIDTH, m_fWidth);
  52. DDX_Text(pDX, IDC_NAME, m_szName);
  53. DDV_MaxChars(pDX, m_szName, 40);
  54. //}}AFX_DATA_MAP
  55. }
  56. BEGIN_MESSAGE_MAP(C3dPagePlane, CPropertyPage)
  57. //{{AFX_MSG_MAP(C3dPagePlane)
  58. ON_EN_CHANGE(IDC_DEPTH, OnChangeDepth)
  59. ON_EN_CHANGE(IDC_WIDTH, OnChangeWidth)
  60. //}}AFX_MSG_MAP
  61. END_MESSAGE_MAP()
  62. /////////////////////////////////////////////////////////////////////////////
  63. // C3dPagePlane message handlers
  64. BOOL C3dPagePlane::OnInitDialog() 
  65. {
  66. // Set our local values to the Objects' values
  67. m_szName = m_pObject->m_szName;
  68. m_fDepth = m_pObject->m_fDepth;
  69. m_fWidth = m_pObject->m_fWidth;
  70. CPropertyPage::OnInitDialog();  // let the base class do the default work
  71. return TRUE;  // return TRUE unless you set the focus to a control
  72.               // EXCEPTION: OCX Property Pages should return FALSE
  73. }
  74. void C3dPagePlane::OnOK() 
  75. {
  76. // Dialog box is being initialized (FALSE)
  77. // or data is being retrieved (TRUE).
  78. UpdateData(TRUE);
  79. // Set the Objects Origin..
  80. m_pObject->m_szName = m_szName; 
  81. m_pObject->m_fDepth = m_fDepth;
  82. m_pObject->m_fWidth = m_fWidth;
  83. // Force the object to rebuild its' display list
  84. m_pObject->m_bBuildLists = TRUE;
  85. // Rebuild our objects vertices?
  86. if(m_bInitVertices)
  87. m_pObject->InitVertices();
  88. CPropertyPage::OnOK();
  89. }
  90. void C3dPagePlane::OnChangeDepth() 
  91. {
  92. // User has modified the planes depth, so set our vertice
  93. // initialization flag
  94. m_bInitVertices = TRUE;
  95. }
  96. void C3dPagePlane::OnChangeWidth() 
  97. {
  98. // User has modified the planes width depth, so set our vertice
  99. // initialization flag
  100. m_bInitVertices = TRUE;
  101. }