00001 #ifndef CONTROLS_H 00002 #define CONTROLS_H 00003 00004 #include "Shadewidget.h" 00005 #include "Hoverpoints.h" 00006 #include "../renderer/Renderer.h" 00007 00011 class Controls : public QWidget 00012 { 00013 Q_OBJECT 00014 00015 public: 00016 Controls(QWidget* parent = 0); 00017 virtual ~Controls(); 00018 00019 signals: 00021 void screenShotPressed(); 00022 00023 public slots: 00025 void initGLFinished(); 00027 void saveTransferFunctions(const std::string&); 00028 00029 private: 00030 std::vector<Renderer::TransferFunction*> transferFunctions; 00031 00032 QLabel* volumeFileNameLabel; 00033 QLineEdit* volumeFileName; 00034 QPushButton* loadVolumeButton; 00035 00036 QLabel* renderModeLabel; 00037 QComboBox* renderModeBox; 00038 00039 QLabel* transferFuncLabel; 00040 QComboBox* transferFuncBox; 00041 00042 QLabel* viewModeLabel; 00043 QComboBox* viewModeBox; 00044 00045 QLabel* axisLabel; 00046 QButtonGroup* axisGroup; 00047 QRadioButton* xAxisButton; 00048 QRadioButton* yAxisButton; 00049 QRadioButton* zAxisButton; 00050 00051 QSlider* axisSlider; 00052 00053 00054 QCheckBox* cbTf; 00055 QLineEdit* tfName; 00056 00057 QPushButton* newTfButton; 00058 00059 00060 QLabel* sampleDistLabel; 00061 QSlider* axisSampleDist; 00062 00063 ShadeWidget* transferEditor; 00064 00065 QPushButton* screenShotButton; 00066 00067 private slots: 00068 void loadVolumePressed(); 00069 void sampleDistChanged(); 00070 void switchedUseTf(); 00071 00072 void renderModeSelected(int); 00073 void transferFuncSelected(int); 00074 void viewModeSelected(int); 00075 00076 void xAxisSelected(); 00077 void yAxisSelected(); 00078 void zAxisSelected(); 00079 00080 void axisChanged(int); 00081 00082 00083 00084 void newTransferFuncPressed(); 00085 void loadTransferFunctions(const std::string&); 00086 Renderer::TransferFunction* loadTF(QString&, QDomElement&); 00087 bool loadTFPoint(Renderer::TFPoint& tfPoint, QDomElement&); 00088 00089 }; 00090 00091 #endif