QGIS API Documentation 3.41.0-Master (af5edcb665c)
Loading...
Searching...
No Matches
qgsrasterlayerrenderer.h
Go to the documentation of this file.
1/***************************************************************************
2 qgsrasterlayerrenderer.h
3 --------------------------------------
4 Date : December 2013
5 Copyright : (C) 2013 by Martin Dobias
6 Email : wonder dot sk at gmail dot com
7 ***************************************************************************
8 * *
9 * This program is free software; you can redistribute it and/or modify *
10 * it under the terms of the GNU General Public License as published by *
11 * the Free Software Foundation; either version 2 of the License, or *
12 * (at your option) any later version. *
13 * *
14 ***************************************************************************/
15
16#ifndef QGSRASTERLAYERRENDERER_H
17#define QGSRASTERLAYERRENDERER_H
18
19#define SIP_NO_FILE
20
21#include "qgsmaplayerrenderer.h"
23
24class QPainter;
25
26class QgsMapToPixel;
27class QgsRasterLayer;
28class QgsRasterPipe;
31
34
35#include "qgsrasterinterface.h"
36
38
44class CORE_EXPORT QgsRasterLayerRendererFeedback : public QgsRasterBlockFeedback
45{
46 Q_OBJECT
47
48 public:
50 explicit QgsRasterLayerRendererFeedback( QgsRasterLayerRenderer *r );
51
53 void onNewData() override;
54 private:
55 QgsRasterLayerRenderer *mR = nullptr;
56 int mMinimalPreviewInterval;
57 QTime mLastPreview;
58};
59
61
69{
70 public:
71 QgsRasterLayerRenderer( QgsRasterLayer *layer, QgsRenderContext &rendererContext );
72 ~QgsRasterLayerRenderer() override;
73
74 bool render() override;
75 QgsFeedback *feedback() const override;
76 bool forceRasterRender() const override;
77
78 private:
79
80 void prepareLabeling( QgsRasterLayer *layer );
81 void drawLabeling();
82
83 QString mLayerName;
84 QgsRasterViewPort *mRasterViewPort = nullptr;
85
86 double mLayerOpacity = 1.0;
87 std::unique_ptr<QgsRasterPipe> mPipe;
88
89 Qgis::RasterProviderCapabilities mProviderCapabilities;
90 Qgis::RasterInterfaceCapabilities mInterfaceCapabilities;
91
93 QgsRasterLayerRendererFeedback *mFeedback = nullptr;
94
95 QList< QgsMapClippingRegion > mClippingRegions;
96
97 double mElevationScale = 1.0;
98 double mElevationOffset = 0.0;
99 int mElevationBand = 0;
100 bool mDrawElevationMap = false;
101
102 bool mEnableProfile = false;
103 quint64 mPreparationTime = 0;
104
105 // may be NULLPTR. no need to delete: if exists it is owned by labeling engine
106 QgsRasterLayerLabelProvider *mLabelProvider = nullptr;
107
108 void drawElevationMap();
109
110 friend class QgsRasterLayerRendererFeedback;
111};
112
113
114#endif // QGSRASTERLAYERRENDERER_H
QFlags< RasterProviderCapability > RasterProviderCapabilities
Raster data provider capabilities.
Definition qgis.h:4633
QFlags< RasterInterfaceCapability > RasterInterfaceCapabilities
Raster interface capabilities.
Definition qgis.h:4600
Base class for feedback objects to be used for cancellation of something running in a worker thread.
Definition qgsfeedback.h:44
Base class for utility classes that encapsulate information necessary for rendering of map layers.
Perform transforms between map coordinates and device coordinates.
Feedback object tailored for raster block reading.
virtual void onNewData()
May be emitted by raster data provider to indicate that some partial data are available and a new pre...
Implements labeling support for raster layers.
Implementation of threaded rendering for raster layers.
Represents a raster layer.
Contains a pipeline of raster interfaces for sequential raster processing.
Contains information about the context of a rendering operation.
This class provides details of the viewable area that a raster will be rendered into.