#ifndef __SKELETON_H__ #define __SKELETON_H__ typedef struct Skeleton Skeleton; #include "3dmath/Vector.h" #include "utilities/Atom.h" struct Skeleton_bone { Atom boneID; int parentIndex; Vector3 position; }; #define Skeleton_structContents \ unsigned int numberOfBones; \ struct Skeleton_bone * bones; \ \ void (* dispose)(void * self); \ void * (* createCopy)(void * self); \ unsigned int (* boneIndexForID)(void * self, Atom boneID); struct Skeleton { Skeleton_structContents }; Skeleton * Skeleton_create(); void Skeleton_init(Skeleton * self); void Skeleton_initCopy(Skeleton * self, Skeleton * original); void Skeleton_dispose(void * selfPtr); void * Skeleton_createCopy(void * selfPtr); unsigned int Skeleton_boneIndexForID(void * selfPtr, Atom boneID); #endif