mirror of
				https://github.com/qgis/QGIS.git
				synced 2025-11-04 00:04:25 -05:00 
			
		
		
		
	
		
			
				
	
	
		
			82 lines
		
	
	
		
			3.7 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
			
		
		
	
	
			82 lines
		
	
	
		
			3.7 KiB
		
	
	
	
		
			Plaintext
		
	
	
	
	
	
class QgsDiagram
 | 
						|
{
 | 
						|
%TypeHeaderCode
 | 
						|
#include <qgsdiagram.h>
 | 
						|
%End
 | 
						|
  public:
 | 
						|
    virtual ~QgsDiagram();
 | 
						|
    /** Returns an instance that is equivalent to this one
 | 
						|
     * @note added in 2.4 */
 | 
						|
    virtual QgsDiagram* clone() const = 0 /Factory/;
 | 
						|
 | 
						|
    void clearCache();
 | 
						|
 | 
						|
    /** Returns a prepared expression for the specified context.
 | 
						|
     * @param expression expression string
 | 
						|
     * @param context expression context
 | 
						|
     * @note added in QGIS 2.12
 | 
						|
     */
 | 
						|
    QgsExpression* getExpression( const QString& expression, const QgsExpressionContext& context );
 | 
						|
 | 
						|
    /** Draws the diagram at the given position (in pixel coordinates)*/
 | 
						|
    virtual void renderDiagram( const QgsFeature& feature, QgsRenderContext& c, const QgsDiagramSettings& s, QPointF position ) = 0;
 | 
						|
    virtual QString diagramName() const = 0;
 | 
						|
    /** Returns the size in map units the diagram will use to render.*/
 | 
						|
    virtual QSizeF diagramSize( const QgsAttributes& attributes, const QgsRenderContext& c, const QgsDiagramSettings& s ) = 0;
 | 
						|
    /** Returns the size in map units the diagram will use to render. Interpolate size*/
 | 
						|
    virtual QSizeF diagramSize( const QgsFeature& feature, const QgsRenderContext& c, const QgsDiagramSettings& s, const QgsDiagramInterpolationSettings& is ) = 0;
 | 
						|
 | 
						|
    /** Returns the size of the legend item for the diagram corresponding to a specified value.
 | 
						|
     * @param value value to return legend item size for
 | 
						|
     * @param s diagram settings
 | 
						|
     * @param is interpolation settings
 | 
						|
     * @note added in QGIS 2.16
 | 
						|
     */
 | 
						|
    virtual double legendSize( double value, const QgsDiagramSettings& s, const QgsDiagramInterpolationSettings& is ) const = 0;
 | 
						|
 | 
						|
  protected:
 | 
						|
    QgsDiagram();
 | 
						|
    QgsDiagram( const QgsDiagram& other );
 | 
						|
 | 
						|
    /** Changes the pen width to match the current settings and rendering context
 | 
						|
     *  @param pen The pen to modify
 | 
						|
     *  @param s   The settings that specify the pen width
 | 
						|
     *  @param c   The rendering specifying the proper scale units for pixel conversion
 | 
						|
     */
 | 
						|
    void setPenWidth( QPen& pen, const QgsDiagramSettings& s, const QgsRenderContext& c );
 | 
						|
 | 
						|
    /** Calculates a size to match the current settings and rendering context
 | 
						|
     *  @param size The size to convert
 | 
						|
     *  @param s    The settings that specify the size type
 | 
						|
     *  @param c    The rendering specifying the proper scale units for pixel conversion
 | 
						|
     *
 | 
						|
     *  @return The converted size for rendering
 | 
						|
     */
 | 
						|
    QSizeF sizePainterUnits( QSizeF size, const QgsDiagramSettings& s, const QgsRenderContext& c );
 | 
						|
 | 
						|
    /** Calculates a length to match the current settings and rendering context
 | 
						|
     *  @param l    The length to convert
 | 
						|
     *  @param s    Unused
 | 
						|
     *  @param c    The rendering specifying the proper scale units for pixel conversion
 | 
						|
     *
 | 
						|
     *  @return The converted length for rendering
 | 
						|
     */
 | 
						|
    float sizePainterUnits( float l, const QgsDiagramSettings& s, const QgsRenderContext& c );
 | 
						|
 | 
						|
    /** Calculates a size to match the current settings and rendering context
 | 
						|
     *  @param s    The settings that contain the font size and size type
 | 
						|
     *  @param c    The rendering specifying the proper scale units for pixel conversion
 | 
						|
     *
 | 
						|
     *  @return The properly scaled font for rendering
 | 
						|
     */
 | 
						|
    QFont scaledFont( const QgsDiagramSettings& s, const QgsRenderContext& c );
 | 
						|
 | 
						|
    /** Returns the scaled size of a diagram for a value, respecting the specified diagram interpolation settings.
 | 
						|
     * @param value value to calculate corresponding circular size for
 | 
						|
     * @param s diagram settings
 | 
						|
     * @param is interpolation settings
 | 
						|
     * @note added in QGIS 2.16
 | 
						|
     */
 | 
						|
    QSizeF sizeForValue( double value, const QgsDiagramSettings& s, const QgsDiagramInterpolationSettings& is ) const;
 | 
						|
};
 |