QGIS API Documentation  3.26.3-Buenos Aires (65e4edfdad)
qgslinevertexdata_p.h
Go to the documentation of this file.
1 /***************************************************************************
2  qgslinevertexdata_p.h
3  --------------------------------------
4  Date : Apr 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 QGSLINEVERTEXDATA_P_H
17 #define QGSLINEVERTEXDATA_P_H
18 
20 
21 //
22 // W A R N I N G
23 // -------------
24 //
25 // This file is not part of the QGIS API. It exists purely as an
26 // implementation detail. This header file may change from version to
27 // version without notice, or even be removed.
28 //
29 
30 #include <QVector>
31 #include <QVector3D>
32 
33 #define SIP_NO_FILE
34 
35 #include "qgs3dtypes.h"
36 #include "qgis.h"
37 
38 namespace Qt3DCore
39 {
40  class QNode;
41 }
42 namespace Qt3DRender
43 {
44  class QGeometry;
45 }
46 
47 class QgsLineString;
48 class Qgs3DMapSettings;
49 
50 
64 struct QgsLineVertexData
65 {
66  QVector<QVector3D> vertices;
67  QVector<unsigned int> indexes;
68 
69  bool withAdjacency = false;
70 
71  // extra info to calculate elevation
74  float baseHeight = 0;
75  const Qgs3DMapSettings *mapSettings = nullptr;
76 
77  QgsLineVertexData();
78 
79  void init( Qgis::AltitudeClamping clamping, Qgis::AltitudeBinding binding, float height, const Qgs3DMapSettings *map );
80 
81  QByteArray createVertexBuffer();
82  QByteArray createIndexBuffer();
83  Qt3DRender::QGeometry *createGeometry( Qt3DCore::QNode *parent );
84 
85  void addLineString( const QgsLineString &lineString, float extraHeightOffset = 0 );
86  void addVerticalLines( const QgsLineString &lineString, float verticalLength, float extraHeightOffset = 0 );
87 };
88 
90 
91 #endif // QGSLINEVERTEXDATA_P_H
Qgis::AltitudeBinding::Vertex
@ Vertex
Clamp every vertex of feature.
qgis.h
Qgis::AltitudeClamping::Relative
@ Relative
Elevation is relative to terrain height (final elevation = terrain elevation + feature elevation)
QgsLineString
Line string geometry type, with support for z-dimension and m-values.
Definition: qgslinestring.h:44
Qgis::AltitudeBinding
AltitudeBinding
Altitude binding.
Definition: qgis.h:1770
Qt3DCore
Definition: qgsabstract3drenderer.h:30
Qt3DRender
Definition: qgs3dmapscene.h:28
qgs3dtypes.h
Qgs3DMapSettings
Definition of the world.
Definition: qgs3dmapsettings.h:57
Qgis::AltitudeClamping
AltitudeClamping
Altitude clamping.
Definition: qgis.h:1757