SliceStatistics.h
Go to the documentation of this file.00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026
00027 #ifndef SLICESTATISTICS_H_
00028 #define SLICESTATISTICS_H_
00029 #include <casa/Arrays/Vector.h>
00030 #include <display/Slicer/SliceStatistics.h>
00031 #include <display/Slicer/SliceStatisticsFactory.h>
00032
00033 #include <QString>
00034
00035 namespace casa {
00036
00037 class Record;
00038
00045 class SliceStatistics {
00046 public:
00047 SliceStatistics(SliceStatisticsFactory::AxisXUnits units );
00048 void setXUnits( SliceStatisticsFactory::AxisXUnits units );
00049 double getAngle( std::pair<int,int> pixelStart,
00050 std::pair<int,int> pixelEnd ) const;
00051 virtual double getLength(std::pair<double,double> worldStart,
00052 std::pair<double,double> worldEnd,
00053 std::pair<int,int> pixelStart,
00054 std::pair<int,int> pixelEnd ) const = 0;
00055 virtual double getLength( double value1World, double value2World,
00056 double value1Pixel, double value2Pixel ) const = 0;
00057 virtual double getStart( double value1World, double value2World,
00058 double value1Pixel, double value2Pixel ) const = 0;
00059 virtual double getEnd( double value1World, double value2World,
00060 double value1Pixel, double value2Pixel ) const = 0;
00061 virtual QString getLengthLabel() const = 0;
00062 virtual QVector<double> interpolate( double start, double end,
00063 const QVector<double>& values ) const;
00064 virtual void adjustStart( QVector<double>& values, double start ) const=0;
00065 QVector<double> convertArcUnits( QVector<double> arcseconds ) const;
00066 double convertArcUnits( double value ) const;
00067 virtual QVector<double> fromResults( Record* record )const = 0;
00068 virtual void storeIncrement( double* incr, QVector<double>& values, int index) const = 0;
00069 static QVector<double> getFromArray( const Array<float>& source );
00070 virtual ~SliceStatistics();
00071 protected:
00072 QString getUnitText() const;
00073
00074 double radiansToArcseconds( double rad ) const;
00075 SliceStatisticsFactory::AxisXUnits xUnits;
00076 };
00077
00078 }
00079 #endif