QGIS API Documentation  3.20.0-Odense (decaadbb31)
qgsonlineterraingenerator.h
Go to the documentation of this file.
1 /***************************************************************************
2  qgsonlineterraingenerator.h
3  --------------------------------------
4  Date : March 2019
5  Copyright : (C) 2019 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 QGSONLINETERRAINGENERATOR_H
17 #define QGSONLINETERRAINGENERATOR_H
18 
19 #include "qgis_3d.h"
20 
21 #include "qgsterraingenerator.h"
22 
24 
25 class QgsDemHeightMapGenerator;
26 
27 #define SIP_NO_FILE
28 
38 {
39  Q_OBJECT
40  public:
44 
46  void setCrs( const QgsCoordinateReferenceSystem &crs, const QgsCoordinateTransformContext &context );
48  QgsCoordinateReferenceSystem crs() const { return mCrs; }
49 
51  void setResolution( int resolution ) { mResolution = resolution; updateGenerator(); }
53  int resolution() const { return mResolution; }
54 
56  void setSkirtHeight( float skirtHeight ) { mSkirtHeight = skirtHeight; }
58  float skirtHeight() const { return mSkirtHeight; }
59 
61  QgsDemHeightMapGenerator *heightMapGenerator() { return mHeightMapGenerator.get(); }
62 
63  QgsTerrainGenerator *clone() const override SIP_FACTORY;
64  Type type() const override;
65  QgsRectangle extent() const override;
66  void setExtent( const QgsRectangle &extent ) override;
67  float heightAt( double x, double y, const Qgs3DMapSettings &map ) const override;
68  void writeXml( QDomElement &elem ) const override;
69  void readXml( const QDomElement &elem ) override;
70  //void resolveReferences( const QgsProject &project ) override;
71 
72  QgsChunkLoader *createChunkLoader( QgsChunkNode *node ) const override SIP_FACTORY;
73 
74  private:
75 
76  void updateGenerator();
77 
78  QgsRectangle mExtent;
80  QgsCoordinateTransformContext mTransformContext;
81 
83  int mResolution = 16;
85  float mSkirtHeight = 10.f;
86 
87  std::unique_ptr<QgsDemHeightMapGenerator> mHeightMapGenerator;
88 };
89 
90 #endif // QGSONLINETERRAINGENERATOR_H
This class represents a coordinate reference system (CRS).
Contains information about the context in which a coordinate transform is executed.
QgsDemHeightMapGenerator * heightMapGenerator()
Returns height map generator object - takes care of extraction of elevations from the layer)
~QgsOnlineTerrainGenerator() override
void setSkirtHeight(float skirtHeight)
Sets skirt height (in world units). Skirts at the edges of terrain tiles help hide cracks between adj...
QgsOnlineTerrainGenerator()
Constructor for QgsOnlineTerrainGenerator.
int resolution() const
Returns resolution of the generator (how many elevation samples on one side of a terrain tile)
void setResolution(int resolution)
Sets resolution of the generator (how many elevation samples on one side of a terrain tile)
float skirtHeight() const
Returns skirt height (in world units). Skirts at the edges of terrain tiles help hide cracks between ...
QgsCoordinateReferenceSystem crs() const
Returns CRS of the terrain.
A rectangle specified with double values.
Definition: qgsrectangle.h:42
virtual QgsTerrainGenerator * clone() const =0SIP_FACTORY
Makes a copy of the current instance.
std::unique_ptr< GEOSGeometry, GeosDeleter > unique_ptr
Scoped GEOS pointer.
Definition: qgsgeos.h:79
#define SIP_FACTORY
Definition: qgis_sip.h:76
const QgsCoordinateReferenceSystem & crs