40 #define IK_ANIM "ik_pose"
45 virtual ~idIK(
void );
float lowerArmLength[MAX_ARMS]
void Restore(idRestoreGame *savefile)
virtual void ClearJointMods(void)
virtual bool Init(idEntity *self, const char *anim, const idVec3 &modelOffset)
jointHandle_t elbowJoints[MAX_ARMS]
virtual void Evaluate(void)
void Save(idSaveGame *savefile) const
void Restore(idRestoreGame *savefile)
idMat3 upperLegToHipJoint[MAX_LEGS]
idMat3 lowerArmToElbowJoint[MAX_ARMS]
float oldAnkleHeights[MAX_LEGS]
jointHandle_t dirJoints[MAX_LEGS]
idVec3 elbowForward[MAX_ARMS]
virtual bool Init(idEntity *self, const char *anim, const idVec3 &modelOffset)
bool SolveTwoBones(const idVec3 &startPos, const idVec3 &endPos, const idVec3 &dir, float len0, float len1, idVec3 &jointPos)
float GetBoneAxis(const idVec3 &startPos, const idVec3 &endPos, const idVec3 &dir, idMat3 &axis)
jointHandle_t shoulderJoints[MAX_ARMS]
virtual void ClearJointMods(void)
idMat3 lowerLegToKneeJoint[MAX_LEGS]
jointHandle_t ankleJoints[MAX_LEGS]
static const int MAX_ARMS
float upperLegLength[MAX_LEGS]
virtual void Evaluate(void)
virtual void ClearJointMods(void)
float lowerLegLength[MAX_LEGS]
jointHandle_t hipJoints[MAX_LEGS]
jointHandle_t kneeJoints[MAX_LEGS]
void Save(idSaveGame *savefile) const
virtual bool Init(idEntity *self, const char *anim, const idVec3 &modelOffset)
bool IsInitialized(void) const
float upperArmLength[MAX_ARMS]
idVec3 kneeForward[MAX_LEGS]
void Save(idSaveGame *savefile) const
idVec3 shoulderForward[MAX_ARMS]
idMat3 upperArmToShoulderJoint[MAX_ARMS]
jointHandle_t handJoints[MAX_ARMS]
jointHandle_t footJoints[MAX_LEGS]
idVec3 hipForward[MAX_LEGS]
void Restore(idRestoreGame *savefile)
jointHandle_t dirJoints[MAX_ARMS]
virtual ~idIK_Reach(void)
virtual void Evaluate(void)
static const int MAX_LEGS