Main Page   Class Hierarchy   Compound List   File List   Compound Members   File Members  

TxPlotData.h

Go to the documentation of this file.
00001 //-----------------------------------------------------------------------------
00002 //
00003 // File:        TxPlotData.h
00004 //
00005 // Purpose:     Interface for a class that holds data for a plot
00006 //
00007 // Version:     $Id: TxPlotData.h,v 1.1 2001/09/21 21:35:29 kgl Exp $
00008 //
00009 // Copyright 1997-2000, Tech-X Corporation
00010 //
00011 //-----------------------------------------------------------------------------
00012 
00013 #ifndef TX_PLOT_DATA_H
00014 #define TX_PLOT_DATA_H
00015 
00016 // unix includes
00017 #include <assert.h>
00018 #include <iostream.h>
00019 
00020 // txmath includes
00021 #include <TxAttributeSet.h>
00022 
00047 // class TxPlotData : public TxDataSet {
00048 class TxPlotData : public TxAttributeSet {
00049 
00050   public:
00051 
00055     TxPlotData();
00056 
00063     TxPlotData(int nr, int nc);
00064 
00068     virtual ~TxPlotData();
00069 
00075     virtual TXSTD::string getClassID() const { return "TxPlotData";}
00076 
00080     virtual void restart();
00081 
00087     int getComplete(){ return completed;}
00088 
00094     //virtual int read(istream& istr);
00095 
00101    // virtual int write(ostream& ostr) const;
00102 
00106     virtual void paramsChanged();
00107 
00111     virtual void optionsChanged();
00112 
00116     virtual void stringsChanged();
00117 
00123     virtual int moreData()=0;
00124 
00128     virtual void calcLims()=0;
00129 
00135     virtual int getNumPlots() const =0;
00136 
00142     virtual const TXSTD::string getTitle(int) const =0;
00143 
00149     virtual const TXSTD::string getXLabel(int) const =0;
00150 
00158     virtual double getXMin(int i) const = 0;
00159 
00161     virtual double getXMinPlot(int) const =0;
00162 
00164     virtual double getXMax(int) const =0;
00165 
00167     virtual double getXMaxPlot(int) const =0;
00168 
00170     virtual const TXSTD::string getYLabel(int) const =0;
00171 
00173     virtual double getYMin(int) const =0;
00174 
00176     virtual double getYMinPlot(int) const =0;
00177 
00179     virtual double getYMax(int) const =0;
00180 
00182     virtual double getYMaxPlot(int) const =0;
00183 
00185     int getMaxNumRows() const { return maxNumRows;}
00186 
00188     int getMaxNumColumns() const { return maxNumCols;}
00189 
00191     int getNumRows() const { return numRows;}
00192 
00194     int getNumColumns() const { return numCols;}
00195 
00197     double getData(int i, int j) const { return data[i*maxNumCols+j];}
00198 
00200     const double* getDataPtr(int i, int j) const { 
00201         // cerr << "DataPtr: accessing i = " << i << ", j = " << j << endl;
00202         return &data[i*maxNumCols+j];
00203     }
00204 
00205   protected:
00206 
00210     void setComplete(int iflag=1) {
00211       completed = iflag;
00212     }
00213 
00215     void setMaxNumRows(int);
00216 
00218     void setMaxNumColumns(int);
00219 
00221     void setNumRows(int);
00222 
00224     void setNumColumns(int);
00225 
00227     double& getDataRef(int i, int j) const { return data[i*maxNumCols+j];}
00228 
00230     void setData(int, int, double);
00231 
00233     void setRow(int i, double*);
00234 
00238     void setRow(int, double*, int, int);
00239 
00241     void appendRow(double* d) {
00242       setRow(getNumRows(), d);
00243       numRows++;
00244     }
00245 
00247     void setColumn(int i, double*);
00248 
00257     void setColumn(int i, double* dptr, int rmn, int rmx);
00258 
00264     void appendColumn(double* d) {
00265       setColumn(getNumColumns(), d);
00266       numCols++;
00267     }
00268 
00269   private:
00270 
00274     TxPlotData(TxPlotData&);
00275 
00279     const TxPlotData& operator=(const TxPlotData&);
00280 
00283     static double chgMemRatio;
00284 
00286     int size;
00287 
00289     int maxNumRows;
00290 
00292     int maxNumCols;
00293 
00295     double* data;
00296 
00298     int numRows;
00299 
00302     int numCols;
00303 
00305     int completed;
00306 
00308     static double version;
00309 
00310 };
00311 
00312 #endif  // TX_PLOT_DATA_H
Copyright Tech-X Corporation, all rights reserved.