QGIS API Documentation  3.8.0-Zanzibar (11aff65)
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 #include "qgs3dtypes.h"
34 
35 namespace Qt3DCore
36 {
37  class QNode;
38 }
39 namespace Qt3DRender
40 {
41  class QGeometry;
42 }
43 
44 class QgsLineString;
45 class Qgs3DMapSettings;
46 
47 
60 struct QgsLineVertexData
61 {
62  QVector<QVector3D> vertices;
63  QVector<unsigned int> indexes;
64 
65  bool withAdjacency = false;
66 
67  // extra info to calculate elevation
70  float baseHeight = 0;
71  const Qgs3DMapSettings *mapSettings = nullptr;
72 
73  QgsLineVertexData();
74 
75  void init( Qgs3DTypes::AltitudeClamping clamping, Qgs3DTypes::AltitudeBinding binding, float height, const Qgs3DMapSettings *map );
76 
77  QByteArray createVertexBuffer();
78  QByteArray createIndexBuffer();
79  Qt3DRender::QGeometry *createGeometry( Qt3DCore::QNode *parent );
80 
81  void addLineString( const QgsLineString &lineString, float extraHeightOffset = 0 );
82  void addVerticalLines( const QgsLineString &lineString, float verticalLength );
83 };
84 
86 
87 #endif // QGSLINEVERTEXDATA_P_H
AltitudeClamping
how to handle altitude of vector features
Definition: qgs3dtypes.h:34
3 Definition of the world
Clamp every vertex of feature.
Definition: qgs3dtypes.h:44
AltitudeBinding
how to handle clamping of vertices of individual features
Definition: qgs3dtypes.h:42
Line string geometry type, with support for z-dimension and m-values.
Definition: qgslinestring.h:43
Z_final = z_terrain + z_geometry.
Definition: qgs3dtypes.h:37