QGIS API Documentation  3.16.0-Hannover (43b64b13f3)
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
QgsLine3DSymbol::setAltitudeClamping
void setAltitudeClamping(Qgs3DTypes::AltitudeClamping altClamping)
Sets method that determines altitude (whether to clamp to feature to terrain)
Definition: qgsline3dsymbol.h:59
Qgs3DTypes::AltitudeBinding
AltitudeBinding
how to handle clamping of vertices of individual features
Definition: qgs3dtypes.h:43
QgsReadWriteContext
The class is used as a container of context for various read/write operations on other objects.
Definition: qgsreadwritecontext.h:35
QgsLine3DSymbol::~QgsLine3DSymbol
~QgsLine3DSymbol() override
Qgs3DTypes::AltClampRelative
@ AltClampRelative
Z_final = z_terrain + z_geometry.
Definition: qgs3dtypes.h:37
Qgs3DTypes::AltBindCentroid
@ AltBindCentroid
Clamp just centroid of feature.
Definition: qgs3dtypes.h:45
QgsLine3DSymbol::setWidth
void setWidth(float width)
Sets width of the line symbol (in map units)
Definition: qgsline3dsymbol.h:69
QgsLine3DSymbol::height
float height() const
Returns height (altitude) of the symbol (in map units)
Definition: qgsline3dsymbol.h:72
qgsabstract3dsymbol.h
QgsLine3DSymbol::renderAsSimpleLines
bool renderAsSimpleLines() const
Returns whether the renderer will render data with simple lines (otherwise it uses buffer)
Definition: qgsline3dsymbol.h:82
SIP_FACTORY
#define SIP_FACTORY
Definition: qgis_sip.h:76
QgsLine3DSymbol::setRenderAsSimpleLines
void setRenderAsSimpleLines(bool enabled)
Sets whether the renderer will render data with simple lines (otherwise it uses buffer)
Definition: qgsline3dsymbol.h:84
QgsAbstract3DSymbol
3 Abstract base class for 3D symbols that are used by VectorLayer3DRenderer objects.
Definition: qgsabstract3dsymbol.h:46
Qgs3DSceneExporter
The Qgs3DSceneExporter class Entity that handles the exporting of 3D scene.
Definition: qgs3dsceneexporter.h:57
SIP_SKIP
#define SIP_SKIP
Definition: qgis_sip.h:126
QgsAbstractMaterialSettings
3 Abstract base class for material settings.
Definition: qgsabstractmaterialsettings.h:105
QgsLine3DSymbol
3 3D symbol that draws linestring geometries as planar polygons (created from lines using a buffer wi...
Definition: qgsline3dsymbol.h:36
SIP_TRANSFER
#define SIP_TRANSFER
Definition: qgis_sip.h:36
QgsLine3DSymbol::setExtrusionHeight
void setExtrusionHeight(float extrusionHeight)
Sets extrusion height (in map units)
Definition: qgsline3dsymbol.h:79
qgs3dtypes.h
QgsAbstract3DSymbol::clone
virtual QgsAbstract3DSymbol * clone() const =0
Returns a new instance of the symbol with the same settings.
QgsLine3DSymbol::extrusionHeight
float extrusionHeight() const
Returns extrusion height (in map units)
Definition: qgsline3dsymbol.h:77
QgsAbstract3DSymbol::exportGeometries
virtual bool exportGeometries(Qgs3DSceneExporter *exporter, Qt3DCore::QEntity *entity, const QString &objectNamePrefix) const
Exports the geometries contained within the hierarchy of entity.
Definition: qgsabstract3dsymbol.cpp:53
SIP_NODEFAULTCTORS
#define SIP_NODEFAULTCTORS
Definition: qgis_sip.h:101
Qgs3DTypes::AltitudeClamping
AltitudeClamping
how to handle altitude of vector features
Definition: qgs3dtypes.h:35
QgsLine3DSymbol::width
float width() const
Returns width of the line symbol (in map units)
Definition: qgsline3dsymbol.h:67
QgsWkbTypes
Handles storage of information regarding WKB types and their properties.
Definition: qgswkbtypes.h:42
Qgs3DTypes
3 Defines enumerations and other auxiliary types for QGIS 3D
Definition: qgs3dtypes.h:31
QgsLine3DSymbol::setAltitudeBinding
void setAltitudeBinding(Qgs3DTypes::AltitudeBinding altBinding)
Sets method that determines how altitude is bound to individual vertices.
Definition: qgsline3dsymbol.h:64
QgsLine3DSymbol::setHeight
void setHeight(float height)
Sets height (altitude) of the symbol (in map units)
Definition: qgsline3dsymbol.h:74
QgsLine3DSymbol::altitudeBinding
Qgs3DTypes::AltitudeBinding altitudeBinding() const
Returns method that determines how altitude is bound to individual vertices.
Definition: qgsline3dsymbol.h:62