QGIS API Documentation  3.10.0-A Coruña (6c816b4204)
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 
32 class QgsPoint3DBillboardMaterial : public Qt3DRender::QMaterial
33 {
34  Q_OBJECT
35 
36  public:
38 
40  void setSize( const QSizeF size );
42  QSizeF size() const;
43 
45  void setViewportSize( const QSizeF size );
47  QSizeF windowSize() const;
48 
50  void useDefaultSymbol( const Qgs3DMapSettings &map, bool selected = false );
51 
53  void setTexture2DFromSymbol( QgsMarkerSymbol *markerSymbol, const Qgs3DMapSettings &map, bool selected = false );
54 
55  private:
57  void setTexture2DFromImage( QImage image, double size = 100 );
58 
60  void setTexture2DFromTextureImage( Qt3DRender::QAbstractTextureImage *textureImage );
61 
62  Qt3DRender::QParameter *mSize = nullptr;
63  Qt3DRender::QParameter *mViewportSize = nullptr;
64  Qt3DRender::QParameter *mTexture2D = nullptr;
65 };
66 
67 
68 #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:860
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.