QGIS API Documentation 3.37.0-Master (fdefdf9c27f)
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"
24
25class QPainter;
26
27class QgsMapToPixel;
28class QgsRasterLayer;
29class QgsRasterPipe;
32
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 QString mLayerName;
81 QgsRasterViewPort *mRasterViewPort = nullptr;
82
83 double mLayerOpacity = 1.0;
84 std::unique_ptr<QgsRasterPipe> mPipe;
85
87
89 QgsRasterLayerRendererFeedback *mFeedback = nullptr;
90
91 QList< QgsMapClippingRegion > mClippingRegions;
92
93 double mElevationScale = 1.0;
94 double mElevationOffset = 0.0;
95 int mElevationBand = 0;
96 bool mDrawElevationMap = false;
97
98 bool mEnableProfile = false;
99 quint64 mPreparationTime = 0;
100
101 void drawElevationMap();
102
103 friend class QgsRasterLayerRendererFeedback;
104};
105
106
107#endif // QGSRASTERLAYERRENDERER_H
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.
Definition: qgsmaptopixel.h:39
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...
QFlags< ProviderCapability > ProviderCapabilities
Provider capabilities.
Implementation of threaded rendering for raster layers.
Represents a raster layer.
Contains a pipeline of raster interfaces for sequential raster processing.
Definition: qgsrasterpipe.h:50
Contains information about the context of a rendering operation.
This class provides details of the viewable area that a raster will be rendered into.