QGIS API Documentation 3.28.0-Firenze (ed3ad0430f)
qgsrasterrendererregistry.h
Go to the documentation of this file.
1/***************************************************************************
2 qgsrasterrendererregistry.h
3 ---------------------------
4 begin : January 2012
5 copyright : (C) 2012 by Marco Hugentobler
6 email : marco at sourcepole dot ch
7 ***************************************************************************/
8
9/***************************************************************************
10 * *
11 * This program is free software; you can redistribute it and/or modify *
12 * it under the terms of the GNU General Public License as published by *
13 * the Free Software Foundation; either version 2 of the License, or *
14 * (at your option) any later version. *
15 * *
16 ***************************************************************************/
17
18#ifndef QGSRASTERRENDERERREGISTRY_H
19#define QGSRASTERRENDERERREGISTRY_H
20
21
22#define SIP_NO_FILE
23
24
25
26#include "qgis_core.h"
27#include "qgsrasterlayer.h" //for DrawingStyle enum
28#include <QHash>
29#include <QString>
30
31class QDomElement;
33class QgsRasterLayer;
36
37typedef QgsRasterRenderer *( *QgsRasterRendererCreateFunc )( const QDomElement &, QgsRasterInterface *input );
38typedef QgsRasterRendererWidget *( *QgsRasterRendererWidgetCreateFunc )( QgsRasterLayer *, const QgsRectangle &extent );
39
45{
46 QgsRasterRendererRegistryEntry( const QString &name, const QString &visibleName, QgsRasterRendererCreateFunc rendererFunction,
47 QgsRasterRendererWidgetCreateFunc widgetFunction );
48
53 QString name;
54 QString visibleName; //visible (and translatable) name
55 QIcon icon();
56 QgsRasterRendererCreateFunc rendererCreateFunction = nullptr ; //pointer to create function
57 QgsRasterRendererWidgetCreateFunc widgetCreateFunction = nullptr ; //pointer to create function for renderer widget
58};
59
70{
71 public:
72
74
75 void insert( const QgsRasterRendererRegistryEntry &entry );
76 void insertWidgetFunction( const QString &rendererName, QgsRasterRendererWidgetCreateFunc func );
77 bool rendererData( const QString &rendererName, QgsRasterRendererRegistryEntry &data ) const;
78 QStringList renderersList() const;
79 QList< QgsRasterRendererRegistryEntry > entries() const;
80
85 QgsRasterRenderer *defaultRendererForDrawingStyle( QgsRaster::DrawingStyle drawingStyle, QgsRasterDataProvider *provider ) const;
86
87 private:
88 QHash< QString, QgsRasterRendererRegistryEntry > mEntries;
89 QStringList mSortedEntries;
90
91 //read min/max values from
92 bool minMaxValuesForBand( int band, QgsRasterDataProvider *provider, double &minValue, double &maxValue ) const;
93};
94
95#endif // QGSRASTERRENDERERREGISTRY_H
Base class for raster data providers.
Base class for processing filters like renderers, reprojector, resampler etc.
Represents a raster layer.
Registry for raster renderers.
Abstract base class for widgets which configure a QgsRasterRenderer.
Raster renderer pipe that applies colors to a raster.
DrawingStyle
This enumerator describes the different kinds of drawing we can do.
Definition: qgsraster.h:90
A rectangle specified with double values.
Definition: qgsrectangle.h:42
QgsRasterRendererWidget *(* QgsRasterRendererWidgetCreateFunc)(QgsRasterLayer *, const QgsRectangle &extent)
QgsRasterRenderer *(* QgsRasterRendererCreateFunc)(const QDomElement &, QgsRasterInterface *input)
Registry for raster renderer entries.
QgsRasterRendererRegistryEntry()=default
Constructor for QgsRasterRendererRegistryEntry.