00001 //# Copyright (C) 2005 00002 //# Associated Universities, Inc. Washington DC, USA. 00003 //# 00004 //# This library is free software; you can redistribute it and/or modify it 00005 //# under the terms of the GNU Library General Public License as published by 00006 //# the Free Software Foundation; either version 2 of the License, or (at your 00007 //# option) any later version. 00008 //# 00009 //# This library is distributed in the hope that it will be useful, but WITHOUT 00010 //# ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or 00011 //# FITNESS FOR A PARTICULAR PURPOSE. See the GNU Library General Public 00012 //# License for more details. 00013 //# 00014 //# You should have received a copy of the GNU Library General Public License 00015 //# along with this library; if not, write to the Free Software Foundation, 00016 //# Inc., 675 Massachusetts Ave, Cambridge, MA 02139, USA. 00017 //# 00018 //# Correspondence concerning AIPS++ should be addressed as follows: 00019 //# Internet email: aips2-request@nrao.edu. 00020 //# Postal address: AIPS++ Project Office 00021 //# National Radio Astronomy Observatory 00022 //# 520 Edgemont Road 00023 //# Charlottesville, VA 22903-2475 USA 00024 //# 00025 #ifndef PIXEL_RANGE_DIALOG_QO_H_1 00026 #define PIXEL_RANGE_DIALOG_QO_H_1 00027 00028 #include <display/Fit/PixelRangeDialog.ui.h> 00029 #include <casa/aips.h> 00030 #include <casa/Utilities/CountedPtr.h> 00031 #include <utility> 00032 #include <QDialog> 00033 00034 using namespace std; 00035 00036 namespace casa { 00037 00038 template <class T> class ImageInterface; 00039 class BinPlotWidget; 00040 class ImageRegion; 00041 00042 //Displays a histogram that allows the user 00043 //to set a include/exclude pixel range for the fit. 00044 00045 class PixelRangeDialog : public QDialog { 00046 Q_OBJECT 00047 00048 public: 00049 PixelRangeDialog(QWidget *parent = 0); 00050 void setImage( const SHARED_PTR<const ImageInterface<Float> > img ); 00051 void setInterval( double minValue, double maxValue ); 00052 void setImageMode( bool imageMode ); 00053 void setLineMode( bool lineMode ); 00054 void setChannelValue( int channel ); 00055 bool setImageRegion( ImageRegion* imageRegion, int id ); 00056 void setTitle( const QString& title ); 00057 void deleteImageRegion( int id ); 00058 void imageRegionSelected( int id ); 00059 pair<double,double> getInterval() const; 00060 vector<float> getXValues() const; 00061 ~PixelRangeDialog(); 00062 00063 protected: 00064 void keyPressEvent( QKeyEvent* event ); 00065 00066 00067 00068 private: 00069 PixelRangeDialog( const PixelRangeDialog& other ); 00070 PixelRangeDialog operator=( const PixelRangeDialog& other ); 00071 00072 Ui::PixelRangeDialogClass ui; 00073 BinPlotWidget* plotWidget; 00074 int channelCount; 00075 int spectralIndex; 00076 int channelIndex; 00077 00078 }; 00079 00080 00081 00082 00083 } 00084 #endif // THRESHOLDINGBINPLOTDIALOG_H