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 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

Generated on Thu Mar 4 23:19:12 2010 for KD Chart 2 by  doxygen 1.5.4