Events. More...
#include "base/singleton.hh"#include "base/event.hh"Go to the source code of this file.
Classes | |
| class | object::Events |
| 3D Object events. More... | |
Namespaces | |
| namespace | object |
3D Object classes. | |
Defines | |
| #define | EVENT_DESTROY_OBJECT (object::Events::GetInstance().GetDestroyObjectEvent()) |
| #define | CLASS_DESTROY_OBJECT_LISTENER(OUTER_CLASS, M_OUTER_VAR) |
| Any container of an Object must listen for destroying of an Object. | |
Events.
| #define CLASS_DESTROY_OBJECT_LISTENER | ( | OUTER_CLASS, | ||
| M_OUTER_VAR | ||||
| ) |
class DestroyObjectListener : public Event<shptr<Object> >::ListenerFunctor \ { \ \ public: \ DestroyObjectListener( OUTER_CLASS& outer ) : M_OUTER_VAR(outer) { } \ virtual void operator()( shptr<Object> object ); \ private: \ OUTER_CLASS& M_OUTER_VAR; \ }; \ friend class DestroyObjectListener;
Any container of an Object must listen for destroying of an Object.
3D models may consume large amounts of memory. So releasing all references to an Object being destroyed is critical!
Object::Zombify() broadcasts this event (a counterpart is in Lua). This convenience macro expands the functor class.
mDestroyObjectListener(new DestroyObjectListener(*this)) OBJECT_EVENTS.mDestroyObject.Listen( mDestroyObjectListener ); OBJECT_EVENTS.mDestroyObject.Unlisten( mDestroyObjectListener ); void Collision::DestroyObjectListener::operator()( shptr<Object> object ) { mCollision.mCollidables.erase( object ); }
| #define EVENT_DESTROY_OBJECT (object::Events::GetInstance().GetDestroyObjectEvent()) |
Palomino Flight Simulator documents generated by doxygen 1.7.1 on Tue May 15 2012 22:40:10