hkaAnimationBinding.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 HKANIMATION_ANIMATION_HKANIMATIONBINDING_HKCLASS_H
  9. #define HKANIMATION_ANIMATION_HKANIMATIONBINDING_HKCLASS_H
  10. /// hkaAnimationBinding meta information
  11. extern const class hkClass hkaAnimationBindingClass;
  12. /// Describes how an animation is bound to a skeleton
  13. /// This class is useful when we have partial animations which only animate a subset of the skeleton
  14. /// or when we have have reordered the tracks to aid in LOD. All hkaAnimationControl objects
  15. /// (added to a hkaAnimatedSkeleton) require a hkaAnimationBinding to map from tracks to bones/slots
  16. /// for blending of multiple animations.
  17. class hkaAnimationBinding
  18. {
  19. public:
  20. HK_DECLARE_NONVIRTUAL_CLASS_ALLOCATOR( HK_MEMORY_CLASS_ANIM_DATA, hkaAnimationBinding);
  21. HK_DECLARE_REFLECTION();
  22. //
  23. // Members
  24. //
  25. public:
  26. /// Default constructor.
  27. hkaAnimationBinding();
  28. /// (Optional) The name of the skeleton from which the binding was constructed.
  29. const char* m_originalSkeletonName; 
  30. /// A handle to the animation bound to the skeleton.
  31. class hkaAnimation* m_animation;
  32. /// A mapping from animation track indices to bone indices.
  33. hkInt16* m_transformTrackToBoneIndices;
  34. /// Size of m_transformTrackToBoneIndices.
  35. hkInt32 m_numTransformTrackToBoneIndices;
  36. /// A mapping from animation float track indices to float slot indices.
  37. hkInt16* m_floatTrackToFloatSlotIndices;
  38. /// Size of m_numFloatTrackToFloatSlotIndices.
  39. hkInt32 m_numFloatTrackToFloatSlotIndices;
  40. /// A hint to indicate how this animation should be blended - 
  41. /// See hkaAnimatedSkeleton for a description of how this affects animation blending.
  42. enum BlendHint
  43. {
  44. /// Normal
  45. NORMAL = 0,
  46. /// Additive
  47. ADDITIVE = 1
  48. };
  49. /// The blend hint.
  50. hkEnum<BlendHint, hkInt8> m_blendHint; //+default(0/*hkaAnimationBinding::NORMAL*/)
  51. // Helper functions to find tracks given bones or slots
  52. hkInt16 findTrackIndexFromBoneIndex( hkInt16 boneIndex );
  53. hkInt16 findTrackIndexFromSlotIndex( hkInt16 slotIndex );
  54. static hkInt16 HK_CALL findTrackIndexFromBoneIndex( hkInt16 boneIndex, hkInt32 numTracks, hkInt16* trackToBoneIndices );
  55. public:
  56. // Constructor for initialisation of vtable fixup
  57. hkaAnimationBinding( hkFinishLoadedObjectFlag flag ) {}
  58. };
  59. #include <Animation/Animation/Animation/hkaAnimationBinding.inl>
  60. #endif // HKANIMATION_ANIMATION_HKANIMATIONBINDING_HKCLASS_H
  61. /*
  62. * Havok SDK - NO SOURCE PC DOWNLOAD, BUILD(#20090216)
  63. * Confidential Information of Havok.  (C) Copyright 1999-2009
  64. * Telekinesys Research Limited t/a Havok. All Rights Reserved. The Havok
  65. * Logo, and the Havok buzzsaw logo are trademarks of Havok.  Title, ownership
  66. * rights, and intellectual property rights in the Havok software remain in
  67. * Havok and/or its suppliers.
  68. * Use of this software for evaluation purposes is subject to and indicates
  69. * acceptance of the End User licence Agreement for this product. A copy of
  70. * the license is included with this software and is also available at www.havok.com/tryhavok.
  71. */