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

Generated on Mon Sep 17 16:16:50 2007 for KD Chart 2 by  doxygen 1.5.1