49 return ( framenum * 1000 ) / 24;
100 #define ANIM_TX BIT( 0 )
101 #define ANIM_TY BIT( 1 )
102 #define ANIM_TZ BIT( 2 )
103 #define ANIM_QX BIT( 3 )
104 #define ANIM_QY BIT( 4 )
105 #define ANIM_QZ BIT( 5 )
150 , FC_LAUNCH_PROJECTILE,
175 bool prevent_idle_override : 1;
176 bool random_cycle_start : 1;
215 int ExportModels(
const char *pathname,
const char *extension );
249 bool LoadAnim(
const char *filename );
262 const char *
Name(
void )
const;
297 const char *
Name(
void )
const;
331 virtual size_t Size(
void )
const;
333 virtual bool Parse(
const char *text,
const int textLength );
336 void Touch(
void )
const;
348 int GetAnim(
const char *name )
const;
349 bool HasAnim(
const char *name )
const;
411 bool BlendAnim(
int currentTime,
int channel,
int numJoints,
idJointQuat *blendFrame,
float &blendWeight,
bool removeOrigin,
bool overrideBlend,
bool printInfo )
const;
413 void BlendDelta(
int fromtime,
int totime,
idVec3 &blendDelta,
float &blendWeight )
const;
423 float GetWeight(
int currenttime )
const;
425 void SetWeight(
float newweight,
int currenttime,
int blendtime );
428 void Clear(
int currentTime,
int clearTime );
429 bool IsDone(
int currentTime )
const;
439 int AnimTime(
int currenttime )
const;
492 size_t Size(
void )
const;
507 bool HasAnim(
const char *name )
const;
531 void Clear(
int channelNum,
int currentTime,
int cleartime );
532 void SetFrame(
int channelNum,
int animnum,
int frame,
int currenttime,
int blendtime );
533 void CycleAnim(
int channelNum,
int animnum,
int currenttime,
int blendtime );
534 void PlayAnim(
int channelNum,
int animnum,
int currenttime,
int blendTime );
538 void SyncAnimChannels(
int channelNum,
int fromChannelNum,
int currenttime,
int blendTime );
563 const char *
AnimName(
int animnum )
const;
570 void PushAnims(
int channel,
int currentTime,
int blendTime );
int JointIndex(const char *name)
int NumJoints(void) const
bool ParseAnim(idLexer &src, int numDefaultAnims)
int GetChannelForJoint(jointHandle_t joint) const
bool GetJointTransform(jointHandle_t jointHandle, int currenttime, idVec3 &offset, idMat3 &axis)
bool GetBounds(int currentTime, idBounds &bounds)
void SetCycleCount(int count)
void Save(idSaveGame *savefile) const
void SyncAnimChannels(int channelNum, int fromChannelNum, int currenttime, int blendTime)
bool IsAnimating(int currentTime) const
jointHandle_t GetFirstChild(jointHandle_t jointnum) const
void FinishAFPose(int animnum, const idBounds &bounds, const int time)
void SetAnimFlags(const animFlags_t &animflags)
virtual bool Parse(const char *text, const int textLength)
const int * JointParents(void) const
const jointInfo_t * FindJoint(const char *name) const
void ListAnims(void) const
void Clear(int currentTime, int clearTime)
idRenderModel * modelHandle
const idVec3 & TotalMovementDelta(void) const
void SetFrame(const idDeclModelDef *modelDef, int animnum, int frame, int currenttime, int blendtime)
virtual size_t Size(void) const
bool SetSyncedAnimWeight(int num, float weight)
idRenderModel * ModelHandle(void) const
const int ANIMCHANNEL_ALL
int NumJoints(void) const
void GetBounds(idBounds &bounds, int currentTime, int cyclecount) const
const int ANIM_MaxSyncedAnims
bool AddBounds(int currentTime, idBounds &bounds, bool removeOriginOffset) const
float GetWeight(int currenttime) const
void AllowFrameCommands(bool allow)
int AnimTime(int currenttime) const
virtual void FreeData(void)
const int ANIMCHANNEL_EYELIDS
void PlayAnim(int channelNum, int animnum, int currenttime, int blendTime)
float GetPlaybackRate(void) const
idHashIndex jointnamesHash
bool CreateFrame(int animtime, bool force)
int FindFrameForFrameCommand(frameCommandType_t framecommand, const frameCommand_t **command) const
jointHandle_t GetJointHandle(const char *name) const
int NumSyncedAnims(int animnum) const
const class idDeclModelDef * modelDef
void BlendDelta(int fromtime, int totime, idVec3 &blendDelta, float &blendWeight) const
const char * AnimName(int animnum) const
bool ExportAnim(const char *anim)
bool FrameHasChanged(int currentTime) const
const idDeclSkin * GetSkin(void) const
void GetOrigin(int currentTime, idVec3 &pos) const
void SetJointPos(jointHandle_t jointnum, jointModTransform_t transform_type, const idVec3 &pos)
idList< idBounds > bounds
void GetOrigin(idVec3 &offset, int currentTime, int cyclecount) const
int NumJointsOnChannel(int channel) const
const idDeclModelDef * modelDef
const int ANIMCHANNEL_HEAD
bool BlendAnim(int currentTime, int channel, int numJoints, idJointQuat *blendFrame, float &blendWeight, bool removeOrigin, bool overrideBlend, bool printInfo) const
void IncreaseRefs(void) const
bool HasFrameCommands(void) const
void CheckModelHierarchy(const idRenderModel *model) const
void SetStartTime(int startTime)
const idVec3 & TotalMovementDelta(int animnum) const
const char * GetJointName(int jointHandle) const
void SetAnim(const idDeclModelDef *modelDef, const char *sourcename, const char *animname, int num, const idMD5Anim *md5anims[ANIM_MaxSyncedAnims])
bool FrameHasChanged(int animtime) const
void Restore(idRestoreGame *savefile)
idList< int > channelJoints[ANIM_NumAnimChannels]
bool stoppedAnimatingUpdate
const jointInfo_t * GetJoint(int jointHandle) const
void Reset(const idDeclModelDef *_modelDef)
idList< int > AFPoseJoints
bool GetBounds(idBounds &bounds, int animNum, int time, int cyclecount) const
void SetJointAxis(jointHandle_t jointnum, jointModTransform_t transform_type, const idMat3 &mat)
bool ParseOptions(idLexer &lex)
const char * AnimName(void) const
idList< frameCommand_t > frameCommands
void ClearAllJoints(void)
const char * AnimFullName(void) const
idList< float > componentFrames
int GetFrameNumber(int currenttime) const
idRenderModel * SetModel(const char *modelname)
void GetDelta(int fromtime, int totime, idVec3 &delta) const
GLuint GLuint GLsizei count
int ExportDefFile(const char *filename)
void RemoveOriginOffset(bool remove)
int PlayLength(void) const
const int ANIM_MaxAnimsPerChannel
idMD5Anim * GetAnim(const char *name)
void SetupJoints(int *numJoints, idJointMat **jointList, idBounds &frameBounds, bool removeOriginOffset) const
const idList< jointInfo_t > & Joints(void) const
const animFlags_t & GetAnimFlags(void) const
void ClearAllAnims(int currentTime, int cleartime)
const idMD5Anim * MD5Anim(int num) const
idAnimBlend * CurrentAnim(int channelNum)
bool GetJointLocalTransform(jointHandle_t jointHandle, int currentTime, idVec3 &offset, idMat3 &axis)
void GetFrameBlend(int framenum, frameBlend_t &frame) const
const idAnim * GetAnim(int index) const
idList< jointMod_t * > jointMods
void CycleAnim(int channelNum, int animnum, int currenttime, int blendtime)
idList< idJointQuat > AFPoseJointFrame
const char * JointName(int index) const
const int ANIM_NumAnimChannels
void GetJointList(const char *jointnames, idList< jointHandle_t > &jointList) const
void GetInterpolatedFrame(frameBlend_t &frame, idJointQuat *joints, const int *index, int numIndexes) const
bool GetOrigin(idVec3 &offset, int animNum, int time, int cyclecount) const
const char * FullName(void) const
bool ExportModel(const char *model)
void GetJointList(const char *jointnames, idList< jointHandle_t > &jointList) const
int NumFrames(void) const
const char * Name(void) const
idList< jointAnimInfo_t > jointInfo
float GetFinalWeight(void) const
void ServiceAnims(int fromtime, int totime)
const idDeclModelDef * ModelDef(void) const
void CycleAnim(const idDeclModelDef *modelDef, int animnum, int currenttime, int blendtime)
idHashTable< idMD5Anim * > animations
void SetWeight(float newweight, int currenttime, int blendtime)
int ExportModels(const char *pathname, const char *extension)
const animFlags_t GetAnimFlags(int animnum) const
int GetCycleCount(void) const
void PushAnims(int channel, int currentTime, int blendTime)
void GetJoints(int *numJoints, idJointMat **jointsPtr)
const idVec3 & GetVisualOffset(void) const
const char * Name(void) const
const idDeclSkin * GetDefaultSkin(void) const
idList< idAFPoseJointMod > AFPoseJointMods
void ClearForceUpdate(void)
void Save(idSaveGame *savefile) const
const class idDeclModelDef * modelDef
void FlushUnusedAnims(void)
const idSoundShader * soundShader
int NumJoints(void) const
const char * GetModelName(void) const
bool IsDone(int currentTime) const
const idDeclModelDef * ModelDef(void) const
bool GetDeltaRotation(int fromtime, int totime, idMat3 &delta) const
idList< idJointQuat > baseFrame
jointModTransform_t transform_pos
int AnimLength(int animnum) const
bool HasAnim(const char *name) const
void DecreaseRefs(void) const
int numAnimatedComponents
int ParseExportSection(idParser &parser)
virtual const char * DefaultDefinition(void) const
jointModTransform_t transform_axis
const char * AnimFullName(int animnum) const
void BlendDeltaRotation(int fromtime, int totime, idQuat &blendDelta, float &blendWeight) const
static void LoadMayaDll(void)
bool GetOriginRotation(idQuat &rotation, int animNum, int currentTime, int cyclecount) const
void PlayAnim(const idDeclModelDef *modelDef, int animnum, int currenttime, int blendtime)
idAnimBlend channels[ANIM_NumAnimChannels][ANIM_MaxAnimsPerChannel]
idList< jointInfo_t > joints
const char * AddFrameCommand(const class idDeclModelDef *modelDef, int framenum, idLexer &src, const idDict *def)
idList< frameLookup_t > frameLookup
idList< int > jointParents
const idVec3 & TotalMovementDelta(void) const
bool BlendAFPose(idJointQuat *blendFrame) const
void AllowMovement(bool allow)
static void Shutdown(void)
void CallFrameCommands(idEntity *ent, int fromtime, int totime) const
void SetAFPoseBlendWeight(float blendWeight)
void Clear(int channelNum, int currentTime, int cleartime)
int NumFrames(int animnum) const
const idAnim * GetAnim(int index) const
ID_INLINE int FRAME2MS(int framenum)
const char * GetJointName(jointHandle_t handle) const
void CallFrameCommands(idEntity *ent, int from, int to) const
const int ANIMCHANNEL_TORSO
int GetEndTime(void) const
void SetFrame(int channelNum, int animnum, int frame, int currenttime, int blendtime)
static bool CheckMayaInstall(void)
const idAnim * Anim(void) const
int NumFrames(void) const
idRenderModel * ModelHandle(void) const
const int ANIMCHANNEL_LEGS
void GetSingleFrame(int framenum, idJointQuat *joints, const int *index, int numIndexes) const
size_t Allocated(void) const
int GetStartTime(void) const
void GetOriginRotation(idQuat &rotation, int time, int cyclecount) const
void BlendOrigin(int currentTime, idVec3 &blendPos, float &blendWeight, bool removeOriginOffset) const
const int * GetChannelJoints(int channel) const
void CopyDecl(const idDeclModelDef *decl)
int GetSpecificAnim(const char *name) const
bool HasAnim(const char *name) const
float animWeights[ANIM_MaxSyncedAnims]
idEntity * GetEntity(void) const
size_t Allocated(void) const
void Restore(idRestoreGame *savefile, const idDeclModelDef *modelDef)
void SetAFPoseJointMod(const jointHandle_t jointNum, const AFJointModType_t mod, const idMat3 &axis, const idVec3 &origin)
const idJointQuat * GetDefaultPose(void) const
bool LoadAnim(const char *filename)
void ConvertTimeToFrame(int time, int cyclecount, frameBlend_t &frame) const
void ClearJoint(jointHandle_t jointnum)
void SetEntity(idEntity *ent)
const idMD5Anim * anims[ANIM_MaxSyncedAnims]
int NumSyncedAnims(void) const
void ClearAnimsInUse(void)
int NumFrames(void) const
bool RemoveOrigin(void) const
void SetPlaybackRate(int currentTime, float newRate)
bool ConvertMayaToMD5(void)