SciDAVis  1.D4
FunctionCurve.h
Go to the documentation of this file.
1 /***************************************************************************
2  File : FunctionCurve.h
3  Project : SciDAVis
4  --------------------------------------------------------------------
5  Copyright : (C) 2006 by Ion Vasilief, Tilman Benkert
6  Email (use @ for *) : ion_vasilief*yahoo.fr, thzs*gmx.net
7  Description : Function curve class
8 
9  ***************************************************************************/
10 
11 /***************************************************************************
12  * *
13  * This program is free software; you can redistribute it and/or modify *
14  * it under the terms of the GNU General Public License as published by *
15  * the Free Software Foundation; either version 2 of the License, or *
16  * (at your option) any later version. *
17  * *
18  * This program is distributed in the hope that it will be useful, *
19  * but WITHOUT ANY WARRANTY; without even the implied warranty of *
20  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the *
21  * GNU General Public License for more details. *
22  * *
23  * You should have received a copy of the GNU General Public License *
24  * along with this program; if not, write to the Free Software *
25  * Foundation, Inc., 51 Franklin Street, Fifth Floor, *
26  * Boston, MA 02110-1301 USA *
27  * *
28  ***************************************************************************/
29 #ifndef FUNCTIONCURVE_H
30 #define FUNCTIONCURVE_H
31 
32 #include "PlotCurve.h"
33 #include "Script.h"
34 #include <QObject>
35 
36 // Function curve class
37 class FunctionCurve: public QObject, public PlotCurve, public scripted
38 {
39  Q_OBJECT
40 public:
41  enum FunctionType{Normal = 0, Parametric = 1, Polar = 2};
42 
43  FunctionCurve(ApplicationWindow * parent, const FunctionType& t, const char *name=0);
44  FunctionCurve(ApplicationWindow * parent, const char *name=0);
45 
46  double startRange(){return d_from;};
47  double endRange(){return d_to;};
48  void setRange(double from, double to);
49 
50  QStringList formulas(){return d_formulas;};
51  void setFormulas(const QStringList& lst){d_formulas = lst;};
52 
54  void setFormula(const QString& s){d_formulas = QStringList() << s;};
55 
56  QString variable(){return d_variable;};
57  void setVariable(const QString& s){d_variable = s;};
58 
61 
62  void copy(FunctionCurve *f);
63 
65  QString legend() const;
66 
67  bool loadData(int points = 0);
68 
69 protected slots:
70  void scriptError(const QString & message, const QString & scriptName, int lineNumber);
71 
72 private:
74  QString d_variable;
75  QStringList d_formulas;
76  double d_from, d_to;
77 };
78 
79 #endif
80