hkpTriangleShape.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. hkUint16 hkpTriangleShape::getWeldingInfo() const
  9. {
  10. return m_weldingInfo;
  11. }
  12. void hkpTriangleShape::setWeldingInfo( hkUint16 info )
  13. {
  14. m_weldingInfo = info;
  15. }
  16. HK_FORCE_INLINE hkpWeldingUtility::WeldingType hkpTriangleShape::getWeldingType() const
  17. {
  18. return m_weldingType;
  19. }
  20. HK_FORCE_INLINE void hkpTriangleShape::setWeldingType( hkpWeldingUtility::WeldingType type )
  21. {
  22. m_weldingType = type;
  23. }
  24. HK_FORCE_INLINE hkpTriangleShape::hkpTriangleShape(hkReal radius, hkUint16 weldingInfo, hkpWeldingUtility::WeldingType type)
  25. : hkpConvexShape( HK_SHAPE_TRIANGLE, radius)
  26. {
  27. setWeldingInfo(weldingInfo);
  28. setWeldingType( type );
  29. m_extrusion.setZero4();
  30. m_isExtruded = 0;
  31. }
  32. HK_FORCE_INLINE hkpTriangleShape::hkpTriangleShape(const hkVector4& v0, const hkVector4& v1, const hkVector4& v2, hkReal radius)
  33. : hkpConvexShape(HK_SHAPE_TRIANGLE, radius)
  34. {
  35. m_vertexA = v0;
  36. m_vertexB = v1;
  37. m_vertexC = v2;
  38. setWeldingInfo(0);
  39. setWeldingType(hkpWeldingUtility::WELDING_TYPE_NONE);
  40. m_extrusion.setZero4();
  41. m_isExtruded = 0;
  42. }
  43. const hkVector4* hkpTriangleShape::getVertices() const
  44. {
  45. return &m_vertexA;
  46. }
  47. hkVector4& hkpTriangleShape::getVertex(int i)
  48. {
  49. HK_ASSERT2(0x312d54aa,  i>=0 && i < 3, "A triangle has only 3 vertices");
  50. return (&m_vertexA)[i];
  51. }
  52. const hkVector4& hkpTriangleShape::getVertex(int i) const
  53. {
  54. HK_ASSERT2(0x7d790924,  i>=0 && i < 3, "A triangle has only 3 vertices");
  55. return (&m_vertexA)[i];
  56. }
  57. void hkpTriangleShape::setVertex(int i, const hkVector4& vertex)
  58. {
  59. HK_ASSERT2(0x18d4155c,  i>=0 && i < 3, "A triangle has only 3 vertices");
  60. (&m_vertexA)[i] = vertex;
  61. }
  62. bool hkpTriangleShape::isExtruded() const
  63. {
  64. return (m_isExtruded != 0);
  65. }
  66. const hkVector4& hkpTriangleShape::getExtrusion() const
  67. {
  68. return m_extrusion;
  69. }
  70. void hkpTriangleShape::setExtrusion( const hkVector4& extrusion )
  71. {
  72. m_isExtruded = extrusion.lengthSquared3() > 0;
  73. m_extrusion = extrusion;
  74. }
  75. /*
  76. * Havok SDK - NO SOURCE PC DOWNLOAD, BUILD(#20090216)
  77. * Confidential Information of Havok.  (C) Copyright 1999-2009
  78. * Telekinesys Research Limited t/a Havok. All Rights Reserved. The Havok
  79. * Logo, and the Havok buzzsaw logo are trademarks of Havok.  Title, ownership
  80. * rights, and intellectual property rights in the Havok software remain in
  81. * Havok and/or its suppliers.
  82. * Use of this software for evaluation purposes is subject to and indicates
  83. * acceptance of the End User licence Agreement for this product. A copy of
  84. * the license is included with this software and is also available at www.havok.com/tryhavok.
  85. */