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

OpenGL

开发平台:

Visual C++

  1. /////////////////////////////////////////////////////////////////////////////
  2. // 3dPageLathe.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. // C3dPageLathe
  28. IMPLEMENT_DYNCREATE(C3dPageLathe, CPropertyPage)
  29. /////////////////////////////////////////////////////////////////////////////
  30. // C3dPageLathe dialog construction
  31. C3dPageLathe::C3dPageLathe()
  32. : CPropertyPage(C3dPageLathe::IDD)
  33. {
  34. //{{AFX_DATA_INIT(C3dPageLathe)
  35. m_fSweepAngle = 0.0f;
  36. m_iSegments = 0;
  37. m_iSmooth = -1;
  38. m_fMaxAngle = 0.0f;
  39. m_szName = _T("");
  40. //}}AFX_DATA_INIT
  41. }
  42. /////////////////////////////////////////////////////////////////////////////
  43. // C3dPageLathe Destructor
  44. C3dPageLathe::~C3dPageLathe()
  45. {
  46. }
  47. void C3dPageLathe::DoDataExchange(CDataExchange* pDX)
  48. {
  49. CPropertyPage::DoDataExchange(pDX);
  50. //{{AFX_DATA_MAP(C3dPageLathe)
  51. DDX_Text(pDX, IDC_SWEEP_ANGLE, m_fSweepAngle);
  52. DDX_Text(pDX, IDC_SEGMENTS, m_iSegments);
  53. DDX_Radio(pDX, IDC_RADIO_SMOOTH, m_iSmooth);
  54. DDX_Text(pDX, IDC_MAX_ANGLE, m_fMaxAngle);
  55. DDX_Text(pDX, IDC_NAME, m_szName);
  56. DDV_MaxChars(pDX, m_szName, 40);
  57. //}}AFX_DATA_MAP
  58. }
  59. BEGIN_MESSAGE_MAP(C3dPageLathe, CPropertyPage)
  60. //{{AFX_MSG_MAP(C3dPageLathe)
  61. ON_BN_CLICKED(IDC_RADIO_SMOOTH, OnRadioSmooth)
  62. //}}AFX_MSG_MAP
  63. END_MESSAGE_MAP()
  64. /////////////////////////////////////////////////////////////////////////////
  65. // C3dPageLathe message handlers
  66. BOOL C3dPageLathe::OnInitDialog() 
  67. {
  68. // Set our local values to the Objects' values
  69. m_szName = m_pObject->m_szName;
  70. m_fSweepAngle = m_pObject->m_fSweepAngle;
  71. m_iSegments   = m_pObject->m_iSegments;
  72. m_fMaxAngle   = m_pObject->m_fMaxAngle;
  73. if(m_pObject->m_bSmooth)
  74. m_iSmooth = 0;
  75. else
  76. m_iSmooth = 1;
  77. CPropertyPage::OnInitDialog();  // let the base class do the default work
  78. return TRUE;  // return TRUE unless you set the focus to a control
  79.               // EXCEPTION: OCX Property Pages should return FALSE
  80. }
  81. void C3dPageLathe::OnOK() 
  82. {
  83. // Dialog box is being initialized (FALSE)
  84. // or data is being retrieved (TRUE).
  85. UpdateData(TRUE);
  86. // Set our Objects' values to the local values
  87. m_pObject->m_szName = m_szName; 
  88. m_pObject->m_fSweepAngle = m_fSweepAngle;
  89. m_pObject->m_iSegments   = m_iSegments;
  90. m_pObject->m_fMaxAngle = m_fMaxAngle;
  91. // Force the object to rebuild its' display list
  92. m_pObject->m_bBuildLists = TRUE;
  93. CPropertyPage::OnOK();
  94. }
  95. void C3dPageLathe::OnRadioSmooth() 
  96. {
  97. // Toggle the radio selection
  98. if(m_pObject->m_bSmooth) {
  99. m_pObject->m_bSmooth = FALSE;
  100. m_iSmooth = 1;
  101. }
  102. else {
  103. m_pObject->m_bSmooth = TRUE;
  104. m_iSmooth = 0;
  105. }
  106. // Initialize the Dialog Data (forces DoDataExchange)
  107. UpdateData(FALSE);
  108. }