00001 00016 #ifndef _AVATAR_H_ 00017 #define _AVATAR_H_ 00018 00019 #include "camera.h" 00020 #include "time_updateable.h" 00021 #include "graphical_node.h" 00022 #include "templates/observer.h" 00023 #include "templates/callable_back.h" 00024 00025 class PlayField; 00026 00034 class Avatar: public TimeUpdateable, public GraphicalNode, 00035 public Templates::Observer<Camera> 00036 { 00037 private: 00038 00039 // Disable copy constructor and assignment operator 00040 Avatar(const Avatar &); 00041 Avatar & operator=(const Avatar &); 00042 00043 protected: 00044 00050 static SoSeparator* getBubbleHammer(); 00051 00052 public: 00053 00059 Avatar(); 00060 00064 virtual ~Avatar(); 00065 00076 virtual void fire(Templates::CallableBack<Avatar> *fireDone) =0; 00077 }; 00078 00079 #endif