Crazy Eddie's GUI System  0.8.5
CEGUI::Affector Class Reference

Defines an 'affector' class. More...

+ Inheritance diagram for CEGUI::Affector:
+ Collaboration diagram for CEGUI::Affector:

Public Types

enum  ApplicationMethod { AM_Absolute, AM_Relative, AM_RelativeMultiply }
 enumerates the possible methods of application More...
 

Public Member Functions

 Affector (Animation *parent)
 
 ~Affector (void)
 destructor, this destroys all key frames defined inside this affector
 
AnimationgetParent () const
 Retrieves the parent animation of this keyframe.
 
size_t getIdxInParent () const
 Retrieves index with which this affector is retrievable in parent Animation. More...
 
void setApplicationMethod (ApplicationMethod method)
 Sets the application method. More...
 
ApplicationMethod getApplicationMethod () const
 Retrieves current application method. More...
 
void setTargetProperty (const String &target)
 Sets the property that will be affected.
 
const StringgetTargetProperty () const
 Gets the property that will be affected.
 
void setInterpolator (Interpolator *interpolator)
 Sets interpolator of this Affector. More...
 
void setInterpolator (const String &name)
 Sets interpolator of this Affector. More...
 
InterpolatorgetInterpolator () const
 Retrieves currently used interpolator of this Affector.
 
KeyFramecreateKeyFrame (float position)
 Creates a KeyFrame at given position.
 
KeyFramecreateKeyFrame (float position, const String &value, KeyFrame::Progression progression=KeyFrame::P_Linear, const String &sourceProperty="")
 Creates a KeyFrame at given position. More...
 
void destroyKeyFrame (KeyFrame *keyframe)
 Destroys given keyframe.
 
KeyFramegetKeyFrameAtPosition (float position) const
 Retrieves a KeyFrame at given position.
 
bool hasKeyFrameAtPosition (float position) const
 Checks whether there is a key frame at given position.
 
KeyFramegetKeyFrameAtIdx (size_t index) const
 Retrieves a KeyFrame with given index.
 
size_t getNumKeyFrames () const
 Returns number of key frames defined in this affector.
 
void moveKeyFrameToPosition (KeyFrame *keyframe, float newPosition)
 Moves given key frame to given new position.
 
void moveKeyFrameToPosition (float oldPosition, float newPosition)
 Moves key frame at given old position to given new position.
 
void savePropertyValues (AnimationInstance *instance)
 Internal method, causes all properties that are used by this affector and it's keyframes to be saved. More...
 
void apply (AnimationInstance *instance)
 Applies this Affector's definition with parameters from given Animation Instance. More...
 
void writeXMLToStream (XMLSerializer &xml_stream) const
 Writes an xml representation of this Affector to out_stream. More...
 

Detailed Description

Defines an 'affector' class.

Affector is part of Animation definition. It is set to affect one Property using one Interpolator.

Todo:
moveKeyFrame, this will be vital for any animation editing tools

Member Enumeration Documentation

enumerates the possible methods of application

Enumerator
AM_Absolute 

applies values as absolutes

AM_Relative 

saves a base value after the animation is started and applies relatively to that

AM_RelativeMultiply 

saves a base value after the animation is started and applies by multiplying this base value with key frame floats

Constructor & Destructor Documentation

CEGUI::Affector::Affector ( Animation parent)

internal constructor, please construct Affectors via Animation::createAffector only

Member Function Documentation

void CEGUI::Affector::apply ( AnimationInstance instance)

Applies this Affector's definition with parameters from given Animation Instance.

This function is internal so unless you know what you're doing, don't touch!
See also
AnimationInstance
KeyFrame* CEGUI::Affector::createKeyFrame ( float  position,
const String value,
KeyFrame::Progression  progression = KeyFrame::P_Linear,
const String sourceProperty = "" 
)

Creates a KeyFrame at given position.

This is a helper method, you can set all these values after you create the KeyFrame
ApplicationMethod CEGUI::Affector::getApplicationMethod ( ) const

Retrieves current application method.

See also
Affector::setApplicationMethod
size_t CEGUI::Affector::getIdxInParent ( ) const

Retrieves index with which this affector is retrievable in parent Animation.

Note
The index is only valid as long as the list of affectors is unchanged in animation!
void CEGUI::Affector::savePropertyValues ( AnimationInstance instance)

Internal method, causes all properties that are used by this affector and it's keyframes to be saved.

So their values are still known after they've been affected.
void CEGUI::Affector::setApplicationMethod ( ApplicationMethod  method)

Sets the application method.

Values can be applied in 2 ways - as absolute values or relative to base value that is retrieved and saved after animation is started
void CEGUI::Affector::setInterpolator ( Interpolator interpolator)

Sets interpolator of this Affector.

Interpolator has to be set for the Affector to work!
void CEGUI::Affector::setInterpolator ( const String name)

Sets interpolator of this Affector.

Interpolator has to be set for the Affector to work!
void CEGUI::Affector::writeXMLToStream ( XMLSerializer xml_stream) const

Writes an xml representation of this Affector to out_stream.

Parameters
xml_streamStream where xml data should be output.