Go to the documentation of this file.
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;
unsigned long long int ResourceHandle
VectorIterator< BoneList > BoneIterator
vector< LinkedSkeletonAnimationSource >::type LinkedSkeletonAnimSourceList
LinkedSkeletonAnimSourceList mLinkedSkeletonAnimSourceList
List of references to other skeletons to use animations from.
vector< String >::type StringVector
Concrete IteratorWrapper for nonconst access to the underlying container.
BoneList mRootBones
Pointer to root bones (can now have multiple roots)
ConstVectorIterator< LinkedSkeletonAnimSourceList > LinkedSkeletonAnimSourceIterator
BoneListByName mBoneListByName
map< String, Bone * >::type BoneListByName
Lookup by bone name.
bool mManualBonesDirty
Manual bones dirty?
AnimationList mAnimationsList
vector< ushort >::type BoneHandleMap
Map to translate bone handle from one skeleton to another skeleton.
vector< Bone * >::type BoneList
unsigned short mNextAutoHandle
Bone automatic handles.
Animations are applied by calculating a weighted cumulative total.
Class encapsulating a standard 4x4 homogeneous matrix.
SkeletonAnimationBlendMode
Animations are applied by calculating a weighted average of all animations.
set< Bone * >::type BoneSet
Defines a generic resource handler.
LinkedSkeletonAnimationSource(const String &skelName, Real scl, SkeletonPtr skelPtr)
map< String, Animation * >::type AnimationList
Storage of animations, lookup by name.
Link to another skeleton to share animations.
virtual bool hasManualBones(void) const
Are there any manually controlled bones?
Class encapsulating a set of AnimationState objects.
LinkedSkeletonAnimationSource(const String &skelName, Real scl)
Abstract class representing a loadable resource (e.g.
A collection of Bone objects used to animate a skinned mesh.
BoneSet mManualBones
Manual bones.
A SkeletonInstance is a single instance of a Skeleton used by a world object.
BoneList mBoneList
Storage of bones, indexed by bone handle.
float Real
Software floating point type.
virtual bool getManualBonesDirty(void) const
Have manual bones been modified since the skeleton was last updated?
SharedPtr< Skeleton > SkeletonPtr
SkeletonAnimationBlendMode mBlendState
Interface describing a manual resource loader.
Concrete IteratorWrapper for const access to the underlying container.
An animation container interface, which allows generic access to sibling animations.
Copyright © 2012 Torus Knot Software Ltd

This work is licensed under a Creative Commons Attribution-ShareAlike 3.0 Unported License.