/*
*
* $Id$
*
* This file is part of the Virtual Leaf.
*
* The Virtual Leaf is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* The Virtual Leaf is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with the Virtual Leaf. If not, see .
*
* Copyright 2010 Roeland Merks.
*
*/
#ifndef _DATA_PLOT_H_
#define _DATA_PLOT_H_
#include
#include
#include
#include
#include
#include
#include "curvecolors.h"
const int PLOT_SIZE = 1000;
class DataPlot : public QwtPlot
{
Q_OBJECT
public:
DataPlot(QWidget *parent, const QString title, const QStringList curvenames);
virtual ~DataPlot(void);
public slots:
// void setTimerInterval(double interval);
void AddValue(double t, double *x);
private:
void alignScales();
double *d_t;
double **d_x;
int d_interval; // timer in ms
int d_timerId;
QwtPlotCurve *curves;
int data_pos;
int ncurves;
CurveColors curvecolors;
protected:
// to write contents of DataPlot to a file
QFile *datfile;
QTextStream datstream;
};
class PlotDialog : public QDialog {
Q_OBJECT
public:
PlotDialog(QWidget *parent, const QString title, const QStringList curvenames);
~PlotDialog(void);
public slots:
// void setTimerInterval(double interval);
void AddValue(double t, double *x) {
//std::cerr << "AddValue receives: " << t << ", " << y << ", " << z << std::endl;
plot->AddValue(t,x);
}
private:
DataPlot *plot;
};
#endif