QGIS API Documentation
4.3.0-Master (16eddb2670e)
Toggle main menu visibility
Loading...
Searching...
No Matches
src
3d
terrain
qgsdemterraingenerator.h
Go to the documentation of this file.
1
/***************************************************************************
2
qgsdemterraingenerator.h
3
--------------------------------------
4
Date : July 2017
5
Copyright : (C) 2017 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 QGSDEMTERRAINGENERATOR_H
17
#define QGSDEMTERRAINGENERATOR_H
18
19
#include "qgis_3d.h"
20
#include "
qgscoordinatetransformcontext.h
"
21
#include "
qgsrasterlayer.h
"
22
#include "
qgsterraingenerator.h
"
23
24
#define SIP_NO_FILE
25
26
class
QgsDemHeightMapGenerator;
27
28
36
class
_3D_EXPORT
QgsDemTerrainGenerator
:
public
QgsTerrainGenerator
37
{
38
Q_OBJECT
39
40
public
:
44
static
QgsTerrainGenerator
*
create
()
SIP_FACTORY
;
45
46
QgsDemTerrainGenerator
();
47
~QgsDemTerrainGenerator
()
override
;
48
50
void
setLayer
(
QgsRasterLayer
*
layer
);
52
QgsRasterLayer
*
layer
()
const
;
53
54
void
setCrs
(
const
QgsCoordinateReferenceSystem
&
crs
,
const
QgsCoordinateTransformContext
&context )
override
;
55
QgsCoordinateReferenceSystem
crs
()
const override
{
return
mCrs
; }
56
58
void
setResolution
(
int
resolution
)
59
{
60
mResolution
=
resolution
;
61
updateGenerator
();
62
}
63
64
int
resolution
()
const
{
return
mResolution
; }
65
67
void
setSkirtHeight
(
float
skirtHeight
) {
mSkirtHeight
=
skirtHeight
; }
69
float
skirtHeight
()
const
{
return
mSkirtHeight
; }
70
72
QgsDemHeightMapGenerator *
heightMapGenerator
() {
return
mHeightMapGenerator
.get(); }
73
74
QgsTerrainGenerator
*
clone
() const override
SIP_FACTORY
;
75
Type type() const override;
76
QgsRectangle
rootChunkExtent() const override;
77
void
setExtent( const
QgsRectangle
&extent ) override;
78
float
heightAt(
double
x,
double
y, const
Qgs3DRenderContext
&context ) const override;
79
80
QFuture<QgsChunkLoaderResult> loadChunk( QgsChunkNode *node ) override;
81
82
QgsTerrainGenerator
::Capabilities capabilities() const override;
83
84
protected:
86
virtual
void
updateGenerator();
87
88
std::unique_ptr<QgsDemHeightMapGenerator>
mHeightMapGenerator
;
89
90
QgsCoordinateReferenceSystem
mCrs
;
91
92
QgsCoordinateTransformContext
mTransformContext
;
93
95
QPointer<
QgsRasterLayer
>
mLayer
;
97
int
mResolution
= 16;
99
float
mSkirtHeight
= 10.f;
100
101
private:
102
Qt3DCore
::QEntity *createEntity( QByteArray heightMap,
TerrainTextureResources
textureResources, QgsChunkNode *node,
Qt3DCore
::QEntity *parent );
103
};
104
105
106
#endif
// QGSDEMTERRAINGENERATOR_H
Qgs3DRenderContext
Rendering context for preparation of 3D entities.
Definition
qgs3drendercontext.h:49
QgsCoordinateReferenceSystem
Represents a coordinate reference system (CRS).
Definition
qgscoordinatereferencesystem.h:216
QgsCoordinateTransformContext
Contains information about the context in which a coordinate transform is executed.
Definition
qgscoordinatetransformcontext.h:61
QgsDemTerrainGenerator::mHeightMapGenerator
std::unique_ptr< QgsDemHeightMapGenerator > mHeightMapGenerator
Definition
qgsdemterraingenerator.h:88
QgsDemTerrainGenerator::create
static QgsTerrainGenerator * create()
Creates a new instance of a QgsDemTerrainGenerator object.
Definition
qgsdemterraingenerator.cpp:39
QgsDemTerrainGenerator::resolution
int resolution() const
Returns resolution of the generator (how many elevation samples on one side of a terrain tile).
Definition
qgsdemterraingenerator.h:64
QgsDemTerrainGenerator::mSkirtHeight
float mSkirtHeight
height of the "skirts" at the edges of tiles to hide cracks between adjacent cracks
Definition
qgsdemterraingenerator.h:99
QgsDemTerrainGenerator::mTransformContext
QgsCoordinateTransformContext mTransformContext
Definition
qgsdemterraingenerator.h:92
QgsDemTerrainGenerator::layer
QgsRasterLayer * layer() const
Returns raster layer with elevation model to be used for terrain generation.
Definition
qgsdemterraingenerator.cpp:55
QgsDemTerrainGenerator::mLayer
QPointer< QgsRasterLayer > mLayer
source layer for heights
Definition
qgsdemterraingenerator.h:95
QgsDemTerrainGenerator::updateGenerator
virtual void updateGenerator()
(Re-)creates mHeightMapGenerator based on current params
Definition
qgsdemterraingenerator.cpp:188
QgsDemTerrainGenerator::crs
QgsCoordinateReferenceSystem crs() const override
Returns CRS of the terrain.
Definition
qgsdemterraingenerator.h:55
QgsDemTerrainGenerator::mCrs
QgsCoordinateReferenceSystem mCrs
Definition
qgsdemterraingenerator.h:90
QgsDemTerrainGenerator::heightMapGenerator
QgsDemHeightMapGenerator * heightMapGenerator()
Returns height map generator object - takes care of extraction of elevations from the layer).
Definition
qgsdemterraingenerator.h:72
QgsDemTerrainGenerator::mResolution
int mResolution
how many vertices to place on one side of the tile
Definition
qgsdemterraingenerator.h:97
QgsDemTerrainGenerator::setLayer
void setLayer(QgsRasterLayer *layer)
Sets raster layer with elevation model to be used for terrain generation.
Definition
qgsdemterraingenerator.cpp:49
QgsDemTerrainGenerator::setSkirtHeight
void setSkirtHeight(float skirtHeight)
Sets skirt height (in world units). Skirts at the edges of terrain tiles help hide cracks between adj...
Definition
qgsdemterraingenerator.h:67
QgsDemTerrainGenerator::QgsDemTerrainGenerator
QgsDemTerrainGenerator()
QgsDemTerrainGenerator::setResolution
void setResolution(int resolution)
Sets resolution of the generator (how many elevation samples on one side of a terrain tile).
Definition
qgsdemterraingenerator.h:58
QgsDemTerrainGenerator::skirtHeight
float skirtHeight() const
Returns skirt height (in world units). Skirts at the edges of terrain tiles help hide cracks between ...
Definition
qgsdemterraingenerator.h:69
QgsRasterLayer
Represents a raster layer.
Definition
qgsrasterlayer.h:82
QgsRectangle
A rectangle specified with double values.
Definition
qgsrectangle.h:47
QgsTerrainGenerator
Base class for generators of terrain.
Definition
qgsterraingenerator.h:56
QgsTerrainGenerator::QgsTerrainGenerator
QgsTerrainGenerator()
Create new terrain generator.
QgsTerrainGenerator::clone
virtual QgsTerrainGenerator * clone() const =0SIP_FACTORY
Makes a copy of the current instance.
QgsTerrainGenerator::setCrs
virtual void setCrs(const QgsCoordinateReferenceSystem &crs, const QgsCoordinateTransformContext &context)
Sets the CRS associated with the terrain.
Definition
qgsterraingenerator.cpp:83
Qt3DCore
Definition
qgsabstract3drenderer.h:33
SIP_FACTORY
#define SIP_FACTORY
Definition
qgis_sip.h:83
qgscoordinatetransformcontext.h
qgsrasterlayer.h
qgsterraingenerator.h
QgsTerrainGenerator::TerrainTextureResources
Definition
qgsterraingenerator.h:150
Generated on
for QGIS API Documentation by
1.17.0