QGIS API Documentation  3.16.0-Hannover (43b64b13f3)
qgspoint3dsymbol.h
Go to the documentation of this file.
1 /***************************************************************************
2  qgspoint3dsymbol.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 QGSPOINT3DSYMBOL_H
17 #define QGSPOINT3DSYMBOL_H
18 
19 #include "qgis_3d.h"
20 
21 #include "qgsabstract3dsymbol.h"
22 #include "qgs3dtypes.h"
23 #include "qgssymbol.h"
24 
25 #include <QMatrix4x4>
26 
28 
39 {
40  public:
43 
45  QgsPoint3DSymbol( const QgsPoint3DSymbol &other );
46 
52  static QgsAbstract3DSymbol *create() SIP_FACTORY;
53 
54  QString type() const override { return "point"; }
55  QgsAbstract3DSymbol *clone() const override SIP_FACTORY;
56 
57  void writeXml( QDomElement &elem, const QgsReadWriteContext &context ) const override;
58  void readXml( const QDomElement &elem, const QgsReadWriteContext &context ) override;
59  QList< QgsWkbTypes::GeometryType > compatibleGeometryTypes() const override;
60 
62  Qgs3DTypes::AltitudeClamping altitudeClamping() const { return mAltClamping; }
64  void setAltitudeClamping( Qgs3DTypes::AltitudeClamping altClamping ) { mAltClamping = altClamping; }
65 
67  QgsAbstractMaterialSettings *material() const;
68 
74  void setMaterial( QgsAbstractMaterialSettings *material SIP_TRANSFER );
75 
77  enum Shape
78  {
88  };
89 
91  static Shape shapeFromString( const QString &shape );
93  static QString shapeToString( Shape shape );
94 
96  Shape shape() const { return mShape; }
98  void setShape( Shape shape ) { mShape = shape; }
99 
101  QVariantMap shapeProperties() const { return mShapeProperties; }
103  void setShapeProperties( const QVariantMap &properties ) { mShapeProperties = properties; }
104 
106  QgsMarkerSymbol *billboardSymbol() const { return mBillboardSymbol.get(); }
108  void setBillboardSymbol( QgsMarkerSymbol *symbol ) { mBillboardSymbol.reset( symbol ); }
109 
111  QMatrix4x4 transform() const { return mTransform; }
113  void setTransform( const QMatrix4x4 &transform ) { mTransform = transform; }
114 
116  QMatrix4x4 billboardTransform() const;
117 
122  bool exportGeometries( Qgs3DSceneExporter *exporter, Qt3DCore::QEntity *entity, const QString &objectNamePrefix ) const override SIP_SKIP;
123  private:
126 
127  std::unique_ptr< QgsAbstractMaterialSettings> mMaterial;
128  Shape mShape = Cylinder;
129  QVariantMap mShapeProperties;
130  QMatrix4x4 mTransform;
131  std::unique_ptr<QgsMarkerSymbol> mBillboardSymbol;
132 #ifdef SIP_RUN
133  QgsPoint3DSymbol &operator=( const QgsPoint3DSymbol & );
134 #else
135  QgsPoint3DSymbol &operator=( const QgsPoint3DSymbol & ) = delete;
136 #endif
137 };
138 
139 
140 #endif // QGSPOINT3DSYMBOL_H
QgsPoint3DSymbol::Cube
@ Cube
Definition: qgspoint3dsymbol.h:82
QgsReadWriteContext
The class is used as a container of context for various read/write operations on other objects.
Definition: qgsreadwritecontext.h:35
QgsPoint3DSymbol::Shape
Shape
3D shape types supported by the symbol
Definition: qgspoint3dsymbol.h:78
Qgs3DTypes::AltClampRelative
@ AltClampRelative
Z_final = z_terrain + z_geometry.
Definition: qgs3dtypes.h:37
QgsPoint3DSymbol::setBillboardSymbol
void setBillboardSymbol(QgsMarkerSymbol *symbol)
Set symbol for billboard and the ownership is transferred.
Definition: qgspoint3dsymbol.h:108
QgsPoint3DSymbol::Sphere
@ Sphere
Definition: qgspoint3dsymbol.h:80
qgsabstract3dsymbol.h
SIP_FACTORY
#define SIP_FACTORY
Definition: qgis_sip.h:76
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
QgsPoint3DSymbol::Cone
@ Cone
Definition: qgspoint3dsymbol.h:81
SIP_SKIP
#define SIP_SKIP
Definition: qgis_sip.h:126
QgsAbstractMaterialSettings
3 Abstract base class for material settings.
Definition: qgsabstractmaterialsettings.h:105
QgsMarkerSymbol
A marker symbol type, for rendering Point and MultiPoint geometries.
Definition: qgssymbol.h:931
QgsPoint3DSymbol::type
QString type() const override
Definition: qgspoint3dsymbol.h:54
QgsPoint3DSymbol::Model
@ Model
Definition: qgspoint3dsymbol.h:86
SIP_TRANSFER
#define SIP_TRANSFER
Definition: qgis_sip.h:36
qgs3dtypes.h
QgsAbstract3DSymbol::clone
virtual QgsAbstract3DSymbol * clone() const =0
Returns a new instance of the symbol with the same settings.
QgsPoint3DSymbol::setTransform
void setTransform(const QMatrix4x4 &transform)
Sets transform for individual objects represented by the symbol.
Definition: qgspoint3dsymbol.h:113
QgsPoint3DSymbol::Cylinder
@ Cylinder
Definition: qgspoint3dsymbol.h:79
QgsPoint3DSymbol::setAltitudeClamping
void setAltitudeClamping(Qgs3DTypes::AltitudeClamping altClamping)
Sets method that determines altitude (whether to clamp to feature to terrain)
Definition: qgspoint3dsymbol.h:64
QgsPoint3DSymbol::Torus
@ Torus
Definition: qgspoint3dsymbol.h:83
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
QgsPoint3DSymbol::shape
Shape shape() const
Returns 3D shape for points.
Definition: qgspoint3dsymbol.h:96
QgsPoint3DSymbol::Plane
@ Plane
Definition: qgspoint3dsymbol.h:84
QgsPoint3DSymbol::setShape
void setShape(Shape shape)
Sets 3D shape for points.
Definition: qgspoint3dsymbol.h:98
QgsPoint3DSymbol::ExtrudedText
@ ExtrudedText
Supported in Qt 5.9+.
Definition: qgspoint3dsymbol.h:85
QgsPoint3DSymbol::shapeProperties
QVariantMap shapeProperties() const
Returns a key-value dictionary of point shape properties.
Definition: qgspoint3dsymbol.h:101
QgsWkbTypes
Handles storage of information regarding WKB types and their properties.
Definition: qgswkbtypes.h:42
QgsPoint3DSymbol::transform
QMatrix4x4 transform() const
Returns transform for individual objects represented by the symbol.
Definition: qgspoint3dsymbol.h:111
QgsPoint3DSymbol::Billboard
@ Billboard
Definition: qgspoint3dsymbol.h:87
Qgs3DTypes
3 Defines enumerations and other auxiliary types for QGIS 3D
Definition: qgs3dtypes.h:31
qgssymbol.h
QgsPoint3DSymbol::setShapeProperties
void setShapeProperties(const QVariantMap &properties)
Sets a key-value dictionary of point shape properties.
Definition: qgspoint3dsymbol.h:103
QgsPoint3DSymbol::billboardSymbol
QgsMarkerSymbol * billboardSymbol() const
Returns a symbol for billboard.
Definition: qgspoint3dsymbol.h:106
QgsPoint3DSymbol
3 3D symbol that draws point geometries as 3D objects using one of the predefined shapes.
Definition: qgspoint3dsymbol.h:39