KD Chart 2  [rev.2.5]
KDChartPolarCoordinatePlane.h
Go to the documentation of this file.
00001 /****************************************************************************
00002 ** Copyright (C) 2001-2012 Klaralvdalens Datakonsult AB.  All rights reserved.
00003 **
00004 ** This file is part of the KD Chart library.
00005 **
00006 ** Licensees holding valid commercial KD Chart licenses may use this file in
00007 ** accordance with the KD Chart Commercial License Agreement provided with
00008 ** the Software.
00009 **
00010 **
00011 ** This file may be distributed and/or modified under the terms of the
00012 ** GNU General Public License version 2 and version 3 as published by the
00013 ** Free Software Foundation and appearing in the file LICENSE.GPL.txt included.
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 ** Contact info@kdab.com if any conditions of this licensing are not
00019 ** clear to you.
00020 **
00021 **********************************************************************/
00022 
00023 #ifndef KDCHART_POLAR_COORDINATEPLANE_H
00024 #define KDCHART_POLAR_COORDINATEPLANE_H
00025 
00026 #include "KDChartAbstractCoordinatePlane.h"
00027 
00028 namespace KDChart {
00029 
00030     class Chart;
00031     class PaintContext;
00032 
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 
00064         void setStartPosition( qreal degrees );
00068         qreal startPosition() const;
00069 
00070         virtual qreal zoomFactorX() const;
00071         virtual qreal zoomFactorY() const;
00072 
00073         virtual void setZoomFactors( qreal factorX, qreal factorY );
00074         virtual void setZoomFactorX( qreal factor );
00075         virtual void setZoomFactorY( qreal 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( bool circular, bool on );
00163     };
00164 
00165 }
00166 
00167 #endif
 All Classes Namespaces Files Functions Variables Typedefs Enumerations Enumerator Properties Defines

Klarälvdalens Datakonsult AB (KDAB)
Qt-related services and products
http://www.kdab.com/
http://www.kdab.com/products/kd-chart/