QGIS API Documentation 3.29.0-Master (da8bb1db43)
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
24#include <QMatrix4x4>
25
27class QgsMarkerSymbol;
28
39{
40 public:
43
45 QgsPoint3DSymbol( const QgsPoint3DSymbol &other );
46
48
54 static QgsAbstract3DSymbol *create() SIP_FACTORY;
55
56 QString type() const override { return "point"; }
57 QgsAbstract3DSymbol *clone() const override SIP_FACTORY;
58
59 void writeXml( QDomElement &elem, const QgsReadWriteContext &context ) const override;
60 void readXml( const QDomElement &elem, const QgsReadWriteContext &context ) override;
61 QList< QgsWkbTypes::GeometryType > compatibleGeometryTypes() const override;
62 void setDefaultPropertiesFromLayer( const QgsVectorLayer *layer ) override;
63
65 Qgis::AltitudeClamping altitudeClamping() const { return mAltClamping; }
67 void setAltitudeClamping( Qgis::AltitudeClamping altClamping ) { mAltClamping = altClamping; }
68
70 QgsAbstractMaterialSettings *materialSettings() const;
71
77 void setMaterialSettings( QgsAbstractMaterialSettings *materialSettings SIP_TRANSFER );
78
80 enum Shape
81 {
91 };
92
94 static Shape shapeFromString( const QString &shape );
96 static QString shapeToString( Shape shape );
97
99 Shape shape() const { return mShape; }
101 void setShape( Shape shape ) { mShape = shape; }
102
104 QVariantMap shapeProperties() const { return mShapeProperties; }
106 void setShapeProperties( const QVariantMap &properties ) { mShapeProperties = properties; }
107
109 QgsMarkerSymbol *billboardSymbol() const;
111 void setBillboardSymbol( QgsMarkerSymbol *symbol );
112
114 QMatrix4x4 transform() const { return mTransform; }
116 void setTransform( const QMatrix4x4 &transform ) { mTransform = transform; }
117
119 QMatrix4x4 billboardTransform() const;
120
125 bool exportGeometries( Qgs3DSceneExporter *exporter, Qt3DCore::QEntity *entity, const QString &objectNamePrefix ) const override SIP_SKIP;
126 private:
129
130 std::unique_ptr< QgsAbstractMaterialSettings> mMaterialSettings;
131 Shape mShape = Cylinder;
132 QVariantMap mShapeProperties;
133 QMatrix4x4 mTransform;
134 std::unique_ptr<QgsMarkerSymbol> mBillboardSymbol;
135#ifdef SIP_RUN
136 QgsPoint3DSymbol &operator=( const QgsPoint3DSymbol & );
137#else
138 QgsPoint3DSymbol &operator=( const QgsPoint3DSymbol & ) = delete;
139#endif
140};
141
142
143#endif // QGSPOINT3DSYMBOL_H
The Qgis class provides global constants for use throughout the application.
Definition: qgis.h:72
AltitudeClamping
Altitude clamping.
Definition: qgis.h:2190
@ Relative
Elevation is relative to terrain height (final elevation = terrain elevation + feature elevation)
Entity that handles the exporting of 3D scene.
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.
A marker symbol type, for rendering Point and MultiPoint geometries.
Shape
3D shape types supported by the symbol
@ ExtrudedText
Supported in Qt 5.9+.
void setTransform(const QMatrix4x4 &transform)
Sets transform for individual objects represented by the symbol.
~QgsPoint3DSymbol() override
void setShapeProperties(const QVariantMap &properties)
Sets a key-value dictionary of point shape properties.
QMatrix4x4 transform() const
Returns transform for individual objects represented by the symbol.
void setAltitudeClamping(Qgis::AltitudeClamping altClamping)
Sets method that determines altitude (whether to clamp to feature to terrain)
void setShape(Shape shape)
Sets 3D shape for points.
Shape shape() const
Returns 3D shape for points.
QVariantMap shapeProperties() const
Returns a key-value dictionary of point shape properties.
The class is used as a container of context for various read/write operations on other objects.
Represents a vector layer which manages a vector based data sets.
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