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 setZoomFactors( double factorX, double factorY );
00074 virtual void setZoomFactorX( double factor );
00075 virtual void setZoomFactorY( double factor );
00076
00077 virtual QPointF zoomCenter() const;
00078
00079 virtual void setZoomCenter( const QPointF& center );
00080
00101 void setGridAttributes( bool circular, const GridAttributes & );
00102
00113 void resetGridAttributes( bool circular );
00114
00129 const GridAttributes gridAttributes( bool circular ) const;
00130
00143 bool hasOwnGridAttributes( bool circular ) const;
00144
00145 qreal angleUnit() const;
00146 qreal radiusUnit() const;
00147
00149 virtual void paint( QPainter* );
00150
00151 protected:
00152 virtual DataDimensionsList getDataDimensionsList() const;
00153 void paintEvent ( QPaintEvent* );
00154 void resizeEvent ( QResizeEvent* );
00155
00156 void layoutDiagrams();
00157 protected Q_SLOTS:
00158 void slotLayoutChanged( AbstractDiagram* diagram );
00159 void adjustZoomAndRepaint();
00160
00161 private:
00162 void setHasOwnGridAttributes(
00163 bool circular, bool on );
00164 };
00165
00166 }
00167
00168 #endif