QGIS API Documentation
4.3.0-Master (16eddb2670e)
Toggle main menu visibility
Loading...
Searching...
No Matches
src
core
raster
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
20
#include "
qgsmapclippingregion.h
"
21
#include "
qgsmaplayerrenderer.h
"
22
23
#define SIP_NO_FILE
24
25
class
QPainter;
26
27
class
QgsMapToPixel
;
28
class
QgsRasterLayer
;
29
class
QgsRasterPipe
;
30
struct
QgsRasterViewPort
;
31
class
QgsRenderContext
;
32
33
class
QgsRasterLayerRenderer
;
34
class
QgsRasterLayerLabelProvider
;
35
36
#include "
qgsrasterinterface.h
"
37
39
45
class
CORE_EXPORT QgsRasterLayerRendererFeedback :
public
QgsRasterBlockFeedback
46
{
47
Q_OBJECT
48
49
public
:
51
explicit
QgsRasterLayerRendererFeedback(
QgsRasterLayerRenderer
*r );
52
54
void
onNewData
()
override
;
55
56
private
:
57
QgsRasterLayerRenderer
*mR =
nullptr
;
58
int
mMinimalPreviewInterval = 250;
59
QTime mLastPreview;
60
};
61
63
70
class
CORE_EXPORT
QgsRasterLayerRenderer
:
public
QgsMapLayerRenderer
71
{
72
public
:
73
QgsRasterLayerRenderer
(
QgsRasterLayer
*layer,
QgsRenderContext
&rendererContext );
74
~QgsRasterLayerRenderer
()
override
;
75
76
bool
render
()
override
;
77
QgsFeedback
*
feedback
()
const override
;
78
bool
forceRasterRender
()
const override
;
79
80
private
:
81
void
prepareLabeling(
QgsRasterLayer
*layer );
82
void
drawLabeling();
83
84
QString mLayerName;
85
std::unique_ptr<QgsRasterViewPort> mRasterViewPort;
86
87
double
mLayerOpacity = 1.0;
88
std::unique_ptr<QgsRasterPipe> mPipe;
89
90
Qgis::RasterProviderCapabilities
mProviderCapabilities;
91
Qgis::RasterInterfaceCapabilities
mInterfaceCapabilities;
92
94
std::unique_ptr<QgsRasterLayerRendererFeedback> mFeedback;
95
96
QList< QgsMapClippingRegion > mClippingRegions;
97
98
double
mElevationScale = 1.0;
99
double
mElevationOffset = 0.0;
100
int
mElevationBand = 0;
101
bool
mDrawElevationMap =
false
;
102
103
bool
mEnableProfile =
false
;
104
quint64 mPreparationTime = 0;
105
106
// may be NULLPTR. no need to delete: if exists it is owned by labeling engine
107
QgsRasterLayerLabelProvider
*mLabelProvider =
nullptr
;
108
109
void
drawElevationMap();
110
111
friend
class
QgsRasterLayerRendererFeedback
;
112
};
113
114
115
#endif
// QGSRASTERLAYERRENDERER_H
Qgis::RasterProviderCapabilities
QFlags< RasterProviderCapability > RasterProviderCapabilities
Raster data provider capabilities.
Definition
qgis.h:5461
Qgis::RasterInterfaceCapabilities
QFlags< RasterInterfaceCapability > RasterInterfaceCapabilities
Raster interface capabilities.
Definition
qgis.h:5428
QgsFeedback
Base class for feedback objects to be used for cancellation of something running in a worker thread.
Definition
qgsfeedback.h:44
QgsMapLayerRenderer::QgsMapLayerRenderer
QgsMapLayerRenderer(const QString &layerID, QgsRenderContext *context=nullptr)
Constructor for QgsMapLayerRenderer, with the associated layerID and render context.
Definition
qgsmaplayerrenderer.h:57
QgsMapToPixel
Perform transforms between map coordinates and device coordinates.
Definition
qgsmaptopixel.h:38
QgsRasterBlockFeedback
Feedback object tailored for raster block reading.
Definition
qgsrasterinterface.h:45
QgsRasterBlockFeedback::onNewData
virtual void onNewData()
May be emitted by raster data provider to indicate that some partial data are available and a new pre...
Definition
qgsrasterinterface.h:58
QgsRasterLayerLabelProvider
Implements labeling support for raster layers.
Definition
qgsrasterlabeling.h:46
QgsRasterLayerRenderer
Implementation of threaded rendering for raster layers.
Definition
qgsrasterlayerrenderer.h:71
QgsRasterLayerRenderer::render
bool render() override
Do the rendering (based on data stored in the class).
Definition
qgsrasterlayerrenderer.cpp:506
QgsRasterLayerRenderer::QgsRasterLayerRenderer
QgsRasterLayerRenderer(QgsRasterLayer *layer, QgsRenderContext &rendererContext)
Definition
qgsrasterlayerrenderer.cpp:93
QgsRasterLayerRenderer::forceRasterRender
bool forceRasterRender() const override
Returns true if the renderer must be rendered to a raster paint device (e.g.
Definition
qgsrasterlayerrenderer.cpp:641
QgsRasterLayerRenderer::QgsRasterLayerRendererFeedback
friend class QgsRasterLayerRendererFeedback
Definition
qgsrasterlayerrenderer.h:111
QgsRasterLayerRenderer::feedback
QgsFeedback * feedback() const override
Access to feedback object of the layer renderer (may be nullptr).
Definition
qgsrasterlayerrenderer.cpp:636
QgsRasterLayer
Represents a raster layer.
Definition
qgsrasterlayer.h:82
QgsRasterPipe
Contains a pipeline of raster interfaces for sequential raster processing.
Definition
qgsrasterpipe.h:50
QgsRenderContext
Contains information about the context of a rendering operation.
Definition
qgsrendercontext.h:63
qgsmapclippingregion.h
qgsmaplayerrenderer.h
qgsrasterinterface.h
QgsRasterViewPort
This class provides details of the viewable area that a raster will be rendered into.
Definition
qgsrasterviewport.h:35
Generated on
for QGIS API Documentation by
1.17.0