00001
00002
00003
00004
00005
00006
00007
00008
00009
00010
00011
00012
00013
00014
00015
00016
00017
00018
00019
00020
00021
00022
00023
00024
00025
00026 #ifndef KDCHART_POLAR_COORDINATEPLANE_H
00027 #define KDCHART_POLAR_COORDINATEPLANE_H
00028
00029 #include "KDChartAbstractCoordinatePlane.h"
00030
00031 namespace KDChart {
00032
00033 class Chart;
00034 class PaintContext;
00035
00036 class KDCHART_EXPORT PolarCoordinatePlane : public AbstractCoordinatePlane
00037 {
00038 Q_OBJECT
00039
00040 Q_DISABLE_COPY( PolarCoordinatePlane )
00041 KDCHART_DECLARE_PRIVATE_DERIVED_PARENT( PolarCoordinatePlane, Chart* )
00042
00043 public:
00044 struct CoordinateTransformation;
00045 typedef QList<CoordinateTransformation> CoordinateTransformationList;
00046
00047 explicit PolarCoordinatePlane ( Chart* parent = 0 );
00048 ~PolarCoordinatePlane();
00049
00050 void addDiagram ( AbstractDiagram* diagram );
00051
00052 const QPointF translate ( const QPointF& diagramPoint ) const;
00053 const QPointF translatePolar ( const QPointF& diagramPoint ) const;
00054
00061 void setStartPosition( qreal degrees );
00065 qreal startPosition() const;
00066
00067 virtual double zoomFactorX() const;
00068 virtual double zoomFactorY() const;
00069
00070 virtual void setZoomFactorX( double factor );
00071 virtual void setZoomFactorY( double factor );
00072
00073 virtual QPointF zoomCenter() const;
00074
00075 virtual void setZoomCenter( QPointF center );
00076
00097 void setGridAttributes( bool circular, const GridAttributes & );
00098
00109 void resetGridAttributes( bool circular );
00110
00125 const GridAttributes gridAttributes( bool circular ) const;
00126
00139 bool hasOwnGridAttributes( bool circular ) const;
00140
00141 qreal angleUnit() const;
00142 qreal radiusUnit() const;
00143
00145 virtual void paint( QPainter* );
00146
00147 protected:
00148 virtual DataDimensionsList getDataDimensionsList() const;
00149 void paintEvent ( QPaintEvent* );
00150 void resizeEvent ( QResizeEvent* );
00151
00152 void layoutDiagrams();
00153 protected Q_SLOTS:
00154 void slotLayoutChanged( AbstractDiagram* diagram );
00155
00156 private:
00157 void setHasOwnGridAttributes(
00158 bool circular, bool on );
00159 };
00160
00161 }
00162
00163 #endif