40 #ifndef _areaeffectmanager_h
41 #define _areaeffectmanager_h
43 #include "worldmanager.h"
44 #include "worldmanagerfactory.h"
52 class AreaEffectFactory;
53 class AreaEffectManager;
223 virtual Whole GetNumAreaEffects()
const;
226 virtual void DestroyAreaEffect(
const Whole Index);
229 virtual void DestroyAreaEffect(
AreaEffect* ToBeDestroyed);
231 virtual void DestroyAllAreaEffects();
236 AreaEffectIterator BeginAreaEffect();
239 AreaEffectIterator EndAreaEffect();
242 ConstAreaEffectIterator BeginAreaEffect()
const;
245 ConstAreaEffectIterator EndAreaEffect()
const;
259 virtual void RemoveAreaEffectFactory(
const String& ImplName);
265 virtual void DestroyAreaEffectFactory(
const String& ImplName);
268 virtual void DestroyAllAreaEffectFactories();
274 virtual void Pause(
const UInt32 PL);
277 virtual void MainLoopInitialize();
279 virtual void Initialize();
281 virtual void Deinitialize();
293 virtual String GetImplementationTypeName()
const;
This is the base class for all collision shapes.
AreaEffectContainer::iterator AreaEffectIterator
Iterator type for AreaEffect instances stored by this class.
bool Boole
Generally acts a single bit, true or false.
Default implementation of WorkUnit. This represents on piece of work through time.
A manager responsible for the storage and management of all areaeffects in use.
void DestroyManager(WorldManager *ToBeDestroyed)
Destroys a Manager created by this factory.
ManagerType
A listing of Manager Types.
This is a gravity well implementation of the AreaEffect class.
This is a Mezzanine::Threading::iWorkUnit for the updating of AreaEffects.
This is an implementation of the AreaEffect class that alters gravity in a region.
A thread specific collection of double-buffered and algorithm specific resources. ...
This class is used to define area's in the world that have unique effects.
This is field that applies force in a direction, and doesn't tamper with gravity. ...
A light-weight handle for manipulating nodes in DOM tree.
FactoryMap::const_iterator ConstFactoryIterator
Const Iterator type for AreaEffectFactory instances stored by this class.
Threading::DefaultThreadSpecificStorage::Type * ThreadResources
Can be used for thread safe logging and other thread specific resources.
uint32_t UInt32
An 32-bit unsigned integer.
A factory responsible for the creation and destruction of the default areaeffectmanager.
String GetManagerImplName() const
Gets the name of the manager that is created by this factory.
static const ManagerBase::ManagerType InterfaceType
A ManagerType enum value used to describe the type of interface/functionality this manager provides...
A base factory type for the creation of AreaEffect objects.
std::list< NameValuePair > NameValuePairList
This is a datatype mostly used for describing settings or parameters that can't be declared in advanc...
FactoryMap::iterator FactoryIterator
Iterator type for AreaEffectFactory instances stored by this class.
This is the base class for all managers that belong to a single world instance.
FactoryMap AreaEffectFactories
A map containing all registered AreaEffect type factories.
WorldManager * CreateManager(World *Creator, const NameValuePairList &Params)
Creates a manager of the type represented by this factory.
virtual ~DefaultAreaEffectManagerFactory()
Class destructor.
ManagerBase::ManagerType GetManagerType() const
Gets the type of manager that is created by this factory.
The bulk of the engine components go in this namspace.
unsigned long Whole
Whole is an unsigned integer, it will be at least 32bits in size.
AreaEffectUpdateWorkUnit * AreaEffectUpdateWork
The work unit that updates all the actors stored by this manager.
This class represents a world for objects to interact within.
std::vector< AreaEffect * > AreaEffectContainer
Basic container type for AreaEffect storage by this class.
This is a base class for factories that construct managers used by the World class.
AreaEffectManager * TargetManager
A pointer to the manager this work unit is processing.
DefaultAreaEffectManagerFactory()
Class constructor.
static const String ImplementationName
A String containing the name of this manager implementation.
std::map< String, String > NameValuePairMap
This is a datatype mostly used for describing settings or parameters that can't be declared in advanc...
std::string String
A datatype used to a series of characters.
std::map< String, AreaEffectFactory * > FactoryMap
Basic container type for AreaEffectFactory storage by this class.
AreaEffectContainer AreaEffects
Container storing all AreaEffects belonging to this manager.
This file has the definition of the workunit.
AreaEffectContainer::const_iterator ConstAreaEffectIterator
Const Iterator type for AreaEffect instances stored by this class.