#ifndef __BONE_ANIMATION_STATE_H__ #define __BONE_ANIMATION_STATE_H__ typedef struct BoneAnimationState BoneAnimationState; #include "3dmath/Matrix.h" #include "3dmath/Quaternion.h" #include "3dmath/Vector.h" struct BoneAnimationSequence; struct Skeleton; #define BoneAnimationState_structContents \ struct Skeleton * skeleton; \ Quaternion * boneOrientations; \ Vector3 * boneOffsets; \ Matrix * boneMatrices; \ \ void (* dispose)(void * self); \ void * (* createCopy)(void * self); \ void (* updateBoneMatrices)(void * self); struct BoneAnimationState { BoneAnimationState_structContents }; BoneAnimationState * BoneAnimationState_create(struct Skeleton * skeleton); void BoneAnimationState_init(BoneAnimationState * self, struct Skeleton * skeleton); void BoneAnimationState_initCopy(BoneAnimationState * self, BoneAnimationState * original); void BoneAnimationState_dispose(void * selfPtr); void * BoneAnimationState_createCopy(void * selfPtr); void BoneAnimationState_updateBoneMatrices(void * selfPtr); #endif