18#ifndef QGSNINECELLFILTER_H
19#define QGSNINECELLFILTER_H
23#include "qgis_analysis.h"
41 QgsNineCellFilter(
const QString &inputFile,
const QString &outputFile,
const QString &outputFormat );
49 int processRaster(
QgsFeedback *feedback =
nullptr );
56 double zFactor()
const {
return mZFactor; }
82 virtual float processNineCellWindow(
float *x11,
float *x21,
float *x31,
float *x12,
float *x22,
float *x32,
float *x13,
float *x23,
float *x33 ) = 0;
95 GDALDriverH openOutputDriver();
108 int processRasterCPU(
QgsFeedback *feedback =
nullptr );
118 int processRasterGPU(
const QString &source,
QgsFeedback *feedback =
nullptr );
125 virtual void addExtraRasterParams( std::vector<float> ¶ms )
130 virtual const QString openClProgramBaseName()
const
142 double mCellSizeX = -1.0;
143 double mCellSizeY = -1.0;
145 float mInputNodataValue = -1.0;
147 float mOutputNodataValue = -1.0;
149 double mZFactor = 1.0;
Base class for feedback objects to be used for cancellation of something running in a worker thread.
Base class for raster analysis methods that work with a 3x3 cell filter and calculate the value of ea...
virtual float processNineCellWindow(float *x11, float *x21, float *x31, float *x12, float *x22, float *x32, float *x13, float *x23, float *x33)=0
Calculates output value from nine input values.
virtual ~QgsNineCellFilter()=default
void setCellSizeX(double size)
void setOutputNodataValue(double value)
void setInputNodataValue(double value)
void setZFactor(double factor)
void setCellSizeY(double size)
double inputNodataValue() const
double outputNodataValue() const
std::unique_ptr< std::remove_pointer< GDALDatasetH >::type, GDALDatasetCloser > dataset_unique_ptr
Scoped GDAL dataset.