QGIS API Documentation  3.4.15-Madeira (e83d02e274)
qgspolygon3dsymbol.h
Go to the documentation of this file.
1 /***************************************************************************
2  qgspolygon3dsymbol.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 QGSPOLYGON3DSYMBOL_H
17 #define QGSPOLYGON3DSYMBOL_H
18 
19 #include "qgis_3d.h"
20 
21 #include "qgsabstract3dsymbol.h"
23 #include "qgs3dtypes.h"
24 
25 #include <Qt3DRender/QCullFace>
26 
36 class _3D_EXPORT QgsPolygon3DSymbol : public QgsAbstract3DSymbol
37 {
38  public:
40  QgsPolygon3DSymbol() = default;
41 
42  QString type() const override { return "polygon"; }
43  QgsAbstract3DSymbol *clone() const override SIP_FACTORY;
44 
45  void writeXml( QDomElement &elem, const QgsReadWriteContext &context ) const override;
46  void readXml( const QDomElement &elem, const QgsReadWriteContext &context ) override;
47 
49  Qgs3DTypes::AltitudeClamping altitudeClamping() const { return mAltClamping; }
51  void setAltitudeClamping( Qgs3DTypes::AltitudeClamping altClamping ) { mAltClamping = altClamping; }
52 
54  Qgs3DTypes::AltitudeBinding altitudeBinding() const { return mAltBinding; }
56  void setAltitudeBinding( Qgs3DTypes::AltitudeBinding altBinding ) { mAltBinding = altBinding; }
57 
59  float height() const { return mHeight; }
61  void setHeight( float height ) { mHeight = height; }
62 
64  float extrusionHeight() const { return mExtrusionHeight; }
66  void setExtrusionHeight( float extrusionHeight ) { mExtrusionHeight = extrusionHeight; }
67 
69  QgsPhongMaterialSettings material() const { return mMaterial; }
71  void setMaterial( const QgsPhongMaterialSettings &material ) { mMaterial = material; }
72 
74  Qgs3DTypes::CullingMode cullingMode() const { return mCullingMode; }
76  void setCullingMode( Qgs3DTypes::CullingMode mode ) { mCullingMode = mode; }
77 
79  bool invertNormals() const { return mInvertNormals; }
81  void setInvertNormals( bool invert ) { mInvertNormals = invert; }
82 
87  bool addBackFaces() const { return mAddBackFaces; }
88 
93  void setAddBackFaces( bool add ) { mAddBackFaces = add; }
94 
95  private:
100 
101  float mHeight = 0.0f;
102  float mExtrusionHeight = 0.0f;
103  QgsPhongMaterialSettings mMaterial;
105  bool mInvertNormals = false;
106  bool mAddBackFaces = false;
107 };
108 
109 
110 #endif // QGSPOLYGON3DSYMBOL_H
AltitudeClamping
how to handle altitude of vector features
Definition: qgs3dtypes.h:34
The class is used as a container of context for various read/write operations on other objects...
virtual QgsAbstract3DSymbol * clone() const =0
Returns a new instance of the symbol with the same settings.
QgsPhongMaterialSettings material() const
Returns material used for shading of the symbol.
3 3D symbol that draws polygon geometries as planar polygons, optionally extruded (with added walls)...
CullingMode
Triangle culling mode.
Definition: qgs3dtypes.h:49
void setHeight(float height)
Sets height (altitude) of the symbol (in map units)
3 Basic shading material used for rendering based on the Phong shading model with three color compone...
Qgs3DTypes::AltitudeClamping altitudeClamping() const
Returns method that determines altitude (whether to clamp to feature to terrain)
virtual void writeXml(QDomElement &elem, const QgsReadWriteContext &context) const =0
Writes symbol configuration to the given DOM element.
3 Abstract base class for 3D symbols that are used by VectorLayer3DRenderer objects.
bool addBackFaces() const
Returns whether also triangles facing the other side will be created.
void setAltitudeBinding(Qgs3DTypes::AltitudeBinding altBinding)
Sets method that determines how altitude is bound to individual vertices.
Qgs3DTypes::CullingMode cullingMode() const
Returns front/back culling mode.
void setAddBackFaces(bool add)
Sets whether also triangles facing the other side will be created.
Will render both front and back faces of triangles.
Definition: qgs3dtypes.h:51
bool invertNormals() const
Returns whether the normals of triangles will be inverted (useful for fixing clockwise / counter-cloc...
Qgs3DTypes::AltitudeBinding altitudeBinding() const
Returns method that determines how altitude is bound to individual vertices.
void setCullingMode(Qgs3DTypes::CullingMode mode)
Sets front/back culling mode.
float height() const
Returns height (altitude) of the symbol (in map units)
float extrusionHeight() const
Returns extrusion height (in map units)
#define SIP_FACTORY
Definition: qgis_sip.h:69
AltitudeBinding
how to handle clamping of vertices of individual features
Definition: qgs3dtypes.h:42
void setMaterial(const QgsPhongMaterialSettings &material)
Sets material used for shading of the symbol.
QString type() const override
Returns identifier of symbol type. Each 3D symbol implementation should return a different type...
void setInvertNormals(bool invert)
Sets whether the normals of triangles will be inverted (useful for fixing clockwise / counter-clockwi...
virtual void readXml(const QDomElement &elem, const QgsReadWriteContext &context)=0
Reads symbol configuration from the given DOM element.
void setAltitudeClamping(Qgs3DTypes::AltitudeClamping altClamping)
Sets method that determines altitude (whether to clamp to feature to terrain)
void setExtrusionHeight(float extrusionHeight)
Sets extrusion height (in map units)
Z_final = z_terrain + z_geometry.
Definition: qgs3dtypes.h:37
Clamp just centroid of feature.
Definition: qgs3dtypes.h:45