QGIS API Documentation 3.99.0-Master (2fe06baccd8)
Loading...
Searching...
No Matches
qgscolorramptexture.h
Go to the documentation of this file.
1/***************************************************************************
2 qgscolorramptexture.h
3 -------------------------
4 begin : january 2020
5 copyright : (C) 2020 by Vincent Cloarec
6 email : vcloarec at gmail dot com
7 ***************************************************************************/
8
9/***************************************************************************
10 * *
11 * This program is free software; you can redistribute it and/or modify *
12 * it under the terms of the GNU General Public License as published by *
13 * the Free Software Foundation; either version 2 of the License, or *
14 * (at your option) any later version. *
15 * *
16 ***************************************************************************/
17
18#ifndef QGSCOLORRAMPTEXTURE_H
19#define QGSCOLORRAMPTEXTURE_H
20
22
23#include "qgscolorrampshader.h"
24
25#include <QByteArray>
26#include <QUrl>
27#include <QVector2D>
28#include <QVector3D>
29#include <QVector4D>
30#include <Qt3DRender/QEffect>
31#include <Qt3DRender/QGraphicsApiFilter>
32#include <Qt3DRender/QParameter>
33#include <Qt3DRender/QTexture>
34
35#define SIP_NO_FILE
36
37class QgsColorRampTextureGenerator : public Qt3DRender::QTextureImageDataGenerator
38{
39 public:
40 QgsColorRampTextureGenerator( const QgsColorRampShader &colorRampShader, double verticalScale = 1 );
41
42 public:
43 Qt3DRender::QTextureImageDataPtr operator()() override;
44
45 qintptr id() const override
46 {
47#if QT_VERSION < QT_VERSION_CHECK( 6, 0, 0 )
48 return reinterpret_cast<qintptr>( &Qt3DRender::FunctorType<QgsColorRampTextureGenerator>::id );
49#else
50 return reinterpret_cast<qintptr>( &Qt3DCore::FunctorType<QgsColorRampTextureGenerator>::id );
51#endif
52 }
53
54 bool operator==( const Qt3DRender::QTextureImageDataGenerator &other ) const override;
55
56 private:
57 QgsColorRampShader mColorRampShader;
58 double mVerticalScale = 1;
59};
60
61
62class QgsColorRampTexture : public Qt3DRender::QAbstractTextureImage
63{
64 Q_OBJECT
65
66 public:
67 QgsColorRampTexture( const QgsColorRampShader &colorRampShader, double verticalScale = 1, Qt3DCore::QNode *parent = nullptr );
68 // QAbstractTextureImage interface
69 protected:
70 Qt3DRender::QTextureImageDataGeneratorPtr dataGenerator() const override;
71
72 private:
73 QgsColorRampShader mColorRampShader;
74 double mVerticalScale = 1;
75};
76
78
79#endif // QGSCOLORRAMPTEXTURE_H
bool operator==(const QgsFeatureIterator &fi1, const QgsFeatureIterator &fi2)