#ifndef __BONE_ANIMATION_STATE_CONTROLLER_H__ #define __BONE_ANIMATION_STATE_CONTROLLER_H__ typedef struct BoneAnimationStateController BoneAnimationStateController; #include "utilities/Atom.h" struct BoneAnimationSequence; struct BoneAnimationState; #define BoneAnimationController_structContents \ struct BoneAnimationState * animationState; \ struct BoneAnimationList * animationList; \ Atom sequenceName; \ float sequencePlaybackTime; \ struct BoneAnimationState * lastAnimationState; \ float sequenceTransitionDuration; \ \ void (* dispose)(void * self); \ void (* update)(void * self, double timestep); \ void (* setSequence)(void * self, Atom sequenceName); struct BoneAnimationStateController { BoneAnimationController_structContents }; BoneAnimationStateController * BoneAnimationStateController_create(struct BoneAnimationState * animationState, struct BoneAnimationList * animationList); void BoneAnimationStateController_init(BoneAnimationStateController * self, struct BoneAnimationState * animationState, struct BoneAnimationList * animationList); void BoneAnimationStateController_dispose(void * selfPtr); void BoneAnimationStateController_update(void * selfPtr, double timestep); void BoneAnimationStateController_setSequence(void * selfPtr, Atom sequenceName); #endif