Qwt Polar User's Guide
1.0.1
|
00001 /* -*- mode: C++ ; c-file-style: "stroustrup" -*- ***************************** 00002 * QwtPolar Widget Library 00003 * Copyright (C) 2008 Uwe Rathmann 00004 * 00005 * This library is free software; you can redistribute it and/or 00006 * modify it under the terms of the Qwt License, Version 1.0 00007 *****************************************************************************/ 00008 00009 #ifndef QWT_POLAR_SPECTROGRAM_H 00010 #define QWT_POLAR_SPECTROGRAM_H 00011 00012 #include "qwt_polar_global.h" 00013 #include "qwt_polar_item.h" 00014 #include <qimage.h> 00015 00016 class QwtRasterData; 00017 class QwtColorMap; 00018 00028 class QWT_POLAR_EXPORT QwtPolarSpectrogram: public QwtPolarItem 00029 { 00030 public: 00037 enum PaintAttribute 00038 { 00044 ApproximatedAtan = 0x01 00045 }; 00046 00048 typedef QFlags<PaintAttribute> PaintAttributes; 00049 00050 explicit QwtPolarSpectrogram(); 00051 virtual ~QwtPolarSpectrogram(); 00052 00053 void setData( QwtRasterData *data ); 00054 const QwtRasterData *data() const; 00055 00056 void setColorMap( QwtColorMap * ); 00057 const QwtColorMap *colorMap() const; 00058 00059 void setPaintAttribute( PaintAttribute, bool on = true ); 00060 bool testPaintAttribute( PaintAttribute ) const; 00061 00062 void setRenderThreadCount( uint numThreads ); 00063 uint renderThreadCount() const; 00064 00065 virtual int rtti() const; 00066 00067 virtual void draw( QPainter *painter, 00068 const QwtScaleMap &azimuthMap, const QwtScaleMap &radialMap, 00069 const QPointF &pole, double radius, 00070 const QRectF &canvasRect ) const; 00071 00072 virtual QwtInterval boundingInterval( int scaleId ) const; 00073 00074 protected: 00075 virtual QImage renderImage( 00076 const QwtScaleMap &azimuthMap, const QwtScaleMap &radialMap, 00077 const QPointF &pole, const QRect &rect ) const; 00078 00079 virtual void renderTile( 00080 const QwtScaleMap &azimuthMap, const QwtScaleMap &radialMap, 00081 const QPointF &pole, const QPoint &imagePos, 00082 const QRect &tile, QImage *image ) const; 00083 00084 private: 00085 class TileInfo; 00086 void renderTile( const QwtScaleMap &, const QwtScaleMap &, 00087 const QPointF &pole, TileInfo * ) const; 00088 00089 class PrivateData; 00090 PrivateData *d_data; 00091 }; 00092 00093 Q_DECLARE_OPERATORS_FOR_FLAGS( QwtPolarSpectrogram::PaintAttributes ) 00094 00095 #endif