00001 //--- < CAMERAEVENT.H > ---------| ViewGraph - A Flexible Graph view Framework | 00002 // 00003 // Defines events that change camera status. 00004 // Camera events are processed in a separate logic 00005 // branch; moreover, the latest camera event is stored 00006 // as camera status. 00007 // 00008 // Derive your event from CameraEvent to register an 00009 // event that changes camera status. 00010 // 00011 // $Author: botik32 $ 00012 // $Revision: 1.1.1.1 $ 00013 // $Date: 2004/03/26 10:50:21 $ 00014 //-----------------------------------------------------------------------------/ 00015 00016 #ifndef CAMERAEVENT_H 00017 #define CAMERAEVENT_H 00018 00019 #include <cZUI/event.h> 00020 00021 /// CameraEvent is the base of all camera events.<br> 00022 /// Camera events are processed in a separate logic 00023 /// branch; moreover, the latest camera event is stored 00024 /// as camera status. 00025 class CameraEvent : public Event{ 00026 public: 00027 CameraEvent( Camera *, const char * ); 00028 CameraEvent( CameraEvent * ); 00029 static const char *type; 00030 bool is_type( const char * ); 00031 }; 00032 00033 class CameraFocusEvent : public CameraEvent{ 00034 public: 00035 static const char *type; 00036 CameraFocusEvent( Camera * ); 00037 }; 00038 00039 class CameraBlurEvent : public CameraEvent{ 00040 public: 00041 static const char *type; 00042 CameraBlurEvent( Camera * ); 00043 }; 00044 00045 /// Upon this event, the camera should display 00046 /// something like "CAMERA OFF" or just not 00047 /// display a thing. It may even display an 00048 /// "off" animation if you wish. 00049 /// You can specify such behaviour by 00050 /// subclassing the LayerNode class and 00051 /// adding it to the top of the layer stack. 00052 class CameraOffEvent : public CameraEvent{ 00053 protected: 00054 public: 00055 static const char *type; 00056 CameraOffEvent( Camera * ); 00057 }; 00058 00059 /// Upon this event, the camera should display 00060 /// what it can "see". It may briefly display 00061 /// an "on" animation if you wish. 00062 /// You can specify such behaviour by 00063 /// subclassing the LayerNode class and 00064 /// adding it to the top of the layer stack. 00065 class CameraOnEvent : public CameraEvent{ 00066 protected: 00067 public: 00068 static const char *type; 00069 CameraOnEvent( Camera * ); 00070 }; 00071 00072 /// A node should send a CameraUpdatedEvent 00073 /// whenever it has repainted and wants the 00074 /// window to repaint. 00075 class CameraUpdatedEvent : public CameraEvent 00076 { 00077 protected: 00078 public: 00079 static const char *type; 00080 CameraUpdatedEvent( Camera * ); 00081 }; 00082 00083 #endif 00084 00085 /// $Log: cameraevent.h,v $ 00086 /// Revision 1.1.1.1 2004/03/26 10:50:21 botik32 00087 /// Initial release 00088 /// 00089 /// Revision 1.1.1.1 2004/03/26 08:53:33 botik 00090 /// initial import 00091 /// 00092 /// 00093 /// Revision 1.4 2003/12/02 20:09:22 botik 00094 /// Changed repaint policy to repaint only when Camera and 00095 /// CameraMovement events happened. 00096 /// Added CameraUpdatedEvent specifically for this purpose 00097 /// so scene nodes can trigger a repaint. 00098 /// 00099 /// Revision 1.3 2003/11/14 16:00:42 botik 00100 /// Got camerafocus to ignore cameras in 'Off' state 00101 /// Fixed camera to keep latest camera status change 00102 /// event as status. 00103 /// 00104 /// Revision 1.2 2003/10/30 14:21:43 botik 00105 /// Modified layernode to handle CameraOn/CameraOff events 00106 /// 00107 /// Revision 1.1 2003/10/30 13:47:31 botik 00108 /// Broke up event files into 3 categories 00109 /// 00110