hkpRigidMotionUtil.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_RIGID_MOTION_UTIL_H
  9. #define HK_DYNAMICS2_RIGID_MOTION_UTIL_H
  10. class hkpEntity;
  11. class hkStepInfo;
  12. class hkpVelocityAccumulator;
  13. extern "C"
  14. {
  15. /// Single step without gravity or damping, used by toi backstepping
  16. ///
  17. /// This function is capable of handling batches:
  18. /// Using the motions parameter one usually passes in a pointer to an array of hkMotions and leaves the motionOffset parameter set to 0.
  19. /// Apart from that it is also allowed to pass in a pointer to an array of any other class, e.g. hkpEntity. In this case you have to manually
  20. /// supply the motion's offset within this different class (e.g. motionOffset = HK_OFFSET_OF(hkpEntity, m_motion) )
  21. void HK_CALL hkRigidMotionUtilStep( const hkStepInfo& info, hkpMotion*const* motions, int numMotions, int motionOffset );
  22. /// Single step with gravity + damping
  23. ///
  24. /// This function is capable of handling batches: see hkRigidMotionUtilStep() for details.
  25. /// Returns the number of frames since all motions have not left the reference deactivation sphere
  26. int HK_CALL hkRigidMotionUtilApplyForcesAndStep( const struct hkpSolverInfo& solverInfo, const hkStepInfo& info, const hkVector4& deltaVel, hkpMotion*const* motions, int numMotions, int motionOffset );
  27. /// Apply damping forces and build accumulator (gravity will be applied to the accumulators later)
  28. ///
  29. /// This function is capable of handling batches: see hkRigidMotionUtilStep() for details.
  30. hkpVelocityAccumulator* HK_CALL hkRigidMotionUtilApplyForcesAndBuildAccumulators(const hkStepInfo& info,
  31. hkpMotion*const* motions,
  32. int numMotions,
  33. int motionOffset,
  34. hkpVelocityAccumulator* accumulatorsOut);
  35. /// Apply accumulator onto motion
  36. ///
  37. /// This function is capable of handling batches: see hkRigidMotionUtilStep() for details.
  38. /// Returns the number of frames since all motions have not left the reference deactivation sphere
  39. ///
  40. /// If processDeactivation == false, then function returns -1.
  41. int HK_CALL hkRigidMotionUtilApplyAccumulators( const struct hkpSolverInfo& solverInfo,
  42. const hkStepInfo& info,
  43. const hkpVelocityAccumulator* accumulators,
  44.       hkpMotion*const* motions,
  45.   int numMotions,
  46.   int motionOffset );
  47. /// Recheck the velocities of the object against the reference velocities.
  48. ///
  49. /// This is done to make sure that no island gets wrongfully deactivated.
  50. /// E.g. when a single object suddenly changed its velocity (e.g. hit by a raycast gun).
  51. bool HK_CALL hkRigidMotionUtilCanDeactivateFinal( const hkStepInfo& info, hkpMotion*const* motions, int numMotions, int motionOffset );
  52. }
  53. #endif // HK_DYNAMICS2_RIGID_MOTION_UTIL_H
  54. /*
  55. * Havok SDK - NO SOURCE PC DOWNLOAD, BUILD(#20090216)
  56. * Confidential Information of Havok.  (C) Copyright 1999-2009
  57. * Telekinesys Research Limited t/a Havok. All Rights Reserved. The Havok
  58. * Logo, and the Havok buzzsaw logo are trademarks of Havok.  Title, ownership
  59. * rights, and intellectual property rights in the Havok software remain in
  60. * Havok and/or its suppliers.
  61. * Use of this software for evaluation purposes is subject to and indicates
  62. * acceptance of the End User licence Agreement for this product. A copy of
  63. * the license is included with this software and is also available at www.havok.com/tryhavok.
  64. */