Main Page | Namespace List | Class Hierarchy | Alphabetical List | Class List | File List | Namespace Members | Class Members | File Members | Related Pages

KDChartPolarCoordinatePlane.h

Go to the documentation of this file.
00001 /****************************************************************************
00002  ** Copyright (C) 2006 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 
00036     class KDCHART_EXPORT PolarCoordinatePlane : public AbstractCoordinatePlane
00037     {
00038         Q_OBJECT
00039 
00040         Q_DISABLE_COPY( PolarCoordinatePlane )
00041         KDCHART_DECLARE_PRIVATE_DERIVED_PARENT( PolarCoordinatePlane, Chart* )
00042 
00043     public:
00044         struct CoordinateTransformation;
00045         typedef QList<CoordinateTransformation> CoordinateTransformationList;
00046 
00047         explicit PolarCoordinatePlane ( Chart* parent = 0 );
00048         ~PolarCoordinatePlane();
00049 
00050         void addDiagram ( AbstractDiagram* diagram );
00051 
00052         const QPointF translate ( const QPointF& diagramPoint ) const;
00053         const QPointF translatePolar ( const QPointF& diagramPoint ) const;
00054 
00061         void setStartPosition( qreal degrees );
00065         qreal startPosition() const;
00066 
00067         virtual double zoomFactorX() const;
00068         virtual double zoomFactorY() const;
00069 
00070         virtual void setZoomFactorX( double factor );
00071         virtual void setZoomFactorY( double factor );
00072 
00073         virtual QPointF zoomCenter() const;
00074 
00075         virtual void setZoomCenter( QPointF center );
00076 
00097         void setGridAttributes( bool circular, const GridAttributes & );
00098 
00109         void resetGridAttributes( bool circular );
00110 
00125         const GridAttributes gridAttributes( bool circular ) const;
00126 
00139         bool hasOwnGridAttributes( bool circular ) const;
00140 
00141         qreal angleUnit() const;
00142         qreal radiusUnit() const;
00143 
00145         virtual void paint( QPainter* );
00146 
00147     protected:
00148         virtual DataDimensionsList getDataDimensionsList() const;
00149         void paintEvent ( QPaintEvent* );
00150         void resizeEvent ( QResizeEvent* );
00151 
00152         void layoutDiagrams();
00153     protected Q_SLOTS:
00154         void slotLayoutChanged( AbstractDiagram* diagram );
00155 
00156     private:
00157         void setHasOwnGridAttributes(
00158             bool circular, bool on );
00159     };
00160 
00161 }
00162 
00163 #endif

Generated on Thu May 10 11:06:25 2007 for KD Chart 2 by doxygen 1.3.6