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

其他游戏

开发平台:

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 HK_COLLIDE2_SHAPE_TYPES_H
  9. #define HK_COLLIDE2_SHAPE_TYPES_H
  10. /// All shape types. The dispatcher has only to implement at least the types that can be used as secondary types
  11. enum hkpShapeType
  12. {
  13. //
  14. // Shape types from HK_SHAPE_INVALID to HK_SHAPE_MAX_ID_SPU are supported on the SPU.
  15. //
  16. HK_SHAPE_INVALID = 0,
  17. // 
  18. // The abstract base shapes
  19. //
  20. //
  21. // Special convex shapes, which get their private agents for better performance on
  22. // PPU only.  All use predictive GSK agent on SPU.
  23. //
  24. /// hkpSphereShape type.
  25. HK_SHAPE_SPHERE,
  26. /// The first real shape.
  27. HK_FIRST_SHAPE_TYPE = HK_SHAPE_SPHERE,
  28. /// hkpCylinderShape type.
  29. HK_SHAPE_CYLINDER, 
  30. /// hkpTriangleShape type.
  31. HK_SHAPE_TRIANGLE,
  32. /// hkpBoxShape type.
  33. HK_SHAPE_BOX,
  34. /// hkpCapsuleShape type.
  35. HK_SHAPE_CAPSULE,
  36. /// hkpConvexVerticesShape type.
  37. HK_SHAPE_CONVEX_VERTICES,
  38. //
  39. // Special shape collections that are solved on the SPU.
  40. //
  41. /// All shapes which inherit from hkpShapeCollection have this as an alternate type.
  42. HK_SHAPE_COLLECTION,
  43. /// All shapes which inherit from hkpBvTreeShape have this as an alternate type.
  44. HK_SHAPE_BV_TREE,
  45. /// hkpListShape type.
  46. HK_SHAPE_LIST,
  47. /// hkpMoppBvTreeShape type.
  48. HK_SHAPE_MOPP,
  49. /// hkpConvexTranslateShape type.
  50. HK_SHAPE_CONVEX_TRANSLATE,
  51. /// hkpConvexTransformShape type.
  52. HK_SHAPE_CONVEX_TRANSFORM,
  53. /// hkpSampledHeightFieldShape type.
  54. HK_SHAPE_SAMPLED_HEIGHT_FIELD,
  55. /// hkpExtendedMeshShape type.
  56. HK_SHAPE_EXTENDED_MESH,
  57. /// hkpTransformShape type.
  58. HK_SHAPE_TRANSFORM,
  59. //
  60. // Shape types from HK_SHAPE_MAX_ID_SPU to HK_SHAPE_MAX_ID are NOT supported on the SPU.
  61. //
  62. // Last SPU support shape type
  63. HK_SHAPE_MAX_ID_SPU = HK_SHAPE_TRANSFORM + 1,
  64. /// All shapes which inherit from hkpConvexShape have this as an alternate type.
  65. HK_SHAPE_CONVEX,
  66. /// DEPRECATED - hkpPackedConvexVerticesShape type. 
  67. HK_SHAPE_PACKED_CONVEX_VERTICES,
  68. /// DEPRECATED - hkpMoppEmbeddedShape type.
  69. HK_SHAPE_MOPP_EMBEDDED,
  70. /// DEPRECATED - hkpConvexPieceShape type.
  71. HK_SHAPE_CONVEX_PIECE,
  72. //
  73. // hkpShapeCollection implementations
  74. //
  75. /// hkpMultiSphereShape type.
  76. HK_SHAPE_MULTI_SPHERE,
  77. /// hkpConvexListShape, a List of convex pieces which are treated as a single convex object if possible.
  78. HK_SHAPE_CONVEX_LIST,
  79. /// A shape collection which only returns triangles as child shapes, e.g. hkpMeshShape.
  80. HK_SHAPE_TRIANGLE_COLLECTION,
  81. // 
  82. // Special shapes
  83. // 
  84. /// hkpMultiRayShape type.
  85. HK_SHAPE_MULTI_RAY,
  86. /// hkpHeightFieldShape type.
  87. HK_SHAPE_HEIGHT_FIELD,
  88. /// hkpSphereRepShape type.
  89. HK_SHAPE_SPHERE_REP, 
  90. /// hkpBvShape type.
  91. HK_SHAPE_BV,
  92. /// hkpPlaneShape type.
  93. HK_SHAPE_PLANE,
  94. //
  95. // Single shapes which are processed by unary agents.
  96. //
  97. /// hkpPhantomCallbackShape type.
  98. HK_SHAPE_PHANTOM_CALLBACK,
  99. //
  100. // user shapes
  101. //
  102. HK_SHAPE_USER0,
  103. HK_SHAPE_USER1,
  104. HK_SHAPE_USER2,
  105. /// The end of the shape type list.
  106. HK_SHAPE_MAX_ID,
  107. /// All shape flag, used by the hkpCollisionDispatcher.
  108. HK_SHAPE_ALL = -1
  109. };
  110. /// A utility function to return a useful name for a given shape type
  111. const char* HK_CALL hkGetShapeTypeName( hkpShapeType type );
  112. class hkpCollisionDispatcher;
  113. /// Register all havok specific shapeTypes
  114. /// This needs to be called at setup time to tell the dispatcher which
  115. /// shapes inherit from other shapes
  116. void HK_CALL hkRegisterAlternateShapeTypes( hkpCollisionDispatcher* dis );
  117. #endif // HK_COLLIDE2_SHAPE_TYPES_H
  118. /*
  119. * Havok SDK - NO SOURCE PC DOWNLOAD, BUILD(#20090216)
  120. * Confidential Information of Havok.  (C) Copyright 1999-2009
  121. * Telekinesys Research Limited t/a Havok. All Rights Reserved. The Havok
  122. * Logo, and the Havok buzzsaw logo are trademarks of Havok.  Title, ownership
  123. * rights, and intellectual property rights in the Havok software remain in
  124. * Havok and/or its suppliers.
  125. * Use of this software for evaluation purposes is subject to and indicates
  126. * acceptance of the End User licence Agreement for this product. A copy of
  127. * the license is included with this software and is also available at www.havok.com/tryhavok.
  128. */