# KDChartPolarCoordinatePlane.h

Go to the documentation of this file.

    00001 /****************************************************************************
    00002  ** Copyright (C) 2007 Klarälvdalens Datakonsult AB.  All rights reserved.
    00003  **
    00004  ** This file is part of the KD Chart library.
    00005  **
    00006  ** This file may be distributed and/or modified under the terms of the
    00007  ** GNU General Public License version 2 as published by the Free Software
    00008  ** Foundation and appearing in the file LICENSE.GPL included in the
    00009  ** packaging of this file.
    00010  **
    00011  ** Licensees holding valid commercial KD Chart licenses may use this file in
    00012  ** accordance with the KD Chart Commercial License Agreement provided with
    00013  ** the Software.
    00014  **
    00015  ** This file is provided AS IS with NO WARRANTY OF ANY KIND, INCLUDING THE
    00016  ** WARRANTY OF DESIGN, MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE.
    00017  **
    00018  ** See http://www.kdab.net/kdchart for
    00019  **   information about KDChart Commercial License Agreements.
    00020  **
    00021  ** Contact info@kdab.net if any conditions of this
    00022  ** licensing are not clear to you.
    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