Main Page Namespace List Class Hierarchy Alphabetical List Compound List File List Namespace Members Compound Members File Members Related Pages

# Ogre::Skeleton Class Reference

A collection of Bone objects used to animate a skinned mesh. More...

`#include <OgreSkeleton.h>`

Inheritance diagram for Ogre::Skeleton:

[legend]
List of all members.

## Public Types

typedef std::vector< Bone * > | BoneList
typedef VectorIterator< BoneList > | BoneIterator

## Public Methods

| Skeleton (const String &name)
| Constructor, don't call directly, use SkeletonManager.
virtual | ~Skeleton ()
virtual void | load (void)
| Generic load - called by SkeletonManager.
virtual void | unload (void)
| Generic unload - called by SkeletonManager.
virtual Bone * | createBone (void)
| Creates a brand new Bone owned by this Skeleton.
virtual Bone * | createBone (unsigned short handle)
| Creates a brand new Bone owned by this Skeleton.
virtual Bone * | createBone (const String &name)
| Creates a brand new Bone owned by this Skeleton.
virtual Bone * | createBone (const String &name, unsigned short handle)
| Creates a brand new Bone owned by this Skeleton.
virtual unsigned short | getNumBones (void) const
| Returns the number of bones in this skeleton.
virtual Bone * | getRootBone (void) const
| Gets the root bone of the skeleton: deprecated in favour of getRootBoneIterator.
virtual BoneIterator | getRootBoneIterator (void)
| Get an iterator over the root bones in the skeleton, ie those with no parents.
virtual BoneIterator | getBoneIterator (void)
| Get an iterator over all the bones in the skeleton.
virtual Bone * | getBone (unsigned short handle) const
| Gets a bone by it's handle.
virtual Bone * | getBone (const String &name) const
| Gets a bone by it's name.
virtual void | setBindingPose (void)
| Sets the current position / orientation to be the 'binding pose' ie the layout in which bones were originally bound to a mesh.
virtual void | reset (bool resetManualBones=false)
| Resets the position and orientation of all bones in this skeleton to their original binding position.
virtual Animation * | createAnimation (const String &name, Real length)
| Creates a new Animation object for animating this skeleton.
virtual Animation * | getAnimation (const String &name) const
| Returns the named Animation object.
virtual void | removeAnimation (const String &name)
| Removes an Animation from this skeleton.
virtual void | setAnimationState (const AnimationStateSet &animSet)
| Changes the state of the skeleton to reflect the application of the passed in collection of animations.
virtual const AnimationStateSet & | getAnimationState (void) const
| Gets the last animation state of this skeleton.
virtual void | _initAnimationState (AnimationStateSet *animSet)
| Initialise an animation set suitable for use with this mesh.
virtual void | _getBoneMatrices (Matrix4 *pMatrices)
| Populates the passed in array with the bone matrices based on the current position.
virtual unsigned short | getNumAnimations (void) const
| Gets the number of animations on this skeleton.
virtual Animation * | getAnimation (unsigned short index) const
| Gets a single animation by index.
virtual SkeletonAnimationBlendMode | getBlendMode ()
| Gets the animation blending mode which this skeleton will use.
virtual void | setBlendMode (SkeletonAnimationBlendMode state)
| Sets the animation blending mode this skeleton will use.
virtual void | _updateTransforms (void)
| Updates all the derived transforms in the skeleton.
virtual size_t | getSize (void) const
| Retrieves info about the size of the resource.
virtual void | touch (void)
| 'Touches' the resource to indicate it has been used.
time_t | getLastAccess (void) const
| Gets the last time the resource was 'touched'.
const String & | getName (void) const
| Gets resource name.
ResourceHandle | getHandle (void) const
bool | isLoaded (void) const
| Returns true if the Resource has been loaded, false otherwise.
virtual void | destroy ()
| A method to make the resource delete itself.

## Protected Types

typedef std::map< String, Bone * > | BoneListByName
| Lookup by bone name.
typedef std::map< String, Animation * > | AnimationList
| Storage of animations, lookup by name.

## Protected Methods

void | deriveRootBone (void) const
| Internal method which parses the bones to derive the root bone.
void | _dumpContents (const String &filename)
| Debugging method.

## Protected Attributes

SkeletonAnimationBlendMode | mBlendState
BoneList | mBoneList
| Storage of bones, indexed by bone handle.
BoneListByName | mBoneListByName
BoneList | mRootBones
| Pointer to root bones (can now have multiple roots).
unsigned short | mNextAutoHandle
| Bone automatic handles.
AnimationList | mAnimationsList
AnimationStateSet | mLastAnimationState
| Saved version of last animation.
String | mName
ResourceHandle | mHandle
bool | mIsLoaded
time_t | mLastAccess
size_t | mSize

## Friends

class | SkeletonInstance

## Detailed Description

A collection of Bone objects used to animate a skinned mesh.

Remarks:
  Skeletal animation works by having a collection of 'bones' which are actually just joints with a position and orientation, arranged in a tree structure. For example, the wrist joint is a child of the elbow joint, which in turn is a child of the shoulder joint. Rotating the shoulder automatically moves the elbow and wrist as well due to this hierarchy.

  So how does this animate a mesh? Well every vertex in a mesh is assigned to one or more bones which affects it's position when the bone is moved. If a vertex is assigned to more than one bone, then weights must be assigned to determine how much each bone affects the vertex (actually a weight of 1.0 is used for single bone assignments). Weighted vertex assignments are especially useful around the joints themselves to avoid 'pinching' of the mesh in this region.

  Therefore by moving the skeleton using preset animations, we can animate the mesh. The advantage of using skeletal animation is that you store less animation data, especially as vertex counts increase. In addition, you are able to blend multiple animations together (e.g. walking and looking around, running and shooting) and provide smooth transitions between animations without incurring as much of an overhead as would be involved if you did this on the core vertex data.

  Skeleton definitions are loaded from datafiles, namely the .skeleton file format. They are loaded on demand, especially when referenced by a Mesh.

Definition at line 72 of file OgreSkeleton.h.

## Member Typedef Documentation

typedef std::map<String, Animation*> Ogre::Skeleton::AnimationList`[protected]`

| Storage of animations, lookup by name. Definition at line 273 of file OgreSkeleton.h.

typedef VectorIterator<BoneList> Ogre::Skeleton::BoneIterator

| Definition at line 170 of file OgreSkeleton.h. Referenced by getBoneIterator(), getRootBoneIterator(), and Ogre::SkeletonInstance::load().

typedef std::vector<Bone*> Ogre::Skeleton::BoneList

| Definition at line 169 of file OgreSkeleton.h.

typedef std::map<String, Bone*> Ogre::Skeleton::BoneListByName`[protected]`

| Lookup by bone name. Definition at line 262 of file OgreSkeleton.h.

## Constructor & Destructor Documentation

Ogre::Skeleton::Skeleton | ( | const String & | name | ) |

Constructor, don't call directly, use SkeletonManager.

Remarks:
  On creation, a Skeleton has a no bones, you should create them and link them together appropriately. Unless you state otherwise by attaching it to a higher bone, the first bone you create is deemed to be the root bone.

Definition at line 43 of file OgreSkeleton.cpp.

References Ogre::ANIMBLEND_AVERAGE, mBlendState, Ogre::Resource::mName, mNextAutoHandle, and Ogre::String.

Ogre::Skeleton::~Skeleton | ( |  | ) | `[virtual]`

| Definition at line 55 of file OgreSkeleton.cpp. References unload().

## Member Function Documentation

void Ogre::Skeleton::_dumpContents | ( | const String & | filename | ) | `[protected]`

Debugging method.

Definition at line 455 of file OgreSkeleton.cpp.

References Ogre::AnimationTrack::getAssociatedNode(), Ogre::Bone::getHandle(), Ogre::AnimationTrack::getKeyFrame(), Ogre::Animation::getLength(), Ogre::Animation::getName(), Ogre::AnimationTrack::getNumKeyFrames(), Ogre::Animation::getNumTracks(), Ogre::Node::getOrientation(), Ogre::Node::getPosition(), Ogre::KeyFrame::getRotation(), Ogre::KeyFrame::getTime(), Ogre::Animation::getTrack(), Ogre::KeyFrame::getTranslate(), mAnimationsList, mBoneList, Ogre::Resource::mName, Ogre::of, Ogre::String, Ogre::Quaternion::ToAngleAxis(), and Ogre::Radian::valueRadians().

void Ogre::Skeleton::_getBoneMatrices | ( | Matrix4 * | pMatrices | ) | `[virtual]`

Populates the passed in array with the bone matrices based on the current position.

Remarks:
  Internal use only. The array pointed to by the passed in pointer must be at least as large as the number of bones. Assumes animation has already been updated.

Definition at line 364 of file OgreSkeleton.cpp.

References Ogre::Bone::_getBindingPoseInverseTransform(), Ogre::Node::_getFullTransform(), _updateTransforms(), and mBoneList.

Referenced by Ogre::Entity::cacheBoneMatrices().

void Ogre::Skeleton::_initAnimationState | ( | AnimationStateSet * | animSet | ) | `[virtual]`

Initialise an animation set suitable for use with this mesh.

Remarks:
  Only recommended for use inside the engine, not by applications.

Definition at line 345 of file OgreSkeleton.cpp.

References Ogre::AnimationStateSet, Ogre::Animation::getLength(), Ogre::Animation::getName(), mAnimationsList, and Ogre::String.

Referenced by Ogre::Mesh::_initAnimationState().

void Ogre::Skeleton::_updateTransforms | ( | void |  | ) | `[virtual]`

| Updates all the derived transforms in the skeleton. Definition at line 546 of file OgreSkeleton.cpp. References mRootBones. Referenced by _getBoneMatrices(), and setBindingPose().

Animation * Ogre::Skeleton::createAnimation | ( | const String & | name,
|  | Real | length
| ) | `[virtual]`

Creates a new Animation object for animating this skeleton.

Parameters:

  name | The name of this animation
  length | The length of the animation in seconds

Reimplemented in Ogre::SkeletonInstance.

Definition at line 288 of file OgreSkeleton.cpp.

References Except, mAnimationsList, mLastAnimationState, Ogre::Real, and Ogre::String.

Referenced by Ogre::SkeletonInstance::createAnimation(), and Ogre::SkeletonSerializer::readAnimation().

Bone * Ogre::Skeleton::createBone | ( | const String & | name,
|  | unsigned short | handle
| ) | `[virtual]`

Creates a brand new Bone owned by this Skeleton.

Remarks:
  This method creates an unattached new Bone for this skeleton and assigns it a specific name and handle. Unless this is to be the root bone (there must only be one of these), you must attach it to another Bone in the skeleton using addChild for it to be any use. For this reason you will likely be better off creating child bones using the Bone::createChild method instead, once you have created the root bone.

Parameters:

  name | The name to give to this new bone - must be unique within this skeleton.
  handle | The handle to give to this new bone - must be unique within this skeleton.

Definition at line 163 of file OgreSkeleton.cpp.

References Except, mBoneList, mBoneListByName, OGRE_MAX_NUM_BONES, and Ogre::String.

Bone * Ogre::Skeleton::createBone | ( | const String & | name | ) | `[virtual]`

Creates a brand new Bone owned by this Skeleton.

Remarks:
  This method creates an unattached new Bone for this skeleton and assigns it a specific name. Unless this is to be the root bone (there must only be one of these), you must attach it to another Bone in the skeleton using addChild for it to be any use. For this reason you will likely be better off creating child bones using the Bone::createChild method instead, once you have created the root bone.

Parameters:

  name | The name to give to this new bone - must be unique within this skeleton. Note that the way OGRE looks up bones is via a numeric handle, so if you name a Bone this way it will be given an automatic sequential handle. The name is just for your convenience, although it is recommended that you only use the handle to retrieve the bone in performance-critical code.

Definition at line 131 of file OgreSkeleton.cpp.

References createBone(), mNextAutoHandle, and Ogre::String.

Bone * Ogre::Skeleton::createBone | ( | unsigned short | handle | ) | `[virtual]`

Creates a brand new Bone owned by this Skeleton.

Remarks:
  This method creates an unattached new Bone for this skeleton and assigns it a specific handle. Unless this is to be the root bone (there must only be one of these), you must attach it to another Bone in the skeleton using addChild for it to be any use. For this reason you will likely be better off creating child bones using the Bone::createChild method instead, once you have created the root bone.

Parameters:

  handle | The handle to give to this new bone - must be unique within this skeleton. You should also ensure that all bone handles are eventually contiguous (this is to simplify their compilation into an indexed array of transformation matrices). For this reason it is advised that you use the simpler createBone method which automatically assigns a sequential handle starting from 0.

Definition at line 136 of file OgreSkeleton.cpp.

References Except, Ogre::Node::getName(), mBoneList, mBoneListByName, and OGRE_MAX_NUM_BONES.

Bone * Ogre::Skeleton::createBone | ( | void |  | ) | `[virtual]`

Creates a brand new Bone owned by this Skeleton.

Remarks:
  This method creates an unattached new Bone for this skeleton. Unless this is to be the root bone (there must only be one of these), you must attach it to another Bone in the skeleton using addChild for it to be any use. For this reason you will likely be better off creating child bones using the Bone::createChild method instead, once you have created the root bone.

  Note that this method automatically generates a handle for the bone, which you can retrieve using Bone::getHandle. If you wish the new Bone to have a specific handle, use the alternate form of this method which takes a handle as a parameter, although you should note the restrictions.

Definition at line 125 of file OgreSkeleton.cpp.

References mNextAutoHandle.

Referenced by Ogre::SkeletonInstance::cloneBoneAndChildren(), createBone(), Ogre::Bone::createChild(), Ogre::Bone::createChildImpl(), and Ogre::SkeletonSerializer::readBone().

void Ogre::Skeleton::deriveRootBone | ( | void |  | ) | const`[protected]`

Internal method which parses the bones to derive the root bone.

Remarks:
  Must be const because called in getRootBone but mRootBone is mutable since lazy-updated.

Definition at line 430 of file OgreSkeleton.cpp.

References Except, Ogre::Node::getParent(), mBoneList, and mRootBones.

Referenced by getRootBone(), and getRootBoneIterator().

virtual void Ogre::Resource::destroy | ( | void |  | ) | `[virtual, inherited]`

A method to make the resource delete itself.

Note:
  This exists because Resource objects could be created in other processes, and they need to be destroyed in the process that created them.

Definition at line 137 of file OgreResource.h.

Animation * Ogre::Skeleton::getAnimation | ( | unsigned short | index | ) | const`[virtual]`

| Gets a single animation by index. Reimplemented in Ogre::SkeletonInstance. Definition at line 397 of file OgreSkeleton.cpp. References mAnimationsList.

Animation * Ogre::Skeleton::getAnimation | ( | const String & | name | ) | const`[virtual]`

| Returns the named Animation object. Reimplemented in Ogre::SkeletonInstance. Definition at line 311 of file OgreSkeleton.cpp. References Except, mAnimationsList, and Ogre::String. Referenced by Ogre::SkeletonSerializer::exportSkeleton(), Ogre::SkeletonInstance::getAnimation(), and setAnimationState().

const AnimationStateSet & Ogre::Skeleton::getAnimationState | ( | void |  | ) | const`[virtual]`

| Gets the last animation state of this skeleton. Definition at line 340 of file OgreSkeleton.cpp. References Ogre::AnimationStateSet, and mLastAnimationState.

SkeletonAnimationBlendMode Ogre::Skeleton::getBlendMode | ( |  | ) | `[virtual]`

| Gets the animation blending mode which this skeleton will use. Definition at line 522 of file OgreSkeleton.cpp. References mBlendState, and Ogre::SkeletonAnimationBlendMode.

Bone * Ogre::Skeleton::getBone | ( | const String & | name | ) | const`[virtual]`

| Gets a bone by it's name. Definition at line 416 of file OgreSkeleton.cpp. References Except, mBoneListByName, and Ogre::String.

Bone * Ogre::Skeleton::getBone | ( | unsigned short | handle | ) | const`[virtual]`

| Gets a bone by it's handle. Definition at line 410 of file OgreSkeleton.cpp. References mBoneList. Referenced by Ogre::Entity::_updateRenderQueue(), Ogre::Animation::apply(), Ogre::Entity::attachObjectToBone(), Ogre::SkeletonSerializer::readAnimationTrack(), Ogre::SkeletonSerializer::readBoneParent(), and Ogre::SkeletonSerializer::writeSkeleton().

Skeleton::BoneIterator Ogre::Skeleton::getBoneIterator | ( | void |  | ) | `[virtual]`

| Get an iterator over all the bones in the skeleton. Definition at line 541 of file OgreSkeleton.cpp. References BoneIterator, and mBoneList.

ResourceHandle Ogre::Resource::getHandle | ( | void |  | ) | const`[inherited]`

| Definition at line 120 of file OgreResource.h. References Ogre::ResourceHandle. Referenced by Ogre::Material::clone(), Ogre::BspLevel::loadQuake3Level(), and Ogre::ResourceManager::unload().

time_t Ogre::Resource::getLastAccess | ( | void |  | ) | const`[inherited]`

| Gets the last time the resource was 'touched'. Definition at line 108 of file OgreResource.h.

const String& Ogre::Resource::getName | ( | void |  | ) | const`[inherited]`

Gets resource name.

Reimplemented in Ogre::Material, and Ogre::Overlay.

Definition at line 115 of file OgreResource.h.

References Ogre::String.

Referenced by Ogre::D3D9Texture::_loadCubeTex(), Ogre::Mesh::_notifySkeleton(), Ogre::ResourceManager::add(), Ogre::PopupMenuGuiElement::addListItem(), Ogre::ListGuiElement::addListItem(), Ogre::PopupMenuGuiElement::addMenuItem(), Ogre::MeshManager::createPrefabPlane(), Ogre::TTYGuiElement::getFontName(), Ogre::TextAreaGuiElement::getFontName(), Ogre::PopupMenuGuiElement::getListItemName(), Ogre::ListGuiElement::getListItemName(), Ogre::GpuProgramUsage::getProgramName(), Ogre::MeshSerializer::importMesh(), Ogre::GLTexture::load(), Ogre::TextureManager::loadImage(), Ogre::TextureManager::loadRawData(), Ogre::FontManager::logBadAttrib(), Ogre::MeshSerializerImpl::readMeshLodInfo(), Ogre::MeshSerializerImpl::readMeshLodUsageGenerated(), Ogre::MeshSerializerImpl::readMeshLodUsageManual(), Ogre::PopupMenuGuiElement::removeListItem(), Ogre::ListGuiElement::removeListItem(), Ogre::SceneManager::setSkyBox(), Ogre::SceneManager::setSkyDome(), and Ogre::ResourceManager::unload().

unsigned short Ogre::Skeleton::getNumAnimations | ( | void |  | ) | const`[virtual]`

| Gets the number of animations on this skeleton. Reimplemented in Ogre::SkeletonInstance. Definition at line 392 of file OgreSkeleton.cpp. References mAnimationsList. Referenced by Ogre::SkeletonSerializer::exportSkeleton(), and Ogre::SkeletonInstance::getNumAnimations().

unsigned short Ogre::Skeleton::getNumBones | ( | void |  | ) | const`[virtual]`

| Returns the number of bones in this skeleton. Definition at line 359 of file OgreSkeleton.cpp. References mBoneList. Referenced by Ogre::Entity::_updateRenderQueue(), Ogre::Entity::cacheBoneMatrices(), Ogre::Entity::Entity(), and Ogre::SkeletonSerializer::writeSkeleton().

Bone * Ogre::Skeleton::getRootBone | ( | void |  | ) | const`[virtual]`

Gets the root bone of the skeleton: deprecated in favour of getRootBoneIterator.

Remarks:
  The system derives the root bone the first time you ask for it. The root bone is the only bone in the skeleton which has no parent. The system locates it by taking the first bone in the list and going up the bone tree until there are no more parents, and saves this top bone as the root. If you are building the skeleton manually using createBone then you must ensure there is only one bone which is not a child of another bone, otherwise your skeleton will not work properly. If you use createBone only once, and then use Bone::createChild from then on, then inherently the first bone you create will by default be the root.

Definition at line 199 of file OgreSkeleton.cpp.

References deriveRootBone(), and mRootBones.

Skeleton::BoneIterator Ogre::Skeleton::getRootBoneIterator | ( | void |  | ) | `[virtual]`

| Get an iterator over the root bones in the skeleton, ie those with no parents. Definition at line 532 of file OgreSkeleton.cpp. References BoneIterator, deriveRootBone(), and mRootBones. Referenced by Ogre::SkeletonInstance::load().

virtual size_t Ogre::Resource::getSize | ( | void |  | ) | const`[virtual, inherited]`

| Retrieves info about the size of the resource. Definition at line 93 of file OgreResource.h. Referenced by Ogre::ResourceManager::unload().

bool Ogre::Resource::isLoaded | ( | void |  | ) | const`[inherited]`

| Returns true if the Resource has been loaded, false otherwise. Definition at line 127 of file OgreResource.h. Referenced by Ogre::GpuProgramUsage::_load(), Ogre::SceneManager::deriveShadowCasterPass(), Ogre::SceneManager::deriveShadowReceiverPass(), Ogre::Technique::isLoaded(), Ogre::D3D9Texture::load(), Ogre::D3D9Texture::unload(), and Ogre::D3D9Texture::~D3D9Texture().

void Ogre::Skeleton::load | ( | void |  | ) | `[virtual]`

| Generic load - called by SkeletonManager. Implements Ogre::Resource. Reimplemented in Ogre::SkeletonInstance. Definition at line 60 of file OgreSkeleton.cpp. References Ogre::DataChunk::clear(), Except, Ogre::SkeletonSerializer::importSkeleton(), Ogre::Resource::mIsLoaded, Ogre::Resource::mName, Ogre::String, and unload(). Referenced by Ogre::Mesh::setSkeletonName().

void Ogre::Skeleton::removeAnimation | ( | const String & | name | ) | `[virtual]`

| Removes an Animation from this skeleton. Reimplemented in Ogre::SkeletonInstance. Definition at line 324 of file OgreSkeleton.cpp. References Except, mAnimationsList, and Ogre::String. Referenced by Ogre::SkeletonInstance::removeAnimation().

void Ogre::Skeleton::reset | ( | bool | resetManualBones = false | ) | `[virtual]`

Resets the position and orientation of all bones in this skeleton to their original binding position.

Remarks:
  A skeleton is bound to a mesh in a binding pose. Bone positions are then modified from this position during animation. This method returns all the bones to their original position and orientation.

Parameters:

  resetManualBones | If set to true, causes the state of manual bones to be reset too, which is normally not done to allow the manual state to persist even when keyframe animation is applied.

Definition at line 278 of file OgreSkeleton.cpp.

References mBoneList.

Referenced by setAnimationState().

void Ogre::Skeleton::setAnimationState | ( | const AnimationStateSet & | animSet | ) | `[virtual]`

Changes the state of the skeleton to reflect the application of the passed in collection of animations.

Remarks:
  Animating a skeleton involves both interpolating between keyframes of a specific animation, and blending between the animations themselves. Calling this method sets the state of the skeleton so that it reflects the combination of all the passed in animations, at the time index specified for each, using the weights specified. Note that the weights between animations do not have to sum to 1.0, because some animations may affect only subsets of the skeleton. If the weights exceed 1.0 for the same area of the skeleton, the movement will just be exaggerated.

Parameters:

Definition at line 209 of file OgreSkeleton.cpp.

References Ogre::AnimationStateSet, Ogre::ANIMBLEND_CUMULATIVE, Ogre::Animation::apply(), getAnimation(), Ogre::AnimationState::getAnimationName(), Ogre::AnimationState::getEnabled(), Ogre::AnimationState::getTimePosition(), Ogre::AnimationState::getWeight(), mBlendState, mLastAnimationState, and reset().

Referenced by Ogre::Entity::cacheBoneMatrices().

void Ogre::Skeleton::setBindingPose | ( | void |  | ) | `[virtual]`

| Sets the current position / orientation to be the 'binding pose' ie the layout in which bones were originally bound to a mesh. Definition at line 265 of file OgreSkeleton.cpp. References _updateTransforms(), and mBoneList. Referenced by Ogre::SkeletonSerializer::importSkeleton(), and Ogre::SkeletonInstance::load().

void Ogre::Skeleton::setBlendMode | ( | SkeletonAnimationBlendMode | state | ) | `[virtual]`

| Sets the animation blending mode this skeleton will use. Definition at line 527 of file OgreSkeleton.cpp. References mBlendState, and Ogre::SkeletonAnimationBlendMode.

virtual void Ogre::Resource::touch | ( | void |  | ) | `[virtual, inherited]`

| 'Touches' the resource to indicate it has been used. Reimplemented in Ogre::Material. Definition at line 100 of file OgreResource.h. Referenced by Ogre::Mesh::clone(), Ogre::MeshManager::createCurvedIllusionPlane(), Ogre::MeshManager::createCurvedPlane(), Ogre::MeshManager::createPlane(), and Ogre::ResourceManager::load().

void Ogre::Skeleton::unload | ( | void |  | ) | `[virtual]`

| Generic unload - called by SkeletonManager. Reimplemented from Ogre::Resource. Reimplemented in Ogre::SkeletonInstance. Definition at line 101 of file OgreSkeleton.cpp. References mAnimationsList, mBoneList, mBoneListByName, and Ogre::Resource::mIsLoaded. Referenced by load(), and ~Skeleton().

## Friends And Related Function Documentation

friend class SkeletonInstance`[friend]`

| Definition at line 74 of file OgreSkeleton.h.

## Member Data Documentation

AnimationList Ogre::Skeleton::mAnimationsList`[protected]`

| Definition at line 274 of file OgreSkeleton.h. Referenced by _dumpContents(), _initAnimationState(), createAnimation(), getAnimation(), getNumAnimations(), removeAnimation(), and unload().

SkeletonAnimationBlendMode Ogre::Skeleton::mBlendState`[protected]`

| Definition at line 258 of file OgreSkeleton.h. Referenced by getBlendMode(), Ogre::SkeletonInstance::load(), setAnimationState(), setBlendMode(), and Skeleton().

BoneList Ogre::Skeleton::mBoneList`[protected]`

| Storage of bones, indexed by bone handle. Definition at line 260 of file OgreSkeleton.h. Referenced by _dumpContents(), _getBoneMatrices(), createBone(), deriveRootBone(), getBone(), getBoneIterator(), getNumBones(), reset(), setBindingPose(), and unload().

BoneListByName Ogre::Skeleton::mBoneListByName`[protected]`

| Definition at line 263 of file OgreSkeleton.h. Referenced by createBone(), getBone(), and unload().

ResourceHandle Ogre::Resource::mHandle`[protected, inherited]`

| Definition at line 57 of file OgreResource.h. Referenced by Ogre::ResourceManager::add(), Ogre::Material::clone(), Ogre::Material::copyDetailsTo(), and Ogre::Material::operator=().

bool Ogre::Resource::mIsLoaded`[protected, inherited]`

Definition at line 58 of file OgreResource.h.

Referenced by Ogre::D3D9Texture::_initMembers(), Ogre::D3D9Texture::_loadCubeTex(), Ogre::D3D9Texture::_loadNormTex(), Ogre::D3D9Texture::_loadVolumeTex(), Ogre::Material::_notifyNeedsRecompile(), Ogre::Material::clone(), Ogre::D3DTexture::createSurface2D(), Ogre::D3DTexture::createSurface3D(), Ogre::D3D9Texture::D3D9Texture(), Ogre::D3DTexture::D3DTexture(), Ogre::DynLib::DynLib(), Ogre::Zip::load(), Ogre::SkeletonInstance::load(), load(), Ogre::PatchMesh::load(), Ogre::Mesh::load(), Ogre::Material::load(), Ogre::HighLevelGpuProgram::load(), Ogre::GpuProgram::load(), Ogre::GLTexture::load(), Ogre::GLSLGpuProgram::load(), Ogre::Font::load(), Ogre::DynLib::load(), Ogre::D3D9Texture::load(), Ogre::D3D9GpuProgram::load(), Ogre::D3DTexture::load(), Ogre::BspLevel::load(), Ogre::D3D9Texture::loadImage(), Ogre::D3DTexture::loadImage(), Ogre::D3DTexture::loadImage3D(), Ogre::GLTexture::loadImages(), Ogre::Material::Material(), Ogre::Material::operator=(), unload(), Ogre::Mesh::unload(), Ogre::Material::unload(), Ogre::HighLevelGpuProgram::unload(), Ogre::GLTexture::unload(), Ogre::Font::unload(), Ogre::DynLib::unload(), Ogre::D3D9Texture::unload(), Ogre::D3DTexture::unload(), and Ogre::BspLevel::~BspLevel().

time_t Ogre::Resource::mLastAccess`[protected, inherited]`

| Definition at line 59 of file OgreResource.h. Referenced by Ogre::Material::operator=().

AnimationStateSet Ogre::Skeleton::mLastAnimationState`[protected]`

| Saved version of last animation. Definition at line 278 of file OgreSkeleton.h. Referenced by createAnimation(), getAnimationState(), and setAnimationState().

String Ogre::Resource::mName`[protected, inherited]`

Definition at line 56 of file OgreResource.h.

Referenced by _dumpContents(), Ogre::Mesh::_rationaliseBoneAssignments(), Ogre::GLSLProgram::attachToProgramObject(), Ogre::BspLevel::BspLevel(), Ogre::Mesh::buildEdgeList(), Ogre::Mesh::buildTangentVectors(), Ogre::Material::clone(), Ogre::Material::compile(), Ogre::GLSLProgram::compile(), Ogre::Material::copyDetailsTo(), Ogre::Quake3Shader::createAsMaterial(), Ogre::D3D9HLSLProgram::createLowLevelImpl(), Ogre::CgProgram::createLowLevelImpl(), Ogre::Font::createTextureFromFont(), Ogre::D3D9Texture::D3D9Texture(), Ogre::D3DTexture::D3DTexture(), Ogre::DynLib::DynLib(), Ogre::Font::Font(), Ogre::Mesh::generateLodLevels(), Ogre::Material::getBestTechnique(), Ogre::Overlay::getName(), Ogre::Material::getName(), Ogre::GLTexture::GLTexture(), Ogre::GpuProgram::GpuProgram(), Ogre::Zip::load(), load(), Ogre::Mesh::load(), Ogre::GLTexture::load(), Ogre::Font::load(), Ogre::DynLib::load(), Ogre::D3DTexture::load(), Ogre::BspLevel::load(), Ogre::D3D9GpuFragmentProgram::loadFromMicrocode(), Ogre::D3D9GpuVertexProgram::loadFromMicrocode(), Ogre::GLSLProgram::loadFromSource(), Ogre::GLArbGpuProgram::loadFromSource(), Ogre::D3D9HLSLProgram::loadFromSource(), Ogre::D3D9GpuProgram::loadFromSource(), Ogre::CgProgram::loadFromSource(), Ogre::GLTexture::loadImages(), Ogre::Material::Material(), Ogre::Mesh::Mesh(), Ogre::Material::operator=(), Ogre::Overlay::Overlay(), Ogre::Quake3Shader::Quake3Shader(), Ogre::CgProgram::selectProfile(), Ogre::Mesh::setSkeletonName(), Skeleton(), Ogre::StringResource::StringResource(), Ogre::Texture::Texture(), Ogre::Zip::unload(), Ogre::DynLib::unload(), Ogre::CgProgram::unloadImpl(), and Ogre::Zip::Zip().

unsigned short Ogre::Skeleton::mNextAutoHandle`[protected]`

| Bone automatic handles. Definition at line 269 of file OgreSkeleton.h. Referenced by createBone(), Ogre::SkeletonInstance::load(), and Skeleton().

BoneList Ogre::Skeleton::mRootBones`[protected]`

| Pointer to root bones (can now have multiple roots). Definition at line 267 of file OgreSkeleton.h. Referenced by _updateTransforms(), Ogre::SkeletonInstance::cloneBoneAndChildren(), deriveRootBone(), getRootBone(), and getRootBoneIterator().

size_t Ogre::Resource::mSize`[protected, inherited]`

| Definition at line 60 of file OgreResource.h. Referenced by Ogre::D3D9Texture::_setFinalAttributes(), Ogre::D3DTexture::loadImage(), Ogre::D3DTexture::loadImage3D(), Ogre::GLTexture::loadImages(), and Ogre::Material::operator=().

The documentation for this class was generated from the following files:

- OgreSkeleton.h
- OgreSkeleton.cpp

Copyright © 2002-2003 by The OGRE Team
Last modified Sun Nov 28 19:51:39 2004