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

OpenGL

开发平台:

Visual C++

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