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
00039 class KDCHART_EXPORT PolarCoordinatePlane : public AbstractCoordinatePlane
00040 {
00041 Q_OBJECT
00042
00043 Q_DISABLE_COPY( PolarCoordinatePlane )
00044 KDCHART_DECLARE_PRIVATE_DERIVED_PARENT( PolarCoordinatePlane, Chart* )
00045
00046 public:
00047 struct CoordinateTransformation;
00048 typedef QList<CoordinateTransformation> CoordinateTransformationList;
00049
00050 explicit PolarCoordinatePlane ( Chart* parent = 0 );
00051 ~PolarCoordinatePlane();
00052
00053 void addDiagram ( AbstractDiagram* diagram );
00054
00055 const QPointF translate ( const QPointF& diagramPoint ) const;
00056 const QPointF translatePolar ( const QPointF& diagramPoint ) const;
00057
00064 void setStartPosition( qreal degrees );
00068 qreal startPosition() const;
00069
00070 virtual double zoomFactorX() const;
00071 virtual double zoomFactorY() const;
00072
00073 virtual void setZoomFactorX( double factor );
00074 virtual void setZoomFactorY( double factor );
00075
00076 virtual QPointF zoomCenter() const;
00077
00078 virtual void setZoomCenter( const QPointF& center );
00079
00100 void setGridAttributes( bool circular, const GridAttributes & );
00101
00112 void resetGridAttributes( bool circular );
00113
00128 const GridAttributes gridAttributes( bool circular ) const;
00129
00142 bool hasOwnGridAttributes( bool circular ) const;
00143
00144 qreal angleUnit() const;
00145 qreal radiusUnit() const;
00146
00148 virtual void paint( QPainter* );
00149
00150 protected:
00151 virtual DataDimensionsList getDataDimensionsList() const;
00152 void paintEvent ( QPaintEvent* );
00153 void resizeEvent ( QResizeEvent* );
00154
00155 void layoutDiagrams();
00156 protected Q_SLOTS:
00157 void slotLayoutChanged( AbstractDiagram* diagram );
00158
00159 private:
00160 void setHasOwnGridAttributes(
00161 bool circular, bool on );
00162 };
00163
00164 }
00165
00166 #endif