00001 00002 // 00003 // Filename : QLightSourceEditorImpl.h 00004 // Class : QLightSourceEditorImpl 00005 // 00006 // Author(s) : Michael Meissner 00007 // 00008 // Description : GUI for editing light sources 00009 // Purpose : 00010 // 00011 // Date : September 2001 00012 // 00013 // Updates : who | date | what 00014 // ----------+--------+------------------------------------- 00015 // | | 00016 // 00018 00019 00020 00021 #ifndef __LIGHTSOURCEEDITORIMPL_H 00022 #define __LIGHTSOURCEEDITORIMPL_H 00023 00024 // QT 00026 00027 // QGLViewer 00029 #include <QGLViewer.h> 00030 #include <CList.h> 00031 #include <CLightSource.h> 00032 #include "QLightSourceEditor.h" 00033 00034 // Own 00036 00037 00038 // Forward declarations 00040 00041 00042 class QLightSourceEditorImpl : public QLightSourceEditor 00043 { 00044 Q_OBJECT 00045 00046 public: 00047 QLightSourceEditorImpl( QGLViewer *viewer, QWidget* parent = 0, const char* name = 0, bool modal = FALSE, WFlags fl = 0 ); 00048 ~QLightSourceEditorImpl(); 00049 00050 void setLightList(CList<CLightSource> &); 00051 00052 signals: 00054 // SIGNAL 00056 00058 void sigRedrawGL(); 00059 00061 void sigLightSourceList(const CList<CLightSource> &); 00062 00063 protected slots: 00065 // PROTECTED SLOTS 00067 virtual void sltTypeChanged(int); 00068 virtual void sltStatusChanged(int); 00069 virtual void sltIntensityChanged(); 00070 virtual void sltRedChanged(); 00071 virtual void sltGreenChanged(); 00072 virtual void sltBlueChanged(); 00073 virtual void sltPosXchanged(); 00074 virtual void sltPosYchanged(); 00075 virtual void sltPosZchanged(); 00076 virtual void sltDirXchanged(); 00077 virtual void sltDirYchanged(); 00078 virtual void sltDirZchanged(); 00079 virtual void sltAngleChanged(); 00080 virtual void sltExponentChanged(); 00081 virtual void sltConstantAttenuationChanged(); 00082 virtual void sltLinearAttenuationChanged(); 00083 virtual void sltQuadraticAttenuationChanged(); 00084 virtual void sltDeleteLight(); 00085 virtual void sltButtonCancel(); 00086 virtual void sltButtonApply(); 00087 virtual void sltButtonOk(); 00088 00091 virtual void sltSelectionChanged(); 00092 00093 private: 00095 bool eventFilter(QObject *o, QEvent *e); 00096 00098 void setLight(CCamera &); 00099 00101 void updateGUI(); 00102 00103 QGLViewer *m_pViewer; 00104 00105 CList<CLightSource>* m_pOriginalList; 00106 CList<CLightSource>* m_pWorkingList; 00107 }; 00108 00109 #endif