Orxonox: src/core/EventIncludes.h File Reference

# EventIncludes.h File Reference

`#include "CorePrereqs.h"`
`#include "Executor.h"`

## Defines

#define | ORXONOX_SET_EVENT(classname, eventname, functionname, event) ORXONOX_SET_EVENT_GENERIC(eventcontainer##classname##functionname, classname, eventname, functionname, event, BaseObject)
#define | ORXONOX_SET_EVENT_GENERIC(containername, classname, eventname, functionname, event, subclassname)
#define | ORXONOX_SET_EVENT_GENERIC_TEMPLATE(containername, classname, eventname, functionname, event, subclassname,...)
#define | ORXONOX_SET_EVENT_TEMPLATE(classname, eventname, functionname, event,...) ORXONOX_SET_EVENT_GENERIC_TEMPLATE(eventcontainer##classname##functionname, classname, eventname, functionname, event, BaseObject, __VA_ARGS__)
#define | ORXONOX_SET_SUBCLASS_EVENT(classname, eventname, functionname, event, subclassname) ORXONOX_SET_EVENT_GENERIC(eventcontainer##classname##functionname, classname, eventname, functionname, event, subclassname)
#define | ORXONOX_SET_SUBCLASS_EVENT_TEMPLATE(classname, eventname, functionname, event, subclassname,...) ORXONOX_SET_EVENT_GENERIC_TEMPLATE(eventcontainer##classname##functionname, classname, eventname, functionname, event, subclassname, __VA_ARGS__)

## Define Documentation

#define ORXONOX_SET_EVENT | ( | classname,
|  | eventname,
|  | functionname,
|  | event |  | ) | ORXONOX_SET_EVENT_GENERIC(eventcontainer##classname##functionname, classname, eventname, functionname, event, BaseObject)

Referenced by orxonox::EventTrigger::processEvent(), orxonox::ParticleSpawner::processEvent(), and orxonox::BaseObject::processEvent().

#define ORXONOX_SET_EVENT_GENERIC | ( | containername,
|  | classname,
|  | eventname,
|  | functionname,
|  | event,
|  | subclassname |  | ) |

Value:

    orxonox::EventContainer* containername = this->getEventContainer(eventname); \
        if (!containername) \
        { \
            ExecutorMember<classname>* executor = orxonox::createExecutor(orxonox::createFunctor(&classname::functionname), std::string( #classname ) + "::" + #functionname); \
            executor->setObject(this); \
            containername = new orxonox::EventContainer(std::string(eventname), executor, orxonox::ClassIdentifier<subclassname>::getIdentifier()); \
            this->addEventContainer(eventname, containername); \
        } \
        event.castedOriginator_ = dynamic_cast<subclassname*>(event.originator_); \
        containername->process(this, event)

#define ORXONOX_SET_EVENT_GENERIC_TEMPLATE | ( | containername,
|  | classname,
|  | eventname,
|  | functionname,
|  | event,
|  | subclassname,
|  | ... |  | ) |

Value:

    orxonox::EventContainer* containername = this->getEventContainer(eventname); \
        if (!containername) \
        { \
            ExecutorMember<classname>* executor = orxonox::createExecutor(orxonox::createFunctor<classname, __VA_ARGS__ >(&classname::functionname), std::string( #classname ) + "::" + #functionname); \
            executor->setObject(this); \
            containername = new orxonox::EventContainer(std::string(eventname), executor, orxonox::ClassIdentifier<subclassname>::getIdentifier()); \
            this->addEventContainer(eventname, containername); \
        } \
        event.castedOriginator_ = dynamic_cast<subclassname*>(event.originator_); \
        containername->process(this, event)

#define ORXONOX_SET_EVENT_TEMPLATE | ( | classname,
|  | eventname,
|  | functionname,
|  | event,
|  | ... |  | ) | ORXONOX_SET_EVENT_GENERIC_TEMPLATE(eventcontainer##classname##functionname, classname, eventname, functionname, event, BaseObject, __VA_ARGS__)

#define ORXONOX_SET_SUBCLASS_EVENT | ( | classname,
|  | eventname,
|  | functionname,
|  | event,
|  | subclassname |  | ) | ORXONOX_SET_EVENT_GENERIC(eventcontainer##classname##functionname, classname, eventname, functionname, event, subclassname)

Referenced by orxonox::QuestEffectBeacon::processEvent().

#define ORXONOX_SET_SUBCLASS_EVENT_TEMPLATE | ( | classname,
|  | eventname,
|  | functionname,
|  | event,
|  | subclassname,
|  | ... |  | ) | ORXONOX_SET_EVENT_GENERIC_TEMPLATE(eventcontainer##classname##functionname, classname, eventname, functionname, event, subclassname, __VA_ARGS__)