29 #ifndef __Skeleton_H__
30 #define __Skeleton_H__
57 #define OGRE_MAX_NUM_BONES 256
60 struct LinkedSkeletonAnimationSource;
118 virtual Bone* createBone(
void);
133 virtual Bone* createBone(
unsigned short handle);
160 virtual Bone* createBone(
const String& name,
unsigned short handle);
163 virtual unsigned short getNumBones(
void)
const;
176 virtual Bone* getRootBone(
void)
const;
186 virtual Bone* getBone(
unsigned short handle)
const;
189 virtual Bone* getBone(
const String& name)
const;
192 virtual bool hasBone(
const String& name)
const;
197 virtual void setBindingPose(
void);
208 virtual void reset(
bool resetManualBones =
false);
241 virtual bool hasAnimation(
const String& name)
const;
244 virtual void removeAnimation(
const String& name);
277 virtual void _getBoneMatrices(
Matrix4* pMatrices);
280 virtual unsigned short getNumAnimations(
void)
const;
287 virtual Animation* getAnimation(
unsigned short index)
const;
296 virtual void _updateTransforms(
void);
303 virtual void optimiseAllAnimations(
bool preservingIdentityNodeTracks =
false);
338 virtual void addLinkedSkeletonAnimationSource(
const String& skelName,
341 virtual void removeAllLinkedSkeletonAnimationSources(
void);
349 getLinkedSkeletonAnimationSourceIterator(
void)
const;
352 virtual void _notifyManualBonesDirty(
void);
354 virtual void _notifyManualBoneStateChange(
Bone* bone);
397 virtual void _mergeSkeletonAnimations(
const Skeleton* source,
405 virtual void _buildMapBoneByHandle(
const Skeleton* source,
412 virtual void _buildMapBoneByName(
const Skeleton* source,
447 void deriveRootBone(
void)
const;
450 void _dumpContents(
const String& filename);
458 void unloadImpl(
void);
460 size_t calculateSize(
void)
const;