My Project
BoneChain.h
1 #pragma once
2 
3 namespace ParaEngine
4 {
5  class Bone;
6  struct AnimIndex;
7 
8  // find calculate the middle joint.
9  // pelvis(20)->waist(21)->chest(23)->necklow(43)->neck(61)
10  // ->but(22)
12  struct CBoneChain
13  {
14  struct BoneItem {
15  int nBoneID;
16  float fWeight;
17  };
18  BoneItem m_boneChain[4];
19  int m_nBoneCount;
20  public:
21  CBoneChain(int bBoneCount = 4);;
28  void SetStartBone(Bone* allBones, int nStart, const int* m_boneLookup = NULL);
33  void RotateBoneChain(const Vector3& vAxis, Bone* allBones, int nMaxBoneNum, float fAngle, const AnimIndex& CurrentAnim, const AnimIndex& BlendingAnim, float blendingFactor, IAttributeFields* pAnimInstance = NULL);
34  };
35 }
different physics engine has different winding order.
Definition: EventBinding.h:32
void SetStartBone(Bone *allBones, int nStart, const int *m_boneLookup=NULL)
set the start bone index.
Definition: BoneChain.cpp:42
a single animated bone, it contains both the bone instance data and all animation data of the bone...
Definition: ParaXBone.h:15
a chain of bones which will be rotated with some constraint.
Definition: BoneChain.h:12
Definition: BoneChain.h:14
Standard 3-dimensional vector.
Definition: ParaVector3.h:16
void RotateBoneChain(const Vector3 &vAxis, Bone *allBones, int nMaxBoneNum, float fAngle, const AnimIndex &CurrentAnim, const AnimIndex &BlendingAnim, float blendingFactor, IAttributeFields *pAnimInstance=NULL)
rotate a chain of bones around the Y axis by a given radius.
Definition: BoneChain.cpp:16
it presents a given in bone animation providers or parax local model bone animation pools ...
Definition: AnimInstanceBase.h:13
A common interface for all classes implementing IAttributeFields By implementing this class's virtual...
Definition: IAttributeFields.h:59