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

其他游戏

开发平台:

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_DYNAMICS2_DYNAMICS_CONTACT_MGR_H
  9. #define HK_DYNAMICS2_DYNAMICS_CONTACT_MGR_H
  10. #include <Physics/Collide/Agent/ContactMgr/hkpContactMgr.h>
  11. class hkContactPoint;
  12. class hkpContactPointProperties;
  13. class hkVector4;
  14. ///An interface to access contact point information.
  15. class hkpDynamicsContactMgr: public hkpContactMgr
  16. {
  17. public:
  18. hkpDynamicsContactMgr( Type type ): hkpContactMgr( type ) {}
  19. /// Gets the properties attached to the contact point (if available)
  20. virtual hkpContactPointProperties* getContactPointProperties( hkContactPointId id ){ return HK_NULL;}
  21. /// Gets the dynamics contact point (if available)
  22. virtual hkContactPoint* getContactPoint( hkContactPointId id ){ return HK_NULL;}
  23. /// Gets the ids of all contact points in this collision
  24. virtual void getAllContactPointIds( hkArray<hkContactPointId>& contactPointIds ) const {}
  25. virtual Type getType() const = 0;
  26. /// Virtual function which is called just before a simple collision response is executed 
  27. /// in a TOI. The default implementation will forward this to the hkpSimpleContactConstraintData::collisionResponseBeginCallback.
  28. /// This is used for the mass changer and moving surface utility
  29. virtual void toiCollisionResponseBeginCallback( const hkContactPoint& cp, struct hkpSimpleConstraintInfoInitInput& inA, struct hkpBodyVelocity& velA, hkpSimpleConstraintInfoInitInput& inB, hkpBodyVelocity& velB){}
  30. /// Virtual function which is called just after a simple collision response is executed 
  31. /// The default implementation will forward this to the hkpSimpleContactConstraintData::collisionResponseEndCallback.
  32. /// This is used for the mass changer and moving surface utility
  33. virtual void toiCollisionResponseEndCallback( const hkContactPoint& cp, hkReal impulseApplied, struct hkpSimpleConstraintInfoInitInput& inA, struct hkpBodyVelocity& velA, hkpSimpleConstraintInfoInitInput& inB, hkpBodyVelocity& velB){}
  34. /// Return the constraint if there is one 
  35. virtual class hkpConstraintInstance* getConstraintInstance() { return HK_NULL; } 
  36. /// Apply custom toi-collision handling before localized solving; this method actually belongs to hkpDynamicsContactMgr interface.
  37. virtual void confirmToi( struct hkpToiEvent& event, hkReal rotateNormal, class hkArray<class hkpEntity*>& outToBeActivated ){}
  38. protected:
  39. class hkpWorld* m_world;
  40. };
  41. #endif // HK_DYNAMICS2_DYNAMICS_CONTACT_MGR_H
  42. /*
  43. * Havok SDK - NO SOURCE PC DOWNLOAD, BUILD(#20090216)
  44. * Confidential Information of Havok.  (C) Copyright 1999-2009
  45. * Telekinesys Research Limited t/a Havok. All Rights Reserved. The Havok
  46. * Logo, and the Havok buzzsaw logo are trademarks of Havok.  Title, ownership
  47. * rights, and intellectual property rights in the Havok software remain in
  48. * Havok and/or its suppliers.
  49. * Use of this software for evaluation purposes is subject to and indicates
  50. * acceptance of the End User licence Agreement for this product. A copy of
  51. * the license is included with this software and is also available at www.havok.com/tryhavok.
  52. */