29 #ifndef _CEGUIAnimationManager_h_
30 #define _CEGUIAnimationManager_h_
32 #include "CEGUI/Singleton.h"
33 #include "CEGUI/String.h"
38 # pragma warning(push)
39 # pragma warning(disable : 4251)
46 class CEGUIEXPORT AnimationManager :
47 public Singleton<AnimationManager>,
48 public AllocatedObject<AnimationManager>
52 static const String XMLSchemaName;
66 AnimationManager(
void);
76 ~AnimationManager(
void);
89 void addInterpolator(Interpolator* interpolator);
95 void removeInterpolator(Interpolator* interpolator);
101 Interpolator* getInterpolator(
const String& type)
const;
110 Animation* createAnimation(
const String& name =
"");
116 void destroyAnimation(Animation* animation);
122 void destroyAnimation(
const String& name);
128 void destroyAllAnimations();
134 Animation* getAnimation(
const String& name)
const;
147 bool isAnimationPresent(
const String& name)
const;
153 Animation* getAnimationAtIdx(
size_t index)
const;
159 size_t getNumAnimations()
const;
168 AnimationInstance* instantiateAnimation(Animation* animation);
177 AnimationInstance* instantiateAnimation(
const String& name);
183 void destroyAnimationInstance(AnimationInstance* instance);
189 void destroyAllInstancesOfAnimation(Animation* animation);
195 void destroyAllAnimationInstances();
201 AnimationInstance* getAnimationInstanceAtIdx(
size_t index)
const;
208 size_t getNumAnimationInstances()
const;
220 void autoStepInstances(
float delta);
234 void loadAnimationsFromXML(
const String& filename,
235 const String& resourceGroup =
"");
245 void loadAnimationsFromString(
const String& source);
257 void writeAnimationDefinitionToStream(
const Animation& animation,
OutStream& out_stream)
const;
273 String getAnimationDefinitionAsString(
const Animation& animation)
const;
285 s_defaultResourceGroup = resourceGroup;
299 return s_defaultResourceGroup;
303 typedef std::map<String, Interpolator*, std::less<String>
305 String generateUniqueAnimationName();
308 InterpolatorMap d_interpolators;
310 CEGUI_VECTOR_ALLOC(
Interpolator*)> BasicInterpolatorList;
312 BasicInterpolatorList d_basicInterpolators;
314 typedef std::map<String, Animation*> AnimationMap;
316 AnimationMap d_animations;
318 typedef std::multimap<Animation*, AnimationInstance*, std::less<Animation*>
321 AnimationInstanceMap d_animationInstances;
323 static String s_defaultResourceGroup;
325 static const String GeneratedAnimationNameBase;
327 unsigned long d_uid_counter;
332 #if defined(_MSC_VER)
333 # pragma warning(pop)
336 #endif // end of guard _CEGUIAnimationManager_h_
Main namespace for Crazy Eddie's GUI Library.
Definition: cegui/include/CEGUI/Affector.h:42
std::ostream OutStream
Output stream class.
Definition: cegui/include/CEGUI/Base.h:185
static void setDefaultResourceGroup(const String &resourceGroup)
Sets the default resource group to be used when loading animation xml data.
Definition: debian/tmp/usr/include/cegui-0.8.7/CEGUI/AnimationManager.h:283
Defines an 'animation' class.
Definition: cegui/include/CEGUI/Animation.h:64
static const String & getDefaultResourceGroup()
Returns the default resource group currently set for loading animation xml data.
Definition: debian/tmp/usr/include/cegui-0.8.7/CEGUI/AnimationManager.h:297
Defines a 'interpolator' class.
Definition: cegui/include/CEGUI/Interpolator.h:53
Defines an 'animation instance' class.
Definition: cegui/include/CEGUI/AnimationInstance.h:73
String class used within the GUI system.
Definition: cegui/include/CEGUI/String.h:62