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

其他游戏

开发平台:

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. #ifndef INC_HK_MAX_SCENE_EXPORT_UTILITY_INTERFACE__H
  9. #define INC_HK_MAX_SCENE_EXPORT_UTILITY_INTERFACE__H
  10. #include <iFnPub.h>
  11. // Class ID
  12. #define HK_SCENE_EXPORT_UTILITY_CLASS_ID Class_ID(0x16052618, 0x2e0770f6)
  13. /*
  14. ** FUNCTION PUBLISHING
  15. */
  16. #define HK_SCENE_EXPORT_UTILITY_FPINTERFACE_ID Interface_ID(0x47713dcf, 0x9125fade)
  17. enum
  18. {
  19. FPI_ExportScene,
  20. FPI_SetUseOptionsFile,
  21. FPI_GetUseOptionsFile,
  22. FPI_SetOptionsFile,
  23. FPI_GetOptionsFile,
  24. FPI_SetExportVisibleOnly,
  25. FPI_GetExportVisibleOnly,
  26. FPI_SetExportSelectedOnly,
  27. FPI_GetExportSelectedOnly,
  28. FPI_SetExportMeshes,
  29. FPI_GetExportMeshes,
  30. FPI_SetExportMaterials,
  31. FPI_GetExportMaterials,
  32. FPI_SetExportAttributes,
  33. FPI_GetExportAttributes,
  34. FPI_SetExportAnnotations,
  35. FPI_GetExportAnnotations,
  36. FPI_SetExportLights,
  37. FPI_GetExportLights,
  38. FPI_SetExportCameras,
  39. FPI_GetExportCameras,
  40. FPI_GetAddDefaultCamera,
  41. FPI_SetAddDefaultCamera,
  42. FPI_GetUseOldPhysics,
  43. FPI_SetUseOldPhysics,
  44. FPI_GetAnimatedDataExport,
  45. FPI_SetAnimatedDataExport,
  46. FPI_GetAnimationStart,
  47. FPI_SetAnimationStart,
  48. FPI_GetAnimationEnd,
  49. FPI_SetAnimationEnd,
  50. FPI_GetVersionString,
  51. FPI_GetVersionNumber,
  52. FPI_GetEnvironmentVariables,
  53. FPI_SetEnvironmentVariables,
  54. FPI_GetDoNotSplitVertices,
  55. FPI_SetDoNotSplitVertices,
  56. FPI_ImportScene,
  57. FPI_WaitForFilterLoad
  58. };
  59. enum
  60. {
  61. FPI_ENUM_AnimatedDataExport
  62. };
  63. enum
  64. {
  65. ADE_CURRENT_FRAME,
  66. ADE_CURRENT_RANGE,
  67. ADE_SPECIFIC_RANGE
  68. };
  69. /*
  70. ** C++ Interface to the Havok Exporter Utility.
  71. **
  72. ** Exposed to MAXScript as hctSceneExportUtility
  73. **
  74. ** The methods here correspond to the methods and properties (get/set) exposed to MaxScript.
  75. **
  76. ** Check the Havok Content Tools > Integration section for details on how to use the C++/MaxScript interfaces to the 3ds max tools.
  77. **
  78. */
  79. class hctSceneExportUtilityFPInterface : public FPStaticInterface
  80. {
  81. public:
  82. // hctSceneExportUtility.exportScene batchMode  -> exports the scene. If batchMode is true, no UI is shown.
  83. virtual BOOL iExportScene ( BOOL batchMode ) = 0;
  84. // hctSceneExportUtility.importScene, given a HKX file to load
  85. virtual BOOL iImportScene ( TCHAR* pathToHKX ) = 0;
  86. // cross exporter sync point to wait on the thread that is caching the filters in the background
  87. virtual BOOL iWaitForFilterLoad() = 0;
  88. /*
  89. ** UI Fields
  90. ** 
  91. ** Parameter blocks in utilities are not automatically exposed to maxscript, so we need to expose them using FPI
  92. **
  93. ** Please check the documentation of the 3ds max tools for details on the meaning of each field.
  94. */
  95. virtual void iSetExportVisibleOnly( BOOL exportHidden ) = 0;
  96. virtual BOOL iGetExportVisibleOnly() = 0;
  97. virtual void iSetExportSelectedOnly( BOOL selectedOnly ) = 0;
  98. virtual BOOL iGetExportSelectedOnly() = 0;
  99. virtual void iSetExportMeshes( BOOL exportMeshes ) = 0;
  100. virtual BOOL iGetExportMeshes() = 0;
  101. virtual void iSetExportMaterials( BOOL exportMaterials ) = 0;
  102. virtual BOOL iGetExportMaterials() = 0;
  103. virtual void iSetExportAttributes( BOOL exportAttributes ) = 0;
  104. virtual BOOL iGetExportAttributes() = 0;
  105. virtual void iSetExportAnnotations( BOOL exportAnnotations ) = 0;
  106. virtual BOOL iGetExportAnnotations() = 0;
  107. virtual void iSetExportLights( BOOL exportLights ) = 0;
  108. virtual BOOL iGetExportLights() = 0;
  109. virtual void iSetExportCameras( BOOL exportCameras ) = 0;
  110. virtual BOOL iGetExportCameras() = 0;
  111. virtual void iSetAddDefaultCamera (BOOL addDefaultCamera) = 0;
  112. virtual BOOL iGetAddDefaultCamera() = 0;
  113. virtual void iSetAnimatedDataExport (int animatedDataExport) = 0;
  114. virtual int iGetAnimatedDataExport () = 0;
  115. virtual void iSetAnimationStart (TimeValue startTick) =0;
  116. virtual TimeValue iGetAnimationStart () = 0;
  117. virtual void iSetAnimationEnd (TimeValue endTick) =0;
  118. virtual TimeValue iGetAnimationEnd () = 0;
  119. virtual void iSetUseOptionsFile( BOOL useOptionsFile ) = 0;
  120. virtual BOOL iGetUseOptionsFile() = 0;
  121. virtual void iSetOptionsFile( TCHAR* optionsFile ) = 0;
  122. virtual TCHAR* iGetOptionsFile() = 0;
  123. virtual void iSetEnvironmentVariables( TCHAR* environmentVars ) = 0;
  124. virtual TCHAR* iGetEnvironmentVariables() = 0;
  125. virtual void iSetDoNotSplitVertices (BOOL doNotSplitVertices) = 0;
  126. virtual BOOL iGetDoNotSplitVertices () = 0;
  127. // Returns a string representing the version of the exporter (for example "4.0.0.3 Beta")
  128. virtual const TCHAR* iGetVersionString () = 0;
  129. // Returns an integer representation of the version (for example 0x04000003)
  130. virtual int iGetVersionNumber () = 0;
  131. };
  132. /*
  133. ** ACTION PUBLISHING
  134. */
  135. #define HK_SCENE_EXPORT_UTILITY_ACTIONS_ID Interface_ID(0x5f35035, 0x69ba187a)
  136. enum
  137. {
  138. ACT_Export,
  139. ACT_Export_Enabled,
  140. };
  141. // The Action interface exposes buttons in the utility. In this case, the only button is "Export".
  142. class hctSceneExportUtilityActions : public FPStaticInterface
  143. {
  144. public:
  145. // Press the Export button
  146. virtual FPStatus doExport() = 0;
  147. // Whether the button should be enabled or not
  148. virtual BOOL isExportEnabled() = 0;
  149. };
  150. #endif //INC_HK_MAX_SCENE_EXPORT_UTILITY_INTERFACE__H
  151. /*
  152. * Havok SDK - NO SOURCE PC DOWNLOAD, BUILD(#20090216)
  153. * Confidential Information of Havok.  (C) Copyright 1999-2009
  154. * Telekinesys Research Limited t/a Havok. All Rights Reserved. The Havok
  155. * Logo, and the Havok buzzsaw logo are trademarks of Havok.  Title, ownership
  156. * rights, and intellectual property rights in the Havok software remain in
  157. * Havok and/or its suppliers.
  158. * Use of this software for evaluation purposes is subject to and indicates
  159. * acceptance of the End User licence Agreement for this product. A copy of
  160. * the license is included with this software and is also available at www.havok.com/tryhavok.
  161. */