Classes | Namespaces | Defines

_src_object_events.hh File Reference

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.

Detailed Description

Events.

LastChangedDate:
2011-04-09 21:58:06 -0400 (Sat, 09 Apr 2011)
Author:
Jim E. Brooks http://www.palomino3d.org

Define Documentation

#define CLASS_DESTROY_OBJECT_LISTENER (   OUTER_CLASS,
  M_OUTER_VAR 
)
Value:
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())
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Friends Defines
Palomino Flight Simulator documents generated by doxygen 1.7.1 on Tue May 15 2012 22:40:10