OpenCurves  0.9
plotexpression.h
1 //
2 // author Kazys Stepanas
3 //
4 // Copyright (c) CSIRO 2013
5 //
6 #ifndef __PLOTEXPRESSION_H_
7 #define __PLOTEXPRESSION_H_
8 
9 #include "plotsconfig.h"
10 
11 #include "plotexpressionbinddomain.h"
12 
13 #include <QList>
14 #include <QString>
15 
16 class PlotInstance;
17 class PlotBindingTracker;
18 class QwtPointSeriesData;
19 
92 {
93 public:
97  virtual ~PlotExpression();
98 
109  virtual double sample(double sampleTime) const = 0;
110 
133  virtual BindResult bind(const QList<PlotInstance *> &curves, PlotBindingTracker &bindTracker,
134  PlotExpressionBindDomain &domain, bool repeatLastBinding = false) = 0;
135 
139  virtual void unbind() {}
140 
143  virtual PlotExpression *clone() const = 0;
144 
147  inline QString toString() const { return stringExpression(); }
148 
157  virtual inline bool explicitTime() const { return false; }
158 
159 private:
163  virtual QString stringExpression() const = 0;
164 };
165 
166 #endif // __PLOTEXPRESSION_H_
virtual void unbind()
Unbinds the sampling state once sampling has completed.
Definition: plotexpression.h:139
virtual BindResult bind(const QList< PlotInstance * > &curves, PlotBindingTracker &bindTracker, PlotExpressionBindDomain &domain, bool repeatLastBinding=false)=0
Attempts to binds the PlotExpression to sample the given curves.
Supports multiple bindings of the same expression to different curves.
Definition: plotbindingtracker.h:34
virtual bool explicitTime() const
Is the curve generated with explicit time values?
Definition: plotexpression.h:157
PlotExpression()
Empty constructor.
Core data for binding a PlotExpression.
Definition: plotexpressionbinddomain.h:49
virtual ~PlotExpression()
Empty, virtual destructor.
Holds data for a single curve.
Definition: plotinstance.h:43
virtual PlotExpression * clone() const =0
Performs a deep clone of the PlotExpression.
BindResult
Return values for the PlotExpression::bind() method.
Definition: plotexpressionbinddomain.h:15
QString toString() const
Converts the PlotExpression into a parseable string form.
Definition: plotexpression.h:147
virtual double sample(double sampleTime) const =0
Called to generate a sample at sampleTime.
A PlotExpression represents an operation in a plot equation.
Definition: plotexpression.h:91