Converter.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 #ifndef CONVERTER_H_
00027 #define CONVERTER_H_
00028
00029 #include <QList>
00030 #include <QString>
00031 #include <casa/Arrays/Vector.h>
00032 #include <coordinates/Coordinates/SpectralCoordinate.h>
00033 namespace casa {
00034
00035 class Converter {
00036 public:
00037 Converter( const QString& oldUnits, const QString& newUnits);
00038
00039
00040
00041 static Converter* getConverter( const QString& oldUnits,const QString& newUnits );
00042 static void convert( Vector<double> &resultValues, int sourceIndex, int destIndex, SpectralCoordinate coordinate);
00043 QString getNewUnits() const;
00044
00045
00046 virtual double toPixel( double value, SpectralCoordinate coordinate ) = 0;
00047 virtual Vector<double> convert( const Vector<double>& oldValues, SpectralCoordinate coordinate) = 0;
00048 virtual double convert ( double oldValue, SpectralCoordinate coordinate);
00049 virtual ~Converter();
00050
00051 typedef enum {FREQUENCY_UNIT, VELOCITY_UNIT, WAVELENGTH_UNIT, CHANNEL_UNIT, UNRECOGNIZED } UnitType;
00052
00053 static UnitType getUnitType( const QString& unit );
00054
00055 protected:
00056 static const QList<QString> FREQUENCY_UNITS;
00057 static const QList<QString> WAVELENGTH_UNITS;
00058 static const QList<QString> VELOCITY_UNITS;
00059
00060 QString oldUnits;
00061 QString newUnits;
00062
00063
00064 };
00065
00066 }
00067 #endif