hkContactPoint.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. inline const hkVector4& hkContactPoint::getPosition() const
  9. return m_position; 
  10. }
  11. inline const hkVector4& hkContactPoint::getNormal() const
  12. return m_separatingNormal; 
  13. }
  14. inline hkVector4& hkContactPoint::getPosition()
  15. return m_position; 
  16. }
  17. inline void hkContactPoint::setPosition( const hkVector4& position )
  18. {
  19. m_position = position; 
  20. }
  21. inline const hkVector4& hkContactPoint::getSeparatingNormal() const
  22. return m_separatingNormal; 
  23. }
  24. inline hkVector4& hkContactPoint::getSeparatingNormal()
  25. return m_separatingNormal; 
  26. }
  27. inline void hkContactPoint::setSeparatingNormal( const hkVector4& normal, hkReal dist )
  28. {
  29. m_separatingNormal = normal;
  30. m_separatingNormal(3) = dist;
  31. }
  32. inline void hkContactPoint::setSeparatingNormal( const hkVector4& separatingNormal )
  33. {
  34. m_separatingNormal = separatingNormal;
  35. }
  36. inline hkReal hkContactPoint::getDistance() const
  37. {
  38. return m_separatingNormal(3); 
  39. }
  40. inline hkSimdReal hkContactPoint::getDistanceSimdReal() const
  41. {
  42. return m_separatingNormal.getSimdAt(3); 
  43. }
  44. inline void hkContactPoint::setDistance( hkReal d )
  45. m_separatingNormal(3) = d; 
  46. }
  47. inline void hkContactPoint::set( const hkVector4& position, const hkVector4& normal, hkReal dist )
  48. m_position = position; 
  49. m_separatingNormal = normal;
  50. m_separatingNormal(3) = dist; 
  51. }
  52. inline void hkContactPoint::setNormal( const hkVector4& normal )
  53. m_separatingNormal.setXYZ( normal );
  54. }
  55. inline void hkContactPoint::setFlipped( const hkContactPoint& point )
  56. {
  57. hkVector4 dist; dist.setBroadcast( point.m_separatingNormal, 3 ); 
  58. m_position.setAddMul4( point.m_position, point.m_separatingNormal, dist );
  59. m_separatingNormal.setNeg3( point.m_separatingNormal );
  60. }
  61. inline void hkContactPoint::flip()
  62. {
  63. setFlipped(*this);
  64. }
  65. /*
  66. * Havok SDK - NO SOURCE PC DOWNLOAD, BUILD(#20090216)
  67. * Confidential Information of Havok.  (C) Copyright 1999-2009
  68. * Telekinesys Research Limited t/a Havok. All Rights Reserved. The Havok
  69. * Logo, and the Havok buzzsaw logo are trademarks of Havok.  Title, ownership
  70. * rights, and intellectual property rights in the Havok software remain in
  71. * Havok and/or its suppliers.
  72. * Use of this software for evaluation purposes is subject to and indicates
  73. * acceptance of the End User licence Agreement for this product. A copy of
  74. * the license is included with this software and is also available at www.havok.com/tryhavok.
  75. */