hkpCdBody.inl
上传用户: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. const hkTransform& hkpCdBody::getTransform() const
  9. {
  10. HK_ASSERT2(0x733aae9d, m_motion, "You cannot call getTransform() on a hkpCdBody with null m_motion (eg, a hkpAabbPhantom)");
  11. return *static_cast<const hkTransform*>(m_motion);
  12. }
  13. const hkMotionState* hkpCdBody::getMotionState() const
  14. {
  15. return static_cast<const hkMotionState*>(m_motion);
  16. }
  17. void hkpCdBody::setMotionState( const hkMotionState* state )
  18. {
  19. m_motion = state;
  20. }
  21. void hkpCdBody::setTransform( const hkTransform* t )
  22. {
  23. m_motion = t;
  24. }
  25. const hkpShape* hkpCdBody::getShape() const
  26. {
  27. return m_shape;
  28. }
  29. const hkpCollidable* hkpCdBody::getRootCollidable() const
  30. {
  31. const hkpCdBody* body = this;
  32. while( body->m_parent )
  33. {
  34. body = body->m_parent;
  35. }
  36. return reinterpret_cast<const hkpCollidable*>(body);
  37. }
  38. const hkpCdBody* hkpCdBody::getParent() const
  39. {
  40. return m_parent;
  41. }
  42. hkpCdBody::hkpCdBody( const hkpShape* shape, const hkMotionState* motionState )
  43. {
  44. m_shape = shape;
  45. m_motion = motionState;
  46. m_parent = HK_NULL;
  47. m_shapeKey = HK_INVALID_SHAPE_KEY;
  48. }
  49. hkpCdBody::hkpCdBody( const hkpShape* shape, const hkTransform* t )
  50. {
  51. m_shape = shape;
  52. m_motion = t;
  53. m_parent = HK_NULL;
  54. m_shapeKey = HK_INVALID_SHAPE_KEY;
  55. }
  56. hkpCdBody::hkpCdBody( const hkpCdBody* parent )
  57. {
  58. m_parent = parent;
  59. m_motion = parent->m_motion;
  60. }
  61. hkpCdBody::hkpCdBody( const hkpCdBody* parent, const hkMotionState* ms )
  62. {
  63. m_parent = parent;
  64. m_motion = ms;
  65. }
  66. hkpCdBody::hkpCdBody( const hkpCdBody* parent, const hkTransform* t )
  67. {
  68. m_parent       = parent;
  69. m_motion = t;
  70. }
  71. hkpShapeKey hkpCdBody::getShapeKey() const
  72. {
  73. return m_shapeKey;
  74. }
  75. hkpShapeKey hkpCdBody::getTopLevelShapeKey() const
  76. {
  77. const hkpCdBody* root = this;
  78. const hkpCdBody* topChild = root;
  79. while ( root->m_parent ){ topChild = root; root = root->m_parent; }
  80. return topChild->m_shapeKey;
  81. }
  82. void hkpCdBody::setShape( const hkpShape* shape, hkpShapeKey key )
  83. {
  84. m_shape = shape;
  85. m_shapeKey = key;
  86. }
  87. /*
  88. * Havok SDK - NO SOURCE PC DOWNLOAD, BUILD(#20090216)
  89. * Confidential Information of Havok.  (C) Copyright 1999-2009
  90. * Telekinesys Research Limited t/a Havok. All Rights Reserved. The Havok
  91. * Logo, and the Havok buzzsaw logo are trademarks of Havok.  Title, ownership
  92. * rights, and intellectual property rights in the Havok software remain in
  93. * Havok and/or its suppliers.
  94. * Use of this software for evaluation purposes is subject to and indicates
  95. * acceptance of the End User licence Agreement for this product. A copy of
  96. * the license is included with this software and is also available at www.havok.com/tryhavok.
  97. */