SciFigs/CurveBrowserProxy.h
Go to the documentation of this file.
00001 /***************************************************************************
00002 **
00003 **  This file is part of SciFigs.
00004 **
00005 **  This library is free software; you can redistribute it and/or
00006 **  modify it under the terms of the GNU Lesser General Public
00007 **  License as published by the Free Software Foundation; either
00008 **  version 2.1 of the License, or (at your option) any later version.
00009 **
00010 **  This file is distributed in the hope that it will be useful, but WITHOUT
00011 **  ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or
00012 **  FITNESS FOR A PARTICULAR PURPOSE. See the GNU Lesser General Public
00013 **  License for more details.
00014 **
00015 **  You should have received a copy of the GNU Lesser General Public
00016 **  License along with this library; if not, write to the Free Software
00017 **  Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA  02110-1301  USA
00018 **
00019 **  See http://www.geopsy.org for more information.
00020 **
00021 **  Created : 2008-11-03
00022 **  Authors :
00023 **    Marc Wathelet
00024 **    Marc Wathelet (LGIT, Grenoble, France)
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 } // namespace SciFigs
00112 
00113 #endif // CURVEBROWSERPROXY_H
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Friends Defines