qwt_raster_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_RASTER_DATA_H
00013 #define QWT_RASTER_DATA_H 1
00014 
00015 #include <qmap.h>
00016 #include "qwt_global.h"
00017 #include "qwt_double_rect.h"
00018 #include "qwt_double_interval.h"
00019 
00020 #if QT_VERSION >= 0x040000
00021 #include <qlist.h>
00022 #include <QPolygonF>
00023 
00024 #if defined(QWT_TEMPLATEDLL)
00025 // MOC_SKIP_BEGIN
00026 template class QWT_EXPORT QMap<double, QPolygonF>;
00027 // MOC_SKIP_END
00028 #endif
00029 
00030 #else
00031 #include <qvaluelist.h>
00032 #include "qwt_array.h"
00033 #include "qwt_double_rect.h"
00034 #if defined(QWT_TEMPLATEDLL)
00035 // MOC_SKIP_BEGIN
00036 #ifndef QWTARRAY_TEMPLATE_QWTDOUBLEPOINT // by mjo3
00037 #define QWTARRAY_TEMPLATE_QWTDOUBLEPOINT
00038 template class QWT_EXPORT QwtArray<QwtDoublePoint>;
00039 #endif //end of QWTARRAY_TEMPLATE_QWTDOUBLEPOINT
00040 #ifndef QMAP_TEMPLATE_DOUBLE_QWTDOUBLEPOINT // by mjo3
00041 #define QMAP_TEMPLATE_DOUBLE_QWTDOUBLEPOINT
00042 template class QWT_EXPORT QMap<double, QwtArray<QwtDoublePoint> >;
00043 #endif //end of QMAP_TEMPLATE_QWTDOUBLEPOINT
00044 // MOC_SKIP_END
00045 #endif
00046 #endif
00047 
00048 class QwtScaleMap;
00049 
00053 class QWT_EXPORT QwtRasterData
00054 {
00055 public:
00056 #if QT_VERSION >= 0x040000
00057     typedef QMap<double, QPolygonF> ContourLines;
00058 #else
00059     typedef QMap<double, QwtArray<QwtDoublePoint> > ContourLines;
00060 #endif
00061 
00062     enum ConrecAttribute
00063     {
00064         IgnoreAllVerticesOnLevel = 1,
00065         IgnoreOutOfRange = 2
00066     };
00067 
00068     QwtRasterData();
00069     QwtRasterData(const QwtDoubleRect &);
00070     virtual ~QwtRasterData();
00071 
00073     virtual QwtRasterData *copy() const = 0;
00074 
00075     virtual void setBoundingRect(const QwtDoubleRect &);
00076     QwtDoubleRect boundingRect() const;
00077 
00078     virtual QSize rasterHint(const QwtDoubleRect &) const;
00079 
00080     virtual void initRaster(const QwtDoubleRect &, const QSize& raster);
00081     virtual void discardRaster();
00082 
00084     virtual double value(double x, double y) const = 0;
00085 
00087     virtual QwtDoubleInterval range() const = 0;
00088 
00089 #if QT_VERSION >= 0x040000
00090     virtual ContourLines contourLines(const QwtDoubleRect &rect,
00091         const QSize &raster, const QList<double> &levels, 
00092         int flags) const;
00093 #else
00094     virtual ContourLines contourLines(const QwtDoubleRect &rect,
00095         const QSize &raster, const QValueList<double> &levels, 
00096         int flags) const;
00097 #endif
00098 
00099     class Contour3DPoint;
00100     class ContourPlane;
00101 
00102 private:
00103     QwtDoubleRect d_boundingRect;
00104 };
00105 
00106 #endif

Generated on Mon Feb 26 21:22:38 2007 for Qwt User's Guide by  doxygen 1.4.6