29class skelAnimStoreFrameList_c;
37 skelBone_Base *m_parent;
38 SkelMat4 m_cachedValue;
45 virtual ~skelBone_Base();
47 SkelMat4 & GetTransform(
const skelAnimStoreFrameList_c *frames);
48 virtual SkelMat4 & GetDirtyTransform(
const skelAnimStoreFrameList_c *frames) = 0;
49 void SetParent(skelBone_Base *parent);
50 virtual void SetBaseValue(boneData_t *boneData);
51 virtual int GetChannelIndex(
int num);
52 virtual skelBone_Base *GetBoneRef(
int num);
53 static int GetNumChannels(boneType_t boneType);
54 static int GetNumBoneRefs(boneType_t boneType);
55 skelBone_Base *Parent()
const;
56 bool OnGround(
const skelAnimStoreFrameList_c *frames,
float threshold);
59class skelBone_World :
public skelBone_Base
65 SkelMat4 & GetDirtyTransform(
const skelAnimStoreFrameList_c *frames)
override;
66 void SetBaseValue(boneData_t *boneData)
override;
67 int GetChannelIndex(
int num)
override;
68 skelBone_Base *GetBoneRef(
int num)
override;
71class skelBone_Zero :
public skelBone_Base
74 SkelMat4 & GetDirtyTransform(
const skelAnimStoreFrameList_c *frames)
override;
75 void SetBaseValue(boneData_t *boneData)
override;
76 int GetChannelIndex(
int num)
override;
77 skelBone_Base *GetBoneRef(
int num)
override;
80class skelBone_Rotation :
public skelBone_Base
87 SkelMat4& GetDirtyTransform(
const skelAnimStoreFrameList_c *frames)
override;
90 void SetChannels(
int num);
91 void SetBaseValue(boneData_t *data)
override;
92 int GetChannelIndex(
int num)
override;
93 skelBone_Base *GetBoneRef(
int num)
override;
96class skelBone_PosRot :
public skelBone_Base
105 SkelMat4& GetDirtyTransform(
const skelAnimStoreFrameList_c *frames)
override;
108 void SetChannels(
int quatChannel,
int offsetChannel);
109 void SetBaseValue(boneData_t *boneData)
override;
110 int GetChannelIndex(
int num)
override;
111 skelBone_Base *GetBoneRef(
int num)
override;
114class skelBone_Root :
public skelBone_PosRot
117 SkelMat4& GetDirtyTransform(
const skelAnimStoreFrameList_c *frames)
override;
120class skelBone_IKshoulder :
public skelBone_Base
123 class skelBone_IKwrist *m_wrist;
126 SkelVec3 m_baseValue;
127 float m_cosElbowAngle;
129 SkelQuat m_wristAngle;
131 skelBone_IKshoulder();
133 SkelMat4 & GetDirtyTransform(
const skelAnimStoreFrameList_c *frames)
override;
134 void SetBaseValue(boneData_t *boneData)
override;
135 int GetChannelIndex(
int num)
override;
136 skelBone_Base *GetBoneRef(
int num)
override;
137 void SetElbowValue(
float elbowOffset);
138 void SetWristValue(
float wristOffset);
139 void SetWristBone(skelBone_IKwrist *wrist);
140 float GetUpperLength();
141 float GetLowerLength();
144class skelBone_IKelbow :
public skelBone_Base
147 skelBone_IKshoulder *m_shoulder;
150 SkelMat4 & GetDirtyTransform(
const skelAnimStoreFrameList_c *frames)
override;
151 void SetBoneRefs(skelBone_IKshoulder *shoulder);
152 void SetBaseValue(boneData_t *boneData)
override;
153 int GetChannelIndex(
int num)
override;
154 skelBone_Base *GetBoneRef(
int num)
override;
157class skelBone_IKwrist :
public skelBone_Base
160 skelBone_IKshoulder *m_shoulder;
165 SkelMat4 & GetDirtyTransform(
const skelAnimStoreFrameList_c *frame)
override;
166 void SetChannels(
int quatChannel,
int offsetChannel);
167 void SetBoneRefs(skelBone_IKshoulder *shoulder);
168 void SetBaseValue(boneData_t *boneData)
override;
169 int GetChannelIndex(
int num)
override;
170 skelBone_Base *GetBoneRef(
int num)
override;
173class skelBone_AvRot :
public skelBone_Base
177 SkelQuat m_cachedQuat;
178 skelBone_Base *m_reference1;
179 skelBone_Base *m_reference2;
185 SkelMat4 & GetDirtyTransform(
const skelAnimStoreFrameList_c *frames)
override;
186 void SetBoneRefs(skelBone_Base *ref1, skelBone_Base *ref2);
187 void SetBaseValue(boneData_t *boneData)
override;
188 int GetChannelIndex(
int num)
override;
189 skelBone_Base *GetBoneRef(
int num)
override;
192class skelBone_HoseRot :
public skelBone_Base
196 SkelQuat m_cachedQuat;
197 skelBone_Base *m_target;
203 SkelMat4 & GetDirtyTransform(
const skelAnimStoreFrameList_c *frames)
override;
204 SkelMat4 & GetDirtyTransform(SkelMat4 &myParentTM, SkelMat4 &targetTM);
205 void SetBoneRefs(skelBone_Base *ref);
206 void SetBaseValue(boneData_t *boneData)
override;
207 int GetChannelIndex(
int num)
override;
208 skelBone_Base *GetBoneRef(
int num)
override;
211class skelBone_HoseRotBoth :
public skelBone_HoseRot
214 SkelMat4& GetDirtyTransform(
const skelAnimStoreFrameList_c *frames)
override;
215 void SetBaseValue(boneData_t *boneData)
override;
218class skelBone_HoseRotParent :
public skelBone_HoseRot
221 SkelMat4& GetDirtyTransform(
const skelAnimStoreFrameList_c *frames)
override;
222 void SetBaseValue(boneData_t *boneData)
override;
227typedef void *skelBone_Base;
231typedef char skelChannelName_t[32];