hkpTypedBroadPhaseHandle.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. void hkpTypedBroadPhaseHandle::setOwner(void* o)
  9. {
  10. hkInt32 offset = hkGetByteOffsetInt(this, o);
  11. // +127 is 'offset invalid' flag.
  12. HK_ASSERT2( 0xfe456f34, offset > -128 && offset < 127, "Can't store offset to typed broadphase handle owner (more than 128 bytes difference).");
  13. m_ownerOffset = static_cast<hkInt8>( offset );
  14. }
  15. hkpTypedBroadPhaseHandle::hkpTypedBroadPhaseHandle( int type )
  16. {
  17. m_type = static_cast<hkInt8>(type);
  18. m_collisionFilterInfo = 0;
  19. m_objectQualityType = HK_COLLIDABLE_QUALITY_INVALID;
  20. m_ownerOffset = OFFSET_INVALID;
  21. }
  22. hkpTypedBroadPhaseHandle::hkpTypedBroadPhaseHandle( void* owner, int type )
  23. {
  24. m_type = static_cast<hkInt8>(type);
  25. m_collisionFilterInfo = 0;
  26. m_objectQualityType = HK_COLLIDABLE_QUALITY_INVALID;
  27. setOwner(owner);
  28. }
  29. int hkpTypedBroadPhaseHandle::getType() const
  30. return m_type; 
  31. }
  32. void hkpTypedBroadPhaseHandle::setType( int type )
  33. {
  34. m_type = static_cast<hkInt8>(type);
  35. }
  36. void* hkpTypedBroadPhaseHandle::getOwner() const
  37. {
  38. HK_ASSERT2( 0xfe456f35, m_ownerOffset != OFFSET_INVALID, "Owner offset for typed broadphase handle incorrect. Did you call setOwner()?" );
  39. return const_cast<char*>( reinterpret_cast<const char*>(this) + m_ownerOffset );
  40. }
  41. hkUint32 hkpTypedBroadPhaseHandle::getCollisionFilterInfo() const
  42. {
  43. return m_collisionFilterInfo;
  44. }
  45. void hkpTypedBroadPhaseHandle::setCollisionFilterInfo( hkUint32 info )
  46. {
  47. m_collisionFilterInfo = info;
  48. }
  49. /*
  50. * Havok SDK - NO SOURCE PC DOWNLOAD, BUILD(#20090216)
  51. * Confidential Information of Havok.  (C) Copyright 1999-2009
  52. * Telekinesys Research Limited t/a Havok. All Rights Reserved. The Havok
  53. * Logo, and the Havok buzzsaw logo are trademarks of Havok.  Title, ownership
  54. * rights, and intellectual property rights in the Havok software remain in
  55. * Havok and/or its suppliers.
  56. * Use of this software for evaluation purposes is subject to and indicates
  57. * acceptance of the End User licence Agreement for this product. A copy of
  58. * the license is included with this software and is also available at www.havok.com/tryhavok.
  59. */