QGIS API Documentation  3.23.0-Master (dd0cd13a00)
qgsline3dsymbol.h
Go to the documentation of this file.
1 /***************************************************************************
2  qgsline3dsymbol.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 QGSLINE3DSYMBOL_H
17 #define QGSLINE3DSYMBOL_H
18 
19 #include "qgis_3d.h"
20 
21 #include "qgsabstract3dsymbol.h"
22 #include "qgs3dtypes.h"
23 
25 
36 {
37  public:
40  ~QgsLine3DSymbol() override;
41 
47  static QgsAbstract3DSymbol *create() SIP_FACTORY;
48 
49  QString type() const override { return "line"; }
50  QgsAbstract3DSymbol *clone() const override SIP_FACTORY;
51 
52  void writeXml( QDomElement &elem, const QgsReadWriteContext &context ) const override;
53  void readXml( const QDomElement &elem, const QgsReadWriteContext &context ) override;
54  QList< QgsWkbTypes::GeometryType > compatibleGeometryTypes() const override;
55 
57  Qgs3DTypes::AltitudeClamping altitudeClamping() const { return mAltClamping; }
59  void setAltitudeClamping( Qgs3DTypes::AltitudeClamping altClamping ) { mAltClamping = altClamping; }
60 
62  Qgs3DTypes::AltitudeBinding altitudeBinding() const { return mAltBinding; }
64  void setAltitudeBinding( Qgs3DTypes::AltitudeBinding altBinding ) { mAltBinding = altBinding; }
65 
67  float width() const { return mWidth; }
69  void setWidth( float width ) { mWidth = width; }
70 
72  float height() const { return mHeight; }
74  void setHeight( float height ) { mHeight = height; }
75 
77  float extrusionHeight() const { return mExtrusionHeight; }
79  void setExtrusionHeight( float extrusionHeight ) { mExtrusionHeight = extrusionHeight; }
80 
82  bool renderAsSimpleLines() const { return mRenderAsSimpleLines; }
84  void setRenderAsSimpleLines( bool enabled ) { mRenderAsSimpleLines = enabled; }
85 
87  QgsAbstractMaterialSettings *material() const;
88 
94  void setMaterial( QgsAbstractMaterialSettings *material SIP_TRANSFER );
95 
100  bool exportGeometries( Qgs3DSceneExporter *exporter, Qt3DCore::QEntity *entity, const QString &objectNamePrefix ) const override SIP_SKIP;
101 
102  private:
107 
108  float mWidth = 2.0f;
109  float mHeight = 0.0f;
110  float mExtrusionHeight = 0.0f;
111  bool mRenderAsSimpleLines = false;
112  std::unique_ptr< QgsAbstractMaterialSettings > mMaterial;
113 };
114 
115 
116 #endif // QGSLINE3DSYMBOL_H
Entity that handles the exporting of 3D scene.
AltitudeClamping
how to handle altitude of vector features
Definition: qgs3dtypes.h:35
@ AltClampRelative
Z_final = z_terrain + z_geometry.
Definition: qgs3dtypes.h:37
AltitudeBinding
how to handle clamping of vertices of individual features
Definition: qgs3dtypes.h:43
@ AltBindCentroid
Clamp just centroid of feature.
Definition: qgs3dtypes.h:45
virtual bool exportGeometries(Qgs3DSceneExporter *exporter, Qt3DCore::QEntity *entity, const QString &objectNamePrefix) const
Exports the geometries contained within the hierarchy of entity.
virtual QgsAbstract3DSymbol * clone() const =0
Returns a new instance of the symbol with the same settings.
bool renderAsSimpleLines() const
Returns whether the renderer will render data with simple lines (otherwise it uses buffer)
void setAltitudeClamping(Qgs3DTypes::AltitudeClamping altClamping)
Sets method that determines altitude (whether to clamp to feature to terrain)
float width() const
Returns width of the line symbol (in map units)
void setWidth(float width)
Sets width of the line symbol (in map units)
void setExtrusionHeight(float extrusionHeight)
Sets extrusion height (in map units)
Qgs3DTypes::AltitudeBinding altitudeBinding() const
Returns method that determines how altitude is bound to individual vertices.
float height() const
Returns height (altitude) of the symbol (in map units)
~QgsLine3DSymbol() override
void setRenderAsSimpleLines(bool enabled)
Sets whether the renderer will render data with simple lines (otherwise it uses buffer)
float extrusionHeight() const
Returns extrusion height (in map units)
void setAltitudeBinding(Qgs3DTypes::AltitudeBinding altBinding)
Sets method that determines how altitude is bound to individual vertices.
void setHeight(float height)
Sets height (altitude) of the symbol (in map units)
The class is used as a container of context for various read/write operations on other objects.
Handles storage of information regarding WKB types and their properties.
Definition: qgswkbtypes.h:42
#define SIP_SKIP
Definition: qgis_sip.h:126
#define SIP_TRANSFER
Definition: qgis_sip.h:36
#define SIP_FACTORY
Definition: qgis_sip.h:76
#define SIP_NODEFAULTCTORS
Definition: qgis_sip.h:101