00001 #ifndef __TRANSFER_CONTROL_WIDGET__ 00002 #define __TRANSFER_CONTROL_WIDGET__ 00003 00004 #include <QtGui/QWidget> 00005 00006 #include "colorSelectionWidget.h" 00007 #include "transferFunctionDisplayWidget.h" 00008 00011 class TransferControlWidget : public QWidget 00012 { 00013 Q_OBJECT 00014 00015 public: 00016 TransferControlWidget(QWidget *parent = 0, Histogram *histogram = NULL); 00017 ~TransferControlWidget(); 00018 00019 QSize minimumSizeHint() const; 00020 QSize sizeHint() const; 00021 00022 void setDensityHistogram(Histogram *histogram); 00023 00024 GLuint getTexture(); 00025 00026 void saveTransferFunction(FILE *fp); 00027 void loadTransferFunction(FILE *fp); 00028 00029 static int getWidth() {return max(ColorSelectionWidget::getWidth(), TransferFunctionDisplayWidget::getWidth()) + spacing;} 00030 static int getHeight() {return ColorSelectionWidget::getHeight() + TransferFunctionDisplayWidget::getHeight() + spacing;} 00031 00032 public slots: 00033 void newTransferFunctionGenerated(); 00034 00035 signals: 00036 void transferFunctionChanged(); 00037 00038 private: 00039 bool oldTextureExists; 00040 GLuint textureId; 00041 00042 void generateTexture(); 00043 00044 ColorSelectionWidget *colorSelect; 00045 TransferFunctionDisplayWidget *functionDisplay; 00046 00047 static const int spacing; 00048 }; 00049 00050 #endif