00001
00002
00003 #ifndef GRAPHM_H
00004 #define GRAPHM_H
00005
00006 #include <qtextstream.h>
00007 #include <qprogressdialog.h>
00008 #include "Graph.h"
00009 #include "LRange.h"
00010
00011 class GraphM: public Graph
00012 {
00013 public:
00014 GraphM(QString n="", QString l="", LRange r[3]=0, LSource src=SFUNCTION, PType t=PSURFACE, Style *st=0,
00015 Symbol *sy=0, double *a=0, int dimx=0, int dimy=0, bool s=true);
00016 ~GraphM();
00017 GraphM *Clone();
00018 double *Data() { return array; }
00019 void setData(double *data) { array = data; }
00020 QPixmap Pixmap();
00021 void setPixmap(QPixmap pm);
00022 int width() { return (int)range[0].rMax(); }
00023 int height() { return (int)range[1].rMax(); }
00024 void setWidth(int w) { range[0] = LRange(0,w); }
00025 void setHeight(int h) { range[1] = LRange(0,h); }
00026 LRange Range(int i) { return range[i]; }
00027 void setRange(LRange r[3]) { range[0]=r[0];range[1]=r[1];range[2]=r[2]; }
00028 void setZRange(LRange *r) { range[2]=*r; }
00029 int NX() { return nx; }
00030 int NY() { return ny; }
00031 void setNumber(int NX,int NY) {nx=NX, ny=NY; }
00032 QStringList Info();
00033 void save(QTextStream *t, QProgressDialog *progress);
00034 void open(QTextStream *t, int version, QProgressDialog *progress);
00035 void saveXML(QDomDocument doc, QDomElement graphtag);
00036 void openXML(QDomNode node);
00037 private:
00038 LRange range[3];
00039 int nx, ny;
00040 double *array;
00041 };
00042
00043 #endif // GRAPHM_H