QGIS API Documentation  3.20.0-Odense (decaadbb31)
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 
31 class QDomElement;
32 class QgsRasterInterface;
33 class QgsRasterLayer;
34 class QgsRasterRenderer;
36 
37 typedef QgsRasterRenderer *( *QgsRasterRendererCreateFunc )( const QDomElement &, QgsRasterInterface *input );
38 typedef 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 
69 class CORE_EXPORT QgsRasterRendererRegistry
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.
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
QgsRasterRenderer *(* QgsRasterRendererCreateFunc)(const QDomElement &, QgsRasterInterface *input)
QgsRasterRendererWidget *(* QgsRasterRendererWidgetCreateFunc)(QgsRasterLayer *, const QgsRectangle &extent)
Registry for raster renderer entries.
QgsRasterRendererRegistryEntry()=default
Constructor for QgsRasterRendererRegistryEntry.