QGIS API Documentation  3.23.0-Master (c716e02dd3)
qgspreviewquad.h
Go to the documentation of this file.
1 /***************************************************************************
2  qgspreviewquad.h
3  --------------------------------------
4  Date : August 2020
5  Copyright : (C) 2020 by Belgacem Nedjima
6  Email : gb underscore nedjima at esi dot dz
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 QGSPREVIEWQUAD_H
17 #define QGSPREVIEWQUAD_H
18 
19 #include <Qt3DCore/QEntity>
20 #include <Qt3DRender/QMaterial>
21 #include <Qt3DRender/QParameter>
22 #include <Qt3DRender/QEffect>
23 
24 #define SIP_NO_FILE
25 
33 class QgsPreviewQuadMaterial : public Qt3DRender::QMaterial
34 {
35  public:
37  QgsPreviewQuadMaterial( Qt3DRender::QAbstractTexture *texture, QVector<Qt3DRender::QParameter *> additionalShaderParameters = QVector<Qt3DRender::QParameter *>(), QNode *parent = nullptr );
38 
40  void setViewPort( QVector2D centerTexCoords, QVector2D sizeTexCoords );
41  private:
42  Qt3DRender::QEffect *mEffect = nullptr;
43  Qt3DRender::QParameter *mTextureParameter = nullptr;
44  Qt3DRender::QParameter *mCenterTextureCoords = nullptr;
45  Qt3DRender::QParameter *mSizeTextureCoords = nullptr;
46 
47 };
48 
56 class QgsPreviewQuad : public Qt3DCore::QEntity
57 {
58  public:
59 
69  QgsPreviewQuad( Qt3DRender::QAbstractTexture *texture, const QPointF &centerNDC, const QSizeF &size, QVector<Qt3DRender::QParameter *> additionalShaderParameters = QVector<Qt3DRender::QParameter *>(), Qt3DCore::QEntity *parent = nullptr );
70 
72  void setViewPort( const QPointF &centerNDC, const QSizeF &size );
73  private:
74  QgsPreviewQuadMaterial *mMaterial = nullptr;
75 };
76 
77 #endif // QGSPREVIEWQUAD_H
void setViewPort(QVector2D centerTexCoords, QVector2D sizeTexCoords)
Sets the view port of the quad.
QgsPreviewQuadMaterial(Qt3DRender::QAbstractTexture *texture, QVector< Qt3DRender::QParameter * > additionalShaderParameters=QVector< Qt3DRender::QParameter * >(), QNode *parent=nullptr)
Constructor.
void setViewPort(const QPointF &centerNDC, const QSizeF &size)
Sets where the quad will be located on the scene.
QgsPreviewQuad(Qt3DRender::QAbstractTexture *texture, const QPointF &centerNDC, const QSizeF &size, QVector< Qt3DRender::QParameter * > additionalShaderParameters=QVector< Qt3DRender::QParameter * >(), Qt3DCore::QEntity *parent=nullptr)
Construct an object that displays a texture for debugging purposes (example: depth buffer)