QGIS API Documentation  3.17.0-Master (a035f434f4)
qgspoint3dbillboardmaterial.h
Go to the documentation of this file.
1 /***************************************************************************
2  qgspoint3dbillboardmaterial.h
3  --------------------------------------
4  Date : Jul 2019
5  Copyright : (C) 2019 by Ismail Sunni
6  Email : imajimatika 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 #ifndef QGSPOINT3DBILLBOARDMATERIAL_H
16 #define QGSPOINT3DBILLBOARDMATERIAL_H
17 
18 #include <QObject>
19 #include <Qt3DRender/QParameter>
20 #include <Qt3DRender/QTexture>
21 #include <Qt3DRender/QMaterial>
22 
23 #include "qgsmarkersymbollayer.h"
24 #include "qgs3dmapsettings.h"
25 
26 #define SIP_NO_FILE
27 
36 class QgsPoint3DBillboardMaterial : public Qt3DRender::QMaterial
37 {
38  Q_OBJECT
39 
40  public:
42 
44  void setSize( const QSizeF size );
46  QSizeF size() const;
47 
49  void setViewportSize( const QSizeF size );
51  QSizeF windowSize() const;
52 
54  void useDefaultSymbol( const Qgs3DMapSettings &map, bool selected = false );
55 
57  void setTexture2DFromSymbol( QgsMarkerSymbol *markerSymbol, const Qgs3DMapSettings &map, bool selected = false );
58 
59  private:
61  void setTexture2DFromImage( QImage image, double size = 100 );
62 
64  void setTexture2DFromTextureImage( Qt3DRender::QAbstractTextureImage *textureImage );
65 
66  Qt3DRender::QParameter *mSize = nullptr;
67  Qt3DRender::QParameter *mViewportSize = nullptr;
68  Qt3DRender::QParameter *mTexture2D = nullptr;
69 };
70 
71 
72 #endif // QGSPOINT3DBILLBOARDMATERIAL_H
3 Material of the billboard rendering for points in 3D map view.
void setSize(const QSizeF size)
Set the billboard size.
void useDefaultSymbol(const Qgs3DMapSettings &map, bool selected=false)
Set default symbol for the texture with map and selected parameter for rendering. ...
3 Definition of the world
void setViewportSize(const QSizeF size)
Set the size of the view port.
A marker symbol type, for rendering Point and MultiPoint geometries.
Definition: qgssymbol.h:985
void setTexture2DFromSymbol(QgsMarkerSymbol *markerSymbol, const Qgs3DMapSettings &map, bool selected=false)
Set markerSymbol for the texture with map and selected parameter for rendering.
QSizeF windowSize() const
Returns the size of the view port.
QSizeF size() const
Returns the billboard size.