00001 #ifndef MAINWINDOW_H 00002 #define MAINWINDOW_H 00003 00004 00005 #include "compiler_options.h" 00006 #include "common.h" 00007 #include "Ui_MainWindow.h" 00008 #include "OpenGLWidget.h" 00009 #include "Volume.h" 00010 //#include "Histogram.h" 00011 #include "GradientEditor.h" 00012 #include "GradientRenderer.h" 00013 00014 #include <QtGui/QResizeEvent> 00015 #include <QtGui/QWidget> 00016 00017 class MainWindow : public QMainWindow, protected Ui_MainWindow 00018 { 00019 Q_OBJECT 00020 00021 public: 00022 00031 MainWindow( QWidget* parent = 0, Qt::WindowFlags flags = 0); 00032 00033 00039 virtual ~MainWindow(); 00040 00044 void resizeEvent(QResizeEvent* re); 00045 00046 00047 private: 00051 void configureSlider( QSlider *slider ); 00052 00056 void configureStepSizeSlider(); 00057 00061 void configureLightSlider( QSlider* slider); 00062 00066 void configureGlossLightSlider(); 00067 00068 00072 void activateSliders(); 00073 00077 void setAxisValue( int axis, int value ); 00078 00082 void keyPressEvent( QKeyEvent *e ); 00083 00084 00085 public slots: 00086 00087 private slots: 00091 void openFile(); 00092 00096 void closeFile(); 00097 00101 void closeProgram(); 00102 00106 void setXAxisValue( int xVal ); 00107 00111 void setYAxisValue( int yVal ); 00112 00116 void setZAxisValue( int zVal ); 00117 00121 void setStepSize( int value ); 00122 00123 // /** 00124 // * Called when pushing the render-button (maybe not needed in future versions) 00125 // */ 00126 //void render(); 00127 00131 void saveTransferFunction(); 00132 00136 void loadTransferFunction(); 00137 00138 signals: 00139 void updateHistogram(const int*); 00140 void releaseHistogram(); 00141 00142 public slots: 00143 void setDefault0() { setDefaultGradient(0); } 00144 void setDefault1() { setDefaultGradient(1); } 00145 void setDefault2() { setDefaultGradient(2); } 00146 void setDefault3() { setDefaultGradient(3); } 00147 00148 void setComp() { glWidgets[ OPENGL_3D_VIEW ]->setRenderMode( comp ); } 00149 void setMIP() { glWidgets[ OPENGL_3D_VIEW ]->setRenderMode( mip ); } 00150 void setAvg() { glWidgets[ OPENGL_3D_VIEW ]->setRenderMode( avg ); } 00151 void setAvgTF() { glWidgets[ OPENGL_3D_VIEW ]->setRenderMode( avgTF ); } 00152 void setFH() { glWidgets[ OPENGL_3D_VIEW ]->setRenderMode( fh ); } 00153 void setCompPh() { glWidgets[ OPENGL_3D_VIEW ]->setRenderMode( compPh ); } 00154 00155 void setAmbient(int); 00156 void setDiffuse(int); 00157 void setSpecular(int); 00158 void setGloss(int); 00159 00160 private: 00164 //Histogram *m_histogram; 00165 00169 Volume *m_volume; 00170 00174 bool isFileOpen; 00175 00179 OpenGLWidget *glWidgets[ NUMBER_OF_GL_WIDGETS ]; 00180 00184 GradientEditor* m_editor ; 00185 00189 GradientRenderer *m_renderer; 00190 00194 void setDefaultGradient(int i); 00195 }; 00196 00197 00198 #endif