hkpCollisionQualityInfo.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_COLLIDE2_COLLIDE_QUALITY_INFO_H
  9. #define HK_COLLIDE2_COLLIDE_QUALITY_INFO_H
  10. /// Hold information for fine tuning the collision detection system
  11. struct hkpCollisionQualityInfo
  12. {
  13. HK_DECLARE_NONVIRTUAL_CLASS_ALLOCATOR( HK_MEMORY_CLASS_COLLIDE, hkpCollisionQualityInfo );
  14. /// The distance until the created contact points will be kept (e.g. 5 cm),
  15. /// should be identical to hkpCollisionInput.m_collisionTolerance
  16. HK_ALIGN16(hkReal m_keepContact);
  17. /// the distance for creating 4 dimensional contacts of type point-face or edge-edge
  18. /// Typically this is a small negative number, but still bigger than the combined radii
  19. /// of the object
  20. hkReal m_create4dContact;
  21. /// the range for creating contacts for all other contact points (PP or PE)
  22. hkReal m_createContact;
  23. /// The distance, for which the tim optimizations for manifold will be used.
  24. /// Set to HK_REAL_MAX if you want to disable this optimization (improved quality)
  25.     /// Set to <0.0 (typically ~m_create4dContact) to enable
  26. hkReal m_manifoldTimDistance;
  27. hkPadSpu<hkBool32> m_useContinuousPhysics;
  28. // Tells if the Toi should use simple handling. Simple handling is only used when debris-quality objects
  29. // are involved in a collision. It is handled by simply backstepping the debris objects till the initial time
  30. // of impact, and not reintegrating them at all.
  31. hkBool m_useSimpleToiHandling;
  32. //
  33. // For continuous physics
  34. //
  35. /// The negative "total" maximum penetration depth. This parameter is further scaled by hkpCollidable::m_allowedPenetrationDepth.
  36. hkReal m_minSeparation; // total
  37. /// The negative maximum penetration depth relative to the current distance. This parameter is further scaled by hkpCollidable::m_allowedPenetrationDepth.
  38. hkReal m_minExtraSeparation; // incremental
  39. /// The internal time step to detect penetrations.
  40. /// This parameter somehow allows to step the physics at a higher rate to
  41. /// detect bullet through paper problems
  42. hkReal m_minSafeDeltaTime;
  43. /// Absolute min delta time used for internal continuous collision detection algorithm.
  44. /// When the distance traveled by a body in that time approaches the body's size, 
  45. /// then continuous collision detection may fail / not pick up contacts.
  46. hkReal m_minAbsoluteSafeDeltaTime;
  47. /// The separation distance at which a toi will be generated
  48. hkReal m_toiSeparation;
  49. /// The separation distance relative to the current distance 
  50. /// at which a toi will be generated
  51. hkReal m_toiExtraSeparation;
  52. /// The distance accuracy of toi calculations
  53. hkReal m_toiAccuracy;
  54. /// The relative maximum allowed penetration
  55. hkReal m_maxContraintViolation;
  56. /// The minimum delta time between two tois
  57. hkReal m_minToiDeltaTime;
  58. /// If you use hkDynamics, this field is the priority of constraints,
  59. /// else it is not used: hkpConstraintInstance::ConstraintPriority
  60. hkUint16 m_constraintPriority;
  61. /// Used to flag whether to drop TOI contacts that will cause welding aftefacts.
  62. hkBool m_enableToiWeldRejection;
  63. hkReal calcMinSeparation( hkReal currentDistance ) const
  64. {
  65. return m_minSeparation;
  66. }
  67. };
  68. #endif // HK_COLLIDE2_COLLIDE_QUALITY_INFO_H
  69. /*
  70. * Havok SDK - NO SOURCE PC DOWNLOAD, BUILD(#20090216)
  71. * Confidential Information of Havok.  (C) Copyright 1999-2009
  72. * Telekinesys Research Limited t/a Havok. All Rights Reserved. The Havok
  73. * Logo, and the Havok buzzsaw logo are trademarks of Havok.  Title, ownership
  74. * rights, and intellectual property rights in the Havok software remain in
  75. * Havok and/or its suppliers.
  76. * Use of this software for evaluation purposes is subject to and indicates
  77. * acceptance of the End User licence Agreement for this product. A copy of
  78. * the license is included with this software and is also available at www.havok.com/tryhavok.
  79. */