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
00028 #ifndef CURVEBROWSERPROXY_H
00029 #define CURVEBROWSERPROXY_H
00030
00031 #include <QGpCoreTools.h>
00032
00033 #include "AbstractLine.h"
00034 #include "SciFigsDLLExport.h"
00035
00036 namespace SciFigs {
00037
00038 class Axis;
00039 class LineLayer;
00040
00041 class SCIFIGS_EXPORT CurveBrowserProxy
00042 {
00043 TRANSLATIONS("CurveBrowserProxy")
00044 public:
00045 CurveBrowserProxy() {}
00046 virtual ~CurveBrowserProxy() {}
00047
00048 virtual QString tag() const=0;
00049 virtual CurveBrowserProxy * clone() const=0;
00050
00051 void setLine(AbstractLine * line) {_line=line;}
00052 AbstractLine * line() const {return _line;}
00053
00054 virtual int sampleCount() const {return _line->count();}
00055 virtual void setFunction()=0;
00056 virtual double minimumX() const=0;
00057 virtual double maximumX() const=0;
00058 virtual double minimumY(const CurvePointOptions * pointOptions) const=0;
00059 virtual double maximumY(const CurvePointOptions * pointOptions) const=0;
00060 virtual bool isValid(int sample) const {return _line->isValid(sample);}
00061 virtual void setValid(int sample, bool v) {return _line->setValid(sample, v);}
00062 virtual void setName(const QString & n)=0;
00063 virtual QString name() const=0;
00064 virtual void addLog(QString s)=0;
00065 virtual QString log() const=0;
00066 virtual void cut(double min, double max, SamplingOptions options)=0;
00067 virtual void resample(int n, double min, double max, SamplingOptions options,
00068 double valX, double valY,
00069 const CurvePointOptions * pointOptions)=0;
00070 virtual void resample(int n, double min, double max, SamplingOptions options)=0;
00071 virtual void average(const CurveBrowserProxy * o)=0;
00072
00073 virtual QVariant columnValue(int sample, int col) const=0;
00074 virtual void setColumnValue(int sample, int col, const QVariant & value)=0;
00075
00076 virtual int columnCount() const=0;
00077 virtual QString columnName(int col) const=0;
00078 virtual QString columnUnit(int col) const=0;
00079 virtual QString columnTitle(int col) const;
00080
00081 virtual int xAxisColumn() const=0;
00082 virtual int xAxisInversedColumn() const=0;
00083 virtual int yAxisColumn() const=0;
00084 virtual int yAxisInversedColumn() const=0;
00085 virtual void setXAxisProperties(Axis * a);
00086 virtual void setYAxisProperties(Axis * a);
00087
00088 virtual QStringList columnFileTypes() const=0;
00089 virtual QVector<int> defaultColumnFileTypes() const=0;
00090 virtual QVector<int> savedColumns() const=0;
00091
00092 void save(QTextStream& s);
00093 virtual void parse(ColumnTextIterator& it)=0;
00094
00095 QString xName() const {return columnName(xAxisColumn());}
00096 QString xUnit() const {return columnUnit(xAxisColumn());}
00097 QString xTitle() const {return columnTitle(xAxisColumn());}
00098 QString xInversedName() const {return columnName(xAxisInversedColumn());}
00099 QString xInversedUnit() const {return columnUnit(xAxisInversedColumn());}
00100 QString xInversedTitle() const {return columnTitle(xAxisInversedColumn());}
00101 QString yName() const {return columnName(yAxisColumn());}
00102 QString yUnit() const {return columnUnit(yAxisColumn());}
00103 QString yTitle() const {return columnTitle(yAxisColumn());}
00104 QString yInversedName() const {return columnName(yAxisInversedColumn());}
00105 QString yInversedUnit() const {return columnUnit(yAxisInversedColumn());}
00106 QString yInversedTitle() const {return columnTitle(yAxisInversedColumn());}
00107 protected:
00108 AbstractLine * _line;
00109 };
00110
00111 }
00112
00113 #endif // CURVEBROWSERPROXY_H