hkpConstraintListener.h
上传用户: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. #ifndef HK_DYNAMICS2_CONSTRAINT_LISTENER_H
  9. #define HK_DYNAMICS2_CONSTRAINT_LISTENER_H
  10. class hkpConstraintInstance;
  11. class hkpWorld;
  12. struct hkpConstraintBrokenEvent
  13. {
  14. enum EventSource
  15. {
  16. EVENT_SOURCE_UNKNOWN,
  17. EVENT_SOURCE_BREAKABLE_CONSTRAINT,
  18. EVENT_SOURCE_FLEXIBLE_JOINT,
  19. };
  20. hkpConstraintBrokenEvent(hkpWorld* world, hkpConstraintInstance* i, EventSource es)
  21. : m_world(world)
  22. , m_constraintInstance(i)
  23. , m_eventSource(es)
  24. , m_eventSourceDetails(0)
  25. , m_constraintBroken(true)
  26. , m_actualImpulse(0.0f)
  27. , m_impulseLimit(0.0f )
  28. {
  29. }
  30. hkpWorld* m_world;
  31. hkpConstraintInstance* m_constraintInstance;
  32. hkEnum<EventSource,hkUint8> m_eventSource; ///
  33. hkUint8 m_eventSourceDetails; ///
  34. hkBool m_constraintBroken; ///
  35. hkReal m_actualImpulse; ///
  36. hkReal m_impulseLimit; ///
  37. };
  38. /// Any class that is interested in events from a constraint inherits from this class
  39. class hkpConstraintListener
  40. {
  41. public:
  42. virtual ~hkpConstraintListener() {}
  43. /// Called when a constraint is added to the world.
  44. virtual void constraintAddedCallback( hkpConstraintInstance* constraint ) {}
  45. /// Called when a constraint is removed from the world.
  46. virtual void constraintRemovedCallback( hkpConstraintInstance* constraint ) {}
  47. /// Called when a constraint is deleted, only called to listeners which are directly attached to hkpConstraintInstance
  48. virtual void constraintDeletedCallback( hkpConstraintInstance* constraint ) {}
  49. /// Called when a constraint gets broken or repaired (e.g. hkpBreakableConstraintData fires this event)
  50. virtual void constraintBreakingCallback( const hkpConstraintBrokenEvent& event ){}
  51. };
  52. #endif // HK_DYNAMICS2_CONSTRAINT_LISTENER_H
  53. /*
  54. * Havok SDK - NO SOURCE PC DOWNLOAD, BUILD(#20090216)
  55. * Confidential Information of Havok.  (C) Copyright 1999-2009
  56. * Telekinesys Research Limited t/a Havok. All Rights Reserved. The Havok
  57. * Logo, and the Havok buzzsaw logo are trademarks of Havok.  Title, ownership
  58. * rights, and intellectual property rights in the Havok software remain in
  59. * Havok and/or its suppliers.
  60. * Use of this software for evaluation purposes is subject to and indicates
  61. * acceptance of the End User licence Agreement for this product. A copy of
  62. * the license is included with this software and is also available at www.havok.com/tryhavok.
  63. */