hkTransform.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. hkVector4& hkTransform::getColumn(int x)
  9. {
  10. return m_rotation.getColumn(x);
  11. }
  12. const hkVector4& hkTransform::getColumn(int x) const
  13. {
  14. return m_rotation.getColumn(x);
  15. }
  16. hkVector4& hkTransform::getTranslation()
  17. {
  18. return m_translation;
  19. }
  20. const hkVector4& hkTransform::getTranslation() const
  21. {
  22. return m_translation;
  23. }
  24. void hkTransform::setTranslation(const hkVector4& t)
  25. {
  26. m_translation = t;
  27. }
  28. hkRotation& hkTransform::getRotation()
  29. {
  30. return m_rotation;
  31. }
  32. const hkRotation& hkTransform::getRotation() const
  33. {
  34. return m_rotation;
  35. }
  36. void hkTransform::setRotation(const hkRotation& rotation)
  37. {
  38. m_rotation = rotation;
  39. }
  40. void hkTransform::setRotation(const hkQuaternion& quatRotation)
  41. {
  42. m_rotation.set(quatRotation);
  43. }
  44. hkTransform::hkTransform(const hkTransform& t)
  45. {
  46. const hkVector4 r0 = t.m_rotation.getColumn(0);
  47. const hkVector4 r1 = t.m_rotation.getColumn(1);
  48. const hkVector4 r2 = t.m_rotation.getColumn(2);
  49. const hkVector4 r3 = t.m_rotation.getColumn(3);
  50. m_rotation.getColumn(0) = r0;
  51. m_rotation.getColumn(1) = r1;
  52. m_rotation.getColumn(2) = r2;
  53. m_rotation.getColumn(3) = r3;
  54. }
  55. hkTransform::hkTransform(const hkQuaternion& q, const hkVector4& t)
  56. : m_translation(t)
  57. {
  58. m_rotation.set(q);
  59. }
  60. hkTransform::hkTransform(const hkRotation& r, const hkVector4& t)
  61. : m_rotation(r),
  62. m_translation(t)
  63. {
  64. }
  65. inline hkReal& hkTransform::operator() (int r, int c)
  66. {
  67. return m_rotation(r,c);
  68. }
  69. inline const hkReal& hkTransform::operator() (int r, int c) const
  70. {
  71. return m_rotation(r,c);
  72. }
  73. void hkTransform::set(const hkQuaternion& q, const hkVector4& t)
  74. {
  75. m_rotation.set(q);
  76. m_translation = t;
  77. }
  78. const hkTransform& HK_CALL hkTransform::getIdentity()
  79. {
  80. extern hkTransform hkTransformIdentity;
  81. return hkTransformIdentity;
  82. }
  83. void hkTransform::setIdentity()
  84. {
  85. m_rotation.setIdentity();
  86. m_translation.setZero4();
  87. }
  88. void hkTransform::setRows4( const hkVector4& r0, const hkVector4& r1,
  89.  const hkVector4& r2, const hkVector4& r3)
  90. {
  91. getColumn(0).set( r0(0), r1(0), r2(0), r3(0) );
  92. getColumn(1).set( r0(1), r1(1), r2(1), r3(1) );
  93. getColumn(2).set( r0(2), r1(2), r2(2), r3(2) );
  94. getColumn(3).set( r0(3), r1(3), r2(3), r3(3) );
  95. }
  96. /*
  97. * Havok SDK - NO SOURCE PC DOWNLOAD, BUILD(#20090216)
  98. * Confidential Information of Havok.  (C) Copyright 1999-2009
  99. * Telekinesys Research Limited t/a Havok. All Rights Reserved. The Havok
  100. * Logo, and the Havok buzzsaw logo are trademarks of Havok.  Title, ownership
  101. * rights, and intellectual property rights in the Havok software remain in
  102. * Havok and/or its suppliers.
  103. * Use of this software for evaluation purposes is subject to and indicates
  104. * acceptance of the End User licence Agreement for this product. A copy of
  105. * the license is included with this software and is also available at www.havok.com/tryhavok.
  106. */