|
QGIS API Documentation
master-3f58142
|
00001 /*************************************************************************** 00002 qgsdiagram.h 00003 --------------------- 00004 begin : March 2011 00005 copyright : (C) 2011 by Marco Hugentobler 00006 email : marco dot hugentobler at sourcepole dot ch 00007 *************************************************************************** 00008 * * 00009 * This program is free software; you can redistribute it and/or modify * 00010 * it under the terms of the GNU General Public License as published by * 00011 * the Free Software Foundation; either version 2 of the License, or * 00012 * (at your option) any later version. * 00013 * * 00014 ***************************************************************************/ 00015 #ifndef QGSDIAGRAM_H 00016 #define QGSDIAGRAM_H 00017 00018 #include "qgsfeature.h" 00019 #include <QPen> 00020 #include <QBrush> 00021 00022 class QPainter; 00023 class QPointF; 00024 class QgsDiagramSettings; 00025 class QgsDiagramInterpolationSettings; 00026 00027 class QgsRenderContext; 00028 00029 00030 00032 class CORE_EXPORT QgsDiagram 00033 { 00034 public: 00035 virtual ~QgsDiagram() {} 00037 virtual void renderDiagram( const QgsAttributes& att, QgsRenderContext& c, const QgsDiagramSettings& s, const QPointF& position ) = 0; 00038 virtual QString diagramName() const = 0; 00040 virtual QSizeF diagramSize( const QgsAttributes& attributes, const QgsRenderContext& c, const QgsDiagramSettings& s ) = 0; 00042 virtual QSizeF diagramSize( const QgsAttributes& attributes, const QgsRenderContext& c, const QgsDiagramSettings& s, const QgsDiagramInterpolationSettings& is ) = 0; 00043 00044 protected: 00050 void setPenWidth( QPen& pen, const QgsDiagramSettings& s, const QgsRenderContext& c ); 00051 00059 QSizeF sizePainterUnits( const QSizeF& size, const QgsDiagramSettings& s, const QgsRenderContext& c ); 00060 00068 float sizePainterUnits( float l, const QgsDiagramSettings& s, const QgsRenderContext& c ); 00069 00076 QFont scaledFont( const QgsDiagramSettings& s, const QgsRenderContext& c ); 00077 }; 00078 00079 #endif // QGSDIAGRAM_H