Main Page | Class Hierarchy | Alphabetical List | Class List | Directories | File List | Class Members | File Members | Related Pages

qwt_data.h

00001 /* -*- mode: C++ ; c-file-style: "stroustrup" -*- *****************************
00002  * Qwt Widget Library
00003  * Copyright (C) 1997   Josef Wilgen
00004  * Copyright (C) 2002   Uwe Rathmann
00005  *
00006  * This library is free software; you can redistribute it and/or
00007  * modify it under the terms of the Qwt License, Version 1.0
00008  *****************************************************************************/
00009 
00010 // vim: expandtab
00011 
00012 #ifndef QWT_DATA_H
00013 #define QWT_DATA_H 1
00014 
00015 #include "qwt_global.h"
00016 #include "qwt_array.h"
00017 #include "qwt_double_rect.h"
00018 
00019 // MOC_SKIP_BEGIN
00020 #if defined(QWT_TEMPLATEDLL)
00021 template class QWT_EXPORT QwtArray<double>;
00022 #endif 
00023 // MOC_SKIP_END
00024 
00039 class QWT_EXPORT QwtData
00040 {
00041 public:
00042     QwtData();
00043     virtual ~QwtData(); 
00047     virtual QwtData *copy() const = 0;
00048 
00052     virtual size_t size() const = 0;
00058     virtual double x(size_t i) const = 0;
00064     virtual double y(size_t i) const = 0;
00065 
00066     virtual QwtDoubleRect boundingRect() const;
00067 
00068 protected:
00072     QwtData &operator=(const QwtData &);
00073 };
00074 
00078 class QWT_EXPORT QwtDoublePointData: public QwtData
00079 {
00080 public:
00086     QwtDoublePointData(const QwtArray<QwtDoublePoint> &);
00087     QwtDoublePointData &operator=(const QwtDoublePointData &);
00088     virtual QwtData *copy() const;
00089 
00090     virtual size_t size() const;
00091     virtual double x(size_t i) const;
00092     virtual double y(size_t i) const;
00093 
00094     const QwtArray<QwtDoublePoint> data() const;
00095 
00096 private:
00097     QwtArray<QwtDoublePoint> d_data;
00098 };
00099 
00104 class QWT_EXPORT QwtArrayData: public QwtData
00105 {
00106 public:
00107     QwtArrayData(const QwtArray<double> &x, const QwtArray<double> &y);
00108     QwtArrayData(const double *x, const double *y, size_t size);
00109     QwtArrayData &operator=(const QwtArrayData &);
00110     virtual QwtData *copy() const;
00111 
00112     virtual size_t size() const;
00113     virtual double x(size_t i) const;
00114     virtual double y(size_t i) const;
00115 
00116     const QwtArray<double> &xData() const;
00117     const QwtArray<double> &yData() const;
00118 
00119     virtual QwtDoubleRect boundingRect() const;
00120 
00121 private:
00122     QwtArray<double> d_x;
00123     QwtArray<double> d_y;
00124 };
00125 
00129 class QWT_EXPORT QwtCPointerData: public QwtData
00130 {
00131 public:
00140     QwtCPointerData(const double *x, const double *y, size_t size);
00141     QwtCPointerData &operator=(const QwtCPointerData &);
00142     virtual QwtData *copy() const;
00143 
00144     virtual size_t size() const;
00145     virtual double x(size_t i) const;
00146     virtual double y(size_t i) const;
00147 
00148     const double *xData() const;
00149     const double *yData() const;
00150 
00151     virtual QwtDoubleRect boundingRect() const;
00152 
00153 private:
00154     const double *d_x;
00155     const double *d_y;
00156     size_t d_size;
00157 };
00158 
00159 #endif // !QWT_DATA

Generated on Wed Aug 31 23:02:29 2005 for Qwt User's Guide by  doxygen 1.4.1