00001 /****************************************************************************\ 00002 * * 00003 * 25.04.2006 * 00004 * ICamCtrl - Header File * 00005 * * 00006 * (c) Robert Hausmair * 00007 * * 00008 \****************************************************************************/ 00009 00010 #ifndef __ICAMCTRL_H__ 00011 #define __ICAMCTRL_H__ 00012 00013 /****************************************************************************\ 00014 * REQUIRED HEADERS * 00015 \****************************************************************************/ 00016 00017 //need to include this because of mmgr macro redefinition 00018 #include <QWidget> 00019 00020 #include <Definitions.h> 00021 #include <Memory/mmgr.h> 00022 #include <Memory/IManagedObject.h> 00023 #include <Memory/TSmartPointer.h> 00024 00025 #include "Input/IInputHandler.h" 00026 00027 /****************************************************************************\ 00028 * DEFINITIONS * 00029 \****************************************************************************/ 00030 00031 class CCamera; 00032 00033 /****************************************************************************\ 00034 * CLASS * 00035 \****************************************************************************/ 00036 class ICamCtrl : public IInputHandler 00037 { 00038 /**************************************************************************\ 00039 * PUBLIC CLASS FUNCTIONS * 00040 \**************************************************************************/ 00041 public: 00042 00043 ICamCtrl(); 00044 virtual ~ICamCtrl(); 00045 00046 virtual void Enable(const TSmartPointer<CCamera> &pCamera); 00047 virtual void Disable(); 00048 virtual void Reset(){} 00049 00050 inline bool IsEnabled() {return (bool) m_pCamera;} 00051 00052 /**************************************************************************\ 00053 * PROTECTED CLASS FUNCTIONS * 00054 \**************************************************************************/ 00055 protected: 00056 00057 virtual void Update() = 0; 00058 00059 /**************************************************************************\ 00060 * PRIVATE CLASS FUNCTIONS * 00061 \**************************************************************************/ 00062 private: 00063 00064 //Private copy constructor and assignment operator to prevent mistakes: 00065 ICamCtrl(const ICamCtrl &); 00066 const ICamCtrl &operator =(const ICamCtrl &); 00067 00068 /**************************************************************************\ 00069 * PROTECTED CLASS MEMBERS * 00070 \**************************************************************************/ 00071 protected: 00072 00073 TSmartPointer<CCamera> m_pCamera; 00074 00075 /**************************************************************************\ 00076 * PRIVATE CLASS MEMBERS * 00077 \**************************************************************************/ 00078 private: 00079 00080 }; 00081 00082 #endif