All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Macros Groups Pages
Public Member Functions | Protected Member Functions | Protected Attributes | List of all members
gazebo::common::Skeleton Class Reference

A skeleton. More...

#include <Skeleton.hh>

Public Member Functions

 Skeleton ()
 Constructor.
 
 Skeleton (SkeletonNode *_root)
 Constructor.
 
virtual ~Skeleton ()
 Destructor.
 
void AddAnimation (SkeletonAnimation *_anim)
 Add an animation.
 
void AddVertNodeWeight (unsigned int _vertex, std::string _node, double _weight)
 Add a new weight to a node (bone)
 
SkeletonAnimationGetAnimation (const unsigned int _i)
 Find animation.
 
math::Matrix4 GetBindShapeTransform ()
 Return bind pose skeletal transform.
 
SkeletonNodeGetNodeByHandle (unsigned int _handle)
 Find or create node with handle.
 
SkeletonNodeGetNodeById (std::string _id)
 Find node by index.
 
SkeletonNodeGetNodeByName (std::string _name)
 Find a node.
 
NodeMap GetNodes ()
 Get a copy or the node dictionary.
 
unsigned int GetNumAnimations ()
 Returns the number of animations.
 
unsigned int GetNumJoints ()
 Returns the number of joints.
 
unsigned int GetNumNodes ()
 Returns the node count.
 
unsigned int GetNumVertNodeWeights (unsigned int _vertex)
 Returns the number of bone weights for a vertex.
 
SkeletonNodeGetRootNode ()
 Return the root.
 
std::pair< std::string, double > GetVertNodeWeight (unsigned int _v, unsigned int _i)
 Weight of a bone for a vertex.
 
void PrintTransforms ()
 Outputs the transforms to std::err stream.
 
void Scale (double _scale)
 Scale all nodes, transforms and animation data.
 
void SetBindShapeTransform (math::Matrix4 _trans)
 Set the bind pose skeletal transform.
 
void SetNumVertAttached (unsigned int _vertices)
 Resizes the raw node weight array.
 
void SetRootNode (SkeletonNode *_node)
 Change the root node.
 

Protected Member Functions

void BuildNodeMap ()
 Initializes the hande numbers for each node in the map using breath first traversal.
 

Protected Attributes

std::vector< SkeletonAnimation * > anims
 the array of animations
 
math::Matrix4 bindShapeTransform
 the bind pose skeletal transform
 
NodeMap nodes
 The dictionary of nodes, indexed by name.
 
RawNodeWeights rawNW
 the node weight table
 
SkeletonNoderoot
 the root node
 

Detailed Description

A skeleton.

Constructor & Destructor Documentation

gazebo::common::Skeleton::Skeleton ( )

Constructor.

gazebo::common::Skeleton::Skeleton ( SkeletonNode _root)

Constructor.

Parameters
[in]_rootnode
virtual gazebo::common::Skeleton::~Skeleton ( )
virtual

Destructor.

Member Function Documentation

void gazebo::common::Skeleton::AddAnimation ( SkeletonAnimation _anim)

Add an animation.

The skeleton does not take ownership of the animation

Parameters
_animthe animation
void gazebo::common::Skeleton::AddVertNodeWeight ( unsigned int  _vertex,
std::string  _node,
double  _weight 
)

Add a new weight to a node (bone)

Parameters
[in]_vertexindex of the vertex
[in]_nodename of the bone
[in]_weightthe new weight (range 0 to 1)
void gazebo::common::Skeleton::BuildNodeMap ( )
protected

Initializes the hande numbers for each node in the map using breath first traversal.

SkeletonAnimation* gazebo::common::Skeleton::GetAnimation ( const unsigned int  _i)

Find animation.

Parameters
_ithe animation index
Returns
the animation, or NULL if _i is out of bounds
math::Matrix4 gazebo::common::Skeleton::GetBindShapeTransform ( )

Return bind pose skeletal transform.

Returns
a matrix
SkeletonNode* gazebo::common::Skeleton::GetNodeByHandle ( unsigned int  _handle)

Find or create node with handle.

Parameters
[in]_handle
Returns
the node. A new node is created if it didn't exist
SkeletonNode* gazebo::common::Skeleton::GetNodeById ( std::string  _id)

Find node by index.

Parameters
[in]_idthe index
Returns
the node, or NULL if not found
SkeletonNode* gazebo::common::Skeleton::GetNodeByName ( std::string  _name)

Find a node.

Parameters
[in]_namethe name of the node to look for
Returns
the node, or NULL if not found
NodeMap gazebo::common::Skeleton::GetNodes ( )

Get a copy or the node dictionary.

unsigned int gazebo::common::Skeleton::GetNumAnimations ( )

Returns the number of animations.

Returns
the count
unsigned int gazebo::common::Skeleton::GetNumJoints ( )

Returns the number of joints.

Returns
the count
unsigned int gazebo::common::Skeleton::GetNumNodes ( )

Returns the node count.

Returns
the count
unsigned int gazebo::common::Skeleton::GetNumVertNodeWeights ( unsigned int  _vertex)

Returns the number of bone weights for a vertex.

Parameters
[in]theindex of the vertex
Returns
the count
SkeletonNode* gazebo::common::Skeleton::GetRootNode ( )

Return the root.

Returns
the root
std::pair<std::string, double> gazebo::common::Skeleton::GetVertNodeWeight ( unsigned int  _v,
unsigned int  _i 
)

Weight of a bone for a vertex.

Parameters
[in]_vthe index of the vertex
[in]_ithe index of the weight for that vertex
Returns
a pair containing the name of the node and the weight
void gazebo::common::Skeleton::PrintTransforms ( )

Outputs the transforms to std::err stream.

void gazebo::common::Skeleton::Scale ( double  _scale)

Scale all nodes, transforms and animation data.

Parameters
[in]thescaling factor
void gazebo::common::Skeleton::SetBindShapeTransform ( math::Matrix4  _trans)

Set the bind pose skeletal transform.

Parameters
[in]_transthe transform
void gazebo::common::Skeleton::SetNumVertAttached ( unsigned int  _vertices)

Resizes the raw node weight array.

Parameters
[in]_verticesthe new size
void gazebo::common::Skeleton::SetRootNode ( SkeletonNode _node)

Change the root node.

Parameters
[in]_nodethe new node

Member Data Documentation

std::vector<SkeletonAnimation*> gazebo::common::Skeleton::anims
protected

the array of animations

math::Matrix4 gazebo::common::Skeleton::bindShapeTransform
protected

the bind pose skeletal transform

NodeMap gazebo::common::Skeleton::nodes
protected

The dictionary of nodes, indexed by name.

RawNodeWeights gazebo::common::Skeleton::rawNW
protected

the node weight table

SkeletonNode* gazebo::common::Skeleton::root
protected

the root node


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