QGIS API Documentation
4.3.0-Master (16eddb2670e)
Toggle main menu visibility
Loading...
Searching...
No Matches
src
core
pointcloud
qgspointcloudlayerrenderer.h
Go to the documentation of this file.
1
/***************************************************************************
2
qgspointcloudlayerrenderer.h
3
--------------------
4
begin : October 2020
5
copyright : (C) 2020 by Peter Petrik
6
email : zilolv at gmail dot com
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 QGSPOINTCLOUDLAYERRENDERER_H
19
#define QGSPOINTCLOUDLAYERRENDERER_H
20
21
#include <optional>
22
23
#include "qgis_core.h"
24
#include "
qgsgeometry.h
"
25
#include "
qgsmapclippingregion.h
"
26
#include "
qgsmaplayerrenderer.h
"
27
#include "
qgspointcloudindex.h
"
28
#include "
qgsrange.h
"
29
30
#include <QDomElement>
31
#include <QElapsedTimer>
32
#include <QPainter>
33
#include <QString>
34
35
#define SIP_NO_FILE
36
37
class
QgsPointCloudExtentRenderer
;
38
class
QgsPointCloudLayer
;
39
class
QgsPointCloudRenderContext
;
40
class
QgsPointCloudRenderer
;
41
class
QgsPointCloudSubIndex;
42
class
QgsRenderContext
;
43
44
55
class
CORE_EXPORT
QgsPointCloudLayerRenderer
:
public
QgsMapLayerRenderer
56
{
57
public
:
59
explicit
QgsPointCloudLayerRenderer
(
QgsPointCloudLayer
*layer,
QgsRenderContext
&context );
60
~QgsPointCloudLayerRenderer
()
override
;
61
62
bool
render
()
override
;
63
Qgis::MapLayerRendererFlags
flags
()
const override
;
64
bool
forceRasterRender
()
const override
;
65
void
setLayerRenderingTimeHint
(
int
time )
override
;
66
67
QgsFeedback
*
feedback
()
const override
{
return
mFeedback.get(); }
68
69
private
:
70
QVector<QgsPointCloudNodeId> traverseTree(
const
QgsPointCloudIndex
&pc,
const
QgsRenderContext
&context,
QgsPointCloudNodeId
n,
double
maxErrorPixels,
double
nodeErrorPixels );
71
int
renderNodesSync(
const
QVector<QgsPointCloudNodeId> &nodes,
QgsPointCloudIndex
&pc,
QgsPointCloudRenderContext
&context,
QgsPointCloudRequest
&request,
bool
&canceled );
72
int
renderNodesAsync(
const
QVector<QgsPointCloudNodeId> &nodes,
QgsPointCloudIndex
&pc,
QgsPointCloudRenderContext
&context,
QgsPointCloudRequest
&request,
bool
&canceled );
73
int
renderNodesSorted(
74
const
QVector<QgsPointCloudNodeId> &nodes,
QgsPointCloudIndex
&pc,
QgsPointCloudRenderContext
&context,
QgsPointCloudRequest
&request,
bool
&canceled,
Qgis::PointCloudDrawOrder
order
75
);
76
void
renderTriangulatedSurface(
QgsPointCloudRenderContext
&context );
77
bool
renderIndex(
QgsPointCloudIndex
&pc );
78
79
QgsPointCloudIndex
mIndex;
80
QString mLayerName;
81
82
std::unique_ptr< QgsPointCloudRenderer > mRenderer;
83
std::unique_ptr< QgsPointCloudExtentRenderer > mSubIndexExtentRenderer;
84
85
QgsVector3D
mScale;
86
QgsVector3D
mOffset;
87
double
mZOffset = 0;
88
double
mZScale = 1.0;
89
90
QgsDoubleRange
mMapCrsZFilter;
91
92
QgsPointCloudAttributeCollection
mLayerAttributes;
93
QgsPointCloudAttributeCollection
mAttributes;
94
QgsGeometry
mCloudExtent;
95
QList< QgsMapClippingRegion > mClippingRegions;
96
97
bool
mIsVpc =
false
;
98
const
QVector< QgsPointCloudSubIndex > mSubIndexes;
99
QVector<QgsPointCloudIndex> mOverviewIndexes;
100
double
mAverageSubIndexWidth = 0;
101
double
mAverageSubIndexHeight = 0;
102
103
int
mRenderTimeHint = 0;
104
bool
mBlockRenderUpdates =
false
;
105
QElapsedTimer mElapsedTimer;
106
107
std::unique_ptr<QgsFeedback> mFeedback =
nullptr
;
108
109
bool
mEnableProfile =
false
;
110
quint64 mPreparationTime = 0;
111
};
112
113
#endif
// QGSPOINTCLOUDLAYERRENDERER_H
Qgis::MapLayerRendererFlags
QFlags< MapLayerRendererFlag > MapLayerRendererFlags
Flags which control how map layer renderers behave.
Definition
qgis.h:3013
Qgis::PointCloudDrawOrder
PointCloudDrawOrder
Pointcloud rendering order for 2d views.
Definition
qgis.h:4727
QgsDoubleRange
QgsRange which stores a range of double values.
Definition
qgsrange.h:217
QgsFeedback
Base class for feedback objects to be used for cancellation of something running in a worker thread.
Definition
qgsfeedback.h:44
QgsGeometry
A geometry is the spatial representation of a feature.
Definition
qgsgeometry.h:267
QgsMapLayerRenderer::render
virtual bool render()=0
Do the rendering (based on data stored in the class).
QgsMapLayerRenderer::forceRasterRender
virtual bool forceRasterRender() const
Returns true if the renderer must be rendered to a raster paint device (e.g.
Definition
qgsmaplayerrenderer.cpp:23
QgsMapLayerRenderer::flags
virtual Qgis::MapLayerRendererFlags flags() const
Returns flags which control how the map layer rendering behaves.
Definition
qgsmaplayerrenderer.cpp:28
QgsMapLayerRenderer::QgsMapLayerRenderer
QgsMapLayerRenderer(const QString &layerID, QgsRenderContext *context=nullptr)
Constructor for QgsMapLayerRenderer, with the associated layerID and render context.
Definition
qgsmaplayerrenderer.h:57
QgsMapLayerRenderer::setLayerRenderingTimeHint
virtual void setLayerRenderingTimeHint(int time)
Sets approximate render time (in ms) for the layer to render.
Definition
qgsmaplayerrenderer.h:141
QgsPointCloudAttributeCollection
A collection of point cloud attributes.
Definition
qgspointcloudattribute.h:157
QgsPointCloudExtentRenderer
A renderer for 2d visualisation of point clouds which shows the dataset's extents using a fill symbol...
Definition
qgspointcloudextentrenderer.h:34
QgsPointCloudIndex
Smart pointer for QgsAbstractPointCloudIndex.
Definition
qgspointcloudindex.h:439
QgsPointCloudLayerRenderer::feedback
QgsFeedback * feedback() const override
Access to feedback object of the layer renderer (may be nullptr).
Definition
qgspointcloudlayerrenderer.h:67
QgsPointCloudLayerRenderer::~QgsPointCloudLayerRenderer
~QgsPointCloudLayerRenderer() override
QgsPointCloudLayerRenderer::QgsPointCloudLayerRenderer
QgsPointCloudLayerRenderer(QgsPointCloudLayer *layer, QgsRenderContext &context)
Ctor.
Definition
qgspointcloudlayerrenderer.cpp:51
QgsPointCloudLayer
Represents a map layer supporting display of point clouds.
Definition
qgspointcloudlayer.h:49
QgsPointCloudNodeId
Represents an indexed point cloud node's position in octree.
Definition
qgspointcloudindex.h:56
QgsPointCloudRenderContext
Encapsulates the render context for a 2D point cloud rendering operation.
Definition
qgspointcloudrenderer.h:51
QgsPointCloudRenderer
Abstract base class for 2d point cloud renderers.
Definition
qgspointcloudrenderer.h:345
QgsPointCloudRequest
Point cloud data request.
Definition
qgspointcloudrequest.h:41
QgsRenderContext
Contains information about the context of a rendering operation.
Definition
qgsrendercontext.h:63
QgsVector3D
A 3D vector (similar to QVector3D) with the difference that it uses double precision instead of singl...
Definition
qgsvector3d.h:33
qgsgeometry.h
qgsmapclippingregion.h
qgsmaplayerrenderer.h
qgspointcloudindex.h
qgsrange.h
Generated on
for QGIS API Documentation by
1.17.0