20#include <Qt3DRender/QTextureImageDataGenerator>
22#include "moc_qgsterraintextureimage_p.cpp"
26class TerrainTextureImageDataGenerator :
public Qt3DRender::QTextureImageDataGenerator
29 static QImage placeholderImage()
32 QImage i( 2, 2, QImage::Format_RGB32 );
33 i.setPixelColor( 0, 0, Qt::darkGray );
34 i.setPixelColor( 1, 0, Qt::lightGray );
35 i.setPixelColor( 0, 1, Qt::lightGray );
36 i.setPixelColor( 1, 1, Qt::darkGray );
40 TerrainTextureImageDataGenerator(
const QgsRectangle &extent,
const QString &debugText,
const QImage &img,
int version )
41 : mExtent( extent ), mDebugText( debugText ), mImage( img ), mVersion( version ) {}
43 Qt3DRender::QTextureImageDataPtr operator()()
override
45 Qt3DRender::QTextureImageDataPtr dataPtr = Qt3DRender::QTextureImageDataPtr::create();
46 dataPtr->setImage( mImage.isNull() ? placeholderImage() : mImage );
50 qintptr id()
const override
52#if QT_VERSION < QT_VERSION_CHECK( 6, 0, 0 )
53 return reinterpret_cast<qintptr
>( &Qt3DRender::FunctorType<TerrainTextureImageDataGenerator>::id );
55 return reinterpret_cast<qintptr
>( &Qt3DCore::FunctorType<TerrainTextureImageDataGenerator>::id );
59 bool operator==(
const QTextureImageDataGenerator &other )
const override
61 const TerrainTextureImageDataGenerator *otherFunctor =
dynamic_cast<const TerrainTextureImageDataGenerator *
>( &other );
62 return otherFunctor && otherFunctor->mVersion == mVersion && mExtent == otherFunctor->mExtent;
75QgsTerrainTextureImage::QgsTerrainTextureImage(
const QImage &image,
const QgsRectangle &extent,
const QString &debugText, Qt3DCore::QNode *parent )
78 , mDebugText( debugText )
83Qt3DRender::QTextureImageDataGeneratorPtr QgsTerrainTextureImage::dataGenerator()
const
85 return Qt3DRender::QTextureImageDataGeneratorPtr(
new TerrainTextureImageDataGenerator( mExtent, mDebugText, mImage, mVersion ) );
88void QgsTerrainTextureImage::invalidate()
92 notifyDataGeneratorChanged();
95void QgsTerrainTextureImage::setImage(
const QImage &img )
99 notifyDataGeneratorChanged();
A rectangle specified with double values.
bool operator==(const QgsFeatureIterator &fi1, const QgsFeatureIterator &fi2)