casa
$Rev:20696$
|
00001 //# Copyright (C) 1994,1995,1996,1997,1998,1999,2000 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 00026 #ifndef SLICE_SEGMENT_QO_H 00027 #define SLICE_SEGMENT_QO_H 00028 00029 #include <QtGui/QFrame> 00030 #include <casa/BasicSL/String.h> 00031 #include <display/Slicer/SliceSegment.ui.h> 00032 #include <qwt_double_rect.h> 00033 00034 class QwtPlot; 00035 class QwtPlotCurve; 00036 00037 namespace casa { 00038 00046 class SliceStatistics; 00047 class SegmentTracer; 00048 00049 class SliceSegment : public QFrame { 00050 Q_OBJECT 00051 00052 public: 00053 SliceSegment(int regionId, int index, QWidget *parent = 0); 00054 void addCurve( QwtPlot* plot, const QVector<double>& xValues, const QVector<double>& yValues ); 00055 void setEndPointsWorld( double worldX1, double worldY1, double worldX2, double worldY2 ); 00056 void setEndPointsPixel( int pixelX1, int pixelY1, int pixelX2, int pixelY2 ); 00057 void setColor( QColor color ); 00058 void setCurveWidth( int width ); 00059 void updateEnds( const String& start, const String& end); 00060 QColor getCurveColor() const; 00061 void clearCurve(); 00062 void updateStatistics( SliceStatistics* statistics ); 00063 QwtPlot* getPlot(); 00064 ~SliceSegment(); 00065 00066 signals: 00067 void statisticsSelected( int index ); 00068 00069 private: 00070 QString parseEndInfo( const String& info ) const; 00071 void resetCurveWidth(); 00072 void setCurveColor(); 00073 SliceSegment( const SliceSegment& other ); 00074 SliceSegment operator=( const SliceSegment& other ); 00075 std::pair<double,double> worldStart; 00076 std::pair<double,double> worldEnd; 00077 std::pair<int,int> pixelStart; 00078 std::pair<int,int> pixelEnd; 00079 int curveWidth; 00080 int regionId; 00081 int index; 00082 00083 QColor defaultColor; 00084 QwtPlotCurve* plotCurve; 00085 SegmentTracer* segmentTracer; 00086 Ui::SliceSegmentClass ui; 00087 }; 00088 00089 } 00090 00091 #endif // SLICESEGMENT_QO_H