QGIS API Documentation  3.6.0-Noosa (5873452)
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
float height() const
Returns 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...
Qgs3DTypes::AltitudeBinding altitudeBinding() const
Returns method that determines how altitude is bound to individual vertices.
bool addBackFaces() const
Returns whether also triangles facing the other side will be created.
virtual QgsAbstract3DSymbol * clone() const =0
Returns a new instance of the symbol with the same settings.
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...
QgsPhongMaterialSettings material() const
Returns material used for shading of the symbol.
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.
void setAltitudeBinding(Qgs3DTypes::AltitudeBinding altBinding)
Sets method that determines how altitude is bound to individual vertices.
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
void setCullingMode(Qgs3DTypes::CullingMode mode)
Sets front/back culling mode.
#define SIP_FACTORY
Definition: qgis_sip.h:69
bool invertNormals() const
Returns whether the normals of triangles will be inverted (useful for fixing clockwise / counter-cloc...
Qgs3DTypes::CullingMode cullingMode() const
Returns front/back culling mode.
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
float extrusionHeight() const
Returns extrusion height (in map units)
Qgs3DTypes::AltitudeClamping altitudeClamping() const
Returns method that determines altitude (whether to clamp to feature to terrain)