hctConvertToPhantomActionFilter_Dialog.cpp
上传用户:yisoukefu
上传日期:2020-08-09
资源大小:39506k
文件大小:3k
源码类别:

其他游戏

开发平台:

Visual C++

  1. /* 
  2.  * 
  3.  * Confidential Information of Telekinesys Research Limited (t/a Havok). Not for disclosure or distribution without Havok's
  4.  * prior written consent. This software contains code, techniques and know-how which is confidential and proprietary to Havok.
  5.  * Level 2 and Level 3 source code contains trade secrets of Havok. Havok Software (C) Copyright 1999-2009 Telekinesys Research Limited t/a Havok. All Rights Reserved. Use of this software is subject to the terms of an end user license agreement.
  6.  * 
  7.  */
  8. #include <ContentTools/Common/Filters/FilterTutorial/hctFilterTutorial.h>
  9. #include <ContentTools/Common/Filters/FilterTutorial/ConvertToPhantomAction/hctConvertToPhantomActionFilter.h>
  10. extern HINSTANCE hInstance;
  11. INT_PTR CALLBACK _convertToPhantomActionDialogProc(HWND hWnd, UINT message, WPARAM wParam, LPARAM lParam) 
  12. {
  13. // We store a pointer to the filter associated with this dialog using Get/SetWindowLongPtr() 
  14. hctConvertToPhantomActionFilter* filter = reinterpret_cast<hctConvertToPhantomActionFilter*> ( (hkUlong) GetWindowLongPtr(hWnd,GWLP_USERDATA)) ; 
  15. switch(message) 
  16. {
  17. case WM_INITDIALOG:
  18. {
  19. filter = (hctConvertToPhantomActionFilter*)lParam;
  20. SetWindowLongPtr(hWnd, GWLP_USERDATA, (LONG)lParam); // so that it can be retrieved later
  21. CheckDlgButton(hWnd, IDC_CB_RemoveMeshes, filter->m_options.m_removeMeshes);
  22. // Initialize Tool Tips
  23. {
  24. CreateToolTip(IDC_CB_RemoveMeshes, hWnd, hInstance, "If enabled, this option will remove the association of a rigid body node to its original mesh whenever it is converted to a phantom (so the phantom won't be displayed by the preview scene filter).");
  25. }
  26. return TRUE; // did handle it
  27. }
  28. }
  29. return FALSE; //didn't handle it
  30. }
  31. void hctConvertToPhantomActionFilter::updateOptions()
  32. {
  33. // Ensure the options we store match the options shown in the UI
  34. if (m_optionsDialog)
  35. {
  36. m_options.m_removeMeshes = IsDlgButtonChecked(m_optionsDialog, IDC_CB_RemoveMeshes) == TRUE;
  37. }
  38. }
  39. HWND hctConvertToPhantomActionFilter::showOptions(HWND owner)
  40. {
  41. if (m_optionsDialog)
  42. {
  43. hideOptions();
  44. }
  45. m_optionsDialog = CreateDialogParam(hInstance, MAKEINTRESOURCE(IDD_CONVERT_TO_PHANTOM_ACTION_DIALOG),
  46. owner, _convertToPhantomActionDialogProc, (LPARAM) this );
  47. return m_optionsDialog;
  48. }
  49. void hctConvertToPhantomActionFilter::hideOptions()
  50. {
  51. // Update any changes before we close UI
  52. updateOptions();
  53. if (m_optionsDialog)
  54. {
  55. DestroyWindow(m_optionsDialog);
  56. }
  57. m_optionsDialog = NULL;
  58. }
  59. /*
  60. * Havok SDK - NO SOURCE PC DOWNLOAD, BUILD(#20090216)
  61. * Confidential Information of Havok.  (C) Copyright 1999-2009
  62. * Telekinesys Research Limited t/a Havok. All Rights Reserved. The Havok
  63. * Logo, and the Havok buzzsaw logo are trademarks of Havok.  Title, ownership
  64. * rights, and intellectual property rights in the Havok software remain in
  65. * Havok and/or its suppliers.
  66. * Use of this software for evaluation purposes is subject to and indicates
  67. * acceptance of the End User licence Agreement for this product. A copy of
  68. * the license is included with this software and is also available at www.havok.com/tryhavok.
  69. */