29 #ifndef _CEGUIAffector_h_
30 #define _CEGUIAffector_h_
32 #include "CEGUI/String.h"
33 #include "CEGUI/KeyFrame.h"
37 # pragma warning(push)
38 # pragma warning(disable : 4251)
55 class CEGUIEXPORT Affector :
public AllocatedObject<Affector>
59 enum ApplicationMethod
78 Affector(Animation* parent);
87 inline Animation* getParent()
const
99 size_t getIdxInParent()
const;
109 void setApplicationMethod(ApplicationMethod method);
118 ApplicationMethod getApplicationMethod()
const;
124 void setTargetProperty(
const String& target);
130 const String& getTargetProperty()
const;
139 void setInterpolator(Interpolator* interpolator);
148 void setInterpolator(
const String& name);
154 Interpolator* getInterpolator()
const;
160 KeyFrame* createKeyFrame(
float position);
170 KeyFrame* createKeyFrame(
float position,
const String& value,
172 const String& sourceProperty =
"");
178 void destroyKeyFrame(KeyFrame* keyframe);
184 KeyFrame* getKeyFrameAtPosition(
float position)
const;
190 bool hasKeyFrameAtPosition(
float position)
const;
196 KeyFrame* getKeyFrameAtIdx(
size_t index)
const;
202 size_t getNumKeyFrames()
const;
208 void moveKeyFrameToPosition(KeyFrame* keyframe,
float newPosition);
214 void moveKeyFrameToPosition(
float oldPosition,
float newPosition);
225 void savePropertyValues(AnimationInstance* instance);
239 void apply(AnimationInstance* instance);
248 void writeXMLToStream(XMLSerializer& xml_stream)
const;
254 ApplicationMethod d_applicationMethod;
256 String d_targetProperty;
258 Interpolator* d_interpolator;
260 typedef std::map<float, KeyFrame*, std::less<float>
261 CEGUI_MAP_ALLOC(
float, KeyFrame*)> KeyFrameMap;
265 KeyFrameMap d_keyFrames;
270 #if defined(_MSC_VER)
271 # pragma warning(pop)
274 #endif // end of guard _CEGUIAffector_h_