QGIS API Documentation
4.3.0-Master (16eddb2670e)
Toggle main menu visibility
Loading...
Searching...
No Matches
src
3d
terrain
qgsquantizedmeshterraingenerator.h
Go to the documentation of this file.
1
/***************************************************************************
2
qgsterraingenerator.h
3
--------------------------------------
4
Date : August 2024
5
Copyright : (C) 2024 by David Koňařík
6
Email : dvdkon at konarici dot cz
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
#pragma once
17
18
#include "
qgs3drendercontext.h
"
19
#include "
qgschunknode.h
"
20
#include "
qgscoordinatetransform.h
"
21
#include "
qgsquantizedmeshdataprovider.h
"
22
#include "
qgsrectangle.h
"
23
#include "
qgsterraingenerator.h
"
24
#include "
qgstiledsceneindex.h
"
25
#include "
qgstiledscenelayer.h
"
26
#include "
qgstiles.h
"
27
28
#include <QPointer>
29
30
#define SIP_NO_FILE
31
32
class
QgsTerrainEntity;
33
34
40
class
_3D_EXPORT
QgsQuantizedMeshTerrainGenerator
:
public
QgsTerrainGenerator
41
{
42
Q_OBJECT
43
public
:
47
static
QgsTerrainGenerator
*
create
()
SIP_FACTORY
;
48
49
QgsQuantizedMeshTerrainGenerator
() {
mIsValid
=
false
; }
50
51
void
setTerrain
( QgsTerrainEntity *t )
override
;
52
QgsTerrainGenerator
*
clone
() const override
SIP_FACTORY
;
53
QgsTerrainGenerator
::Type type() const override;
54
void
setExtent( const
QgsRectangle
&extent ) override;
55
QgsRectangle
rootChunkExtent() const override;
56
float
rootChunkError( const
Qgs3DMapSettings
&map ) const override;
57
void
rootChunkHeightRange(
float
&hMin,
float
&hMax ) const override;
58
float
heightAt(
double
x,
double
y, const
Qgs3DRenderContext
&context ) const override;
59
QFuture<QgsChunkLoaderResult> loadChunk( QgsChunkNode *node ) override;
60
// Root node has zoom=0, x=0, y=0.
61
// It corresponds to a fake zoom=-1 tile for QgsTileMatrix
62
QgsChunkNode *createRootNode() const override;
63
QFuture<QVector<QgsChunkNode *>> createChildren( QgsChunkNode *node ) override;
64
69
bool
setLayer(
QgsTiledSceneLayer
*layer );
71
QgsTiledSceneLayer
*layer() const;
72
73
private:
74
QPointer<
QgsTiledSceneLayer
> mLayer;
75
std::optional<QgsQuantizedMeshMetadata> mMetadata;
76
QgsCoordinateTransform
mTileCrsToMapCrs;
77
QgsTiledSceneIndex
mIndex;
78
QgsRectangle
mMapExtent;
79
QgsTileXYZ
nodeIdToTile( QgsChunkNodeId nodeId ) const;
80
static QgsTerrainTileEntity *loadEntityInWorker(
81
QgsChunkNode *node,
Qgs3DRenderContext
renderCtx,
QgsTiledSceneIndex
index,
QgsCoordinateTransform
tileCrsToMapCrs,
double
vertScale,
bool
shadingEnabled,
long
long
tileId,
QgsVector3D
chunkOrigin
82
);
83
Qt3DCore
::QEntity *finishEntity( QgsTerrainTileEntity *entity,
QgsTerrainGenerator
::TerrainTextureResources textureResources,
Qt3DCore
::QEntity *parent );
84
};
Qgs3DMapSettings
Definition of the world.
Definition
qgs3dmapsettings.h:59
Qgs3DRenderContext
Rendering context for preparation of 3D entities.
Definition
qgs3drendercontext.h:49
QgsCoordinateTransform
Handles coordinate transforms between two coordinate systems.
Definition
qgscoordinatetransform.h:63
QgsQuantizedMeshTerrainGenerator::create
static QgsTerrainGenerator * create()
Creates a new instance of a QgsQuantizedMeshTerrainGenerator object.
Definition
qgsquantizedmeshterraingenerator.cpp:60
QgsQuantizedMeshTerrainGenerator::QgsQuantizedMeshTerrainGenerator
QgsQuantizedMeshTerrainGenerator()
Definition
qgsquantizedmeshterraingenerator.h:49
QgsRectangle
A rectangle specified with double values.
Definition
qgsrectangle.h:47
QgsTerrainGenerator
Base class for generators of terrain.
Definition
qgsterraingenerator.h:56
QgsTerrainGenerator::mIsValid
bool mIsValid
Definition
qgsterraingenerator.h:170
QgsTerrainGenerator::QgsTerrainGenerator
QgsTerrainGenerator()
Create new terrain generator.
QgsTerrainGenerator::setTerrain
virtual void setTerrain(QgsTerrainEntity *t)
Sets terrain entity for the generator (does not transfer ownership).
Definition
qgsterraingenerator.h:96
QgsTerrainGenerator::clone
virtual QgsTerrainGenerator * clone() const =0SIP_FACTORY
Makes a copy of the current instance.
QgsTileXYZ
Stores coordinates of a tile in a tile matrix set.
Definition
qgstiles.h:43
QgsTiledSceneIndex
An index for tiled scene data providers.
Definition
qgstiledsceneindex.h:143
QgsTiledSceneLayer
Represents a map layer supporting display of tiled scene objects.
Definition
qgstiledscenelayer.h:40
QgsVector3D
A 3D vector (similar to QVector3D) with the difference that it uses double precision instead of singl...
Definition
qgsvector3d.h:33
Qt3DCore
Definition
qgsabstract3drenderer.h:33
SIP_FACTORY
#define SIP_FACTORY
Definition
qgis_sip.h:83
qgs3drendercontext.h
qgschunknode.h
qgscoordinatetransform.h
qgsquantizedmeshdataprovider.h
qgsrectangle.h
qgsterraingenerator.h
qgstiledsceneindex.h
qgstiledscenelayer.h
qgstiles.h
Generated on
for QGIS API Documentation by
1.17.0