NodeAnimation Class Reference

Node animation. More...

#include <common/common.hh>

Public Member Functions

 NodeAnimation (const std::string &_name)
 constructor More...
 
 ~NodeAnimation ()
 Destructor. It empties the key frames list. More...
 
void AddKeyFrame (const double _time, const ignition::math::Matrix4d &_trans)
 Adds a key frame at a specific time. More...
 
void AddKeyFrame (const double _time, const ignition::math::Pose3d &_pose)
 Adds a key frame at a specific time. More...
 
ignition::math::Matrix4d FrameAt (double _time, bool _loop=true) const
 Returns a frame transformation at a specific time if a node does not exist at that time (with tolerance of 1e-6 sec), the transformation is interpolated. More...
 
unsigned int GetFrameCount () const
 Returns the number of key frames. More...
 
void GetKeyFrame (const unsigned int _i, double &_time, ignition::math::Matrix4d &_trans) const
 Finds a key frame using the index. More...
 
double GetLength () const
 Returns the duration of the animations. More...
 
std::string GetName () const
 Returns the name. More...
 
double GetTimeAtX (const double _x) const
 Returns the time where a transformation's translational value along the X axis is equal to _x. More...
 
std::pair< double, ignition::math::Matrix4d > KeyFrame (const unsigned int _i) const
 Returns a key frame using the index. More...
 
void Scale (const double _scale)
 Scales each transformation in the key frames. More...
 
void SetName (const std::string &_name)
 Changes the name of the animation. More...
 

Protected Attributes

std::map< double, ignition::math::Matrix4d > keyFrames
 the dictionary of key frames, indexed by time More...
 
double length
 the duration of the animations (time of last key frame) More...
 
std::string name
 the name of the animation More...
 

Detailed Description

Node animation.

Constructor & Destructor Documentation

◆ NodeAnimation()

NodeAnimation ( const std::string &  _name)
explicit

constructor

Parameters
[in]_namethe name of the node

◆ ~NodeAnimation()

Destructor. It empties the key frames list.

Member Function Documentation

◆ AddKeyFrame() [1/2]

void AddKeyFrame ( const double  _time,
const ignition::math::Matrix4d &  _trans 
)

Adds a key frame at a specific time.

Parameters
[in]_timethe time of the key frame
[in]_transthe transformation

◆ AddKeyFrame() [2/2]

void AddKeyFrame ( const double  _time,
const ignition::math::Pose3d &  _pose 
)

Adds a key frame at a specific time.

Parameters
[in]_timethe time of the key frame
[in]_posethe pose

◆ FrameAt()

ignition::math::Matrix4d FrameAt ( double  _time,
bool  _loop = true 
) const

Returns a frame transformation at a specific time if a node does not exist at that time (with tolerance of 1e-6 sec), the transformation is interpolated.

Parameters
[in]_timethe time
[in]_loopwhen true, the time is divided by the duration (see GetLength)

◆ GetFrameCount()

unsigned int GetFrameCount ( ) const

Returns the number of key frames.

Returns
the count

◆ GetKeyFrame()

void GetKeyFrame ( const unsigned int  _i,
double &  _time,
ignition::math::Matrix4d &  _trans 
) const

Finds a key frame using the index.

Note the index of a key frame can change as frames are added.

Parameters
[in]_ithe index
[out]_timethe time of the frame, or -1 if the index id is out of bounds
[out]_transthe transformation for this key frame

◆ GetLength()

double GetLength ( ) const

Returns the duration of the animations.

Returns
the time of the last animation

◆ GetName()

std::string GetName ( ) const

Returns the name.

Returns
the name

◆ GetTimeAtX()

double GetTimeAtX ( const double  _x) const

Returns the time where a transformation's translational value along the X axis is equal to _x.

When no transformation is found (within a tolerance of 1e-6), the time is interpolated.

Parameters
[in]_xthe value along x. You must ensure that _x is within a valid range.

◆ KeyFrame()

std::pair<double, ignition::math::Matrix4d> KeyFrame ( const unsigned int  _i) const

Returns a key frame using the index.

Note the index of a key frame can change as frames are added.

Parameters
[in]_ithe index
Returns
a pair that contains the time and transformation. Time is -1 if the index is out of bounds

◆ Scale()

void Scale ( const double  _scale)

Scales each transformation in the key frames.

This only affects the translational values.

Parameters
[in]_scalethe scaling factor

◆ SetName()

void SetName ( const std::string &  _name)

Changes the name of the animation.

Parameters
[in]thenew name

Member Data Documentation

◆ keyFrames

std::map<double, ignition::math::Matrix4d> keyFrames
protected

the dictionary of key frames, indexed by time

◆ length

double length
protected

the duration of the animations (time of last key frame)

◆ name

std::string name
protected

the name of the animation


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