18 #ifndef QGSCUBICRASTERRESAMPLER_H
19 #define QGSCUBICRASTERRESAMPLER_H
33 void resample(
const QImage& srcImage, QImage& dstImage )
override;
34 QString
type()
const override {
return "cubic"; }
37 static void xDerivativeMatrix(
int nCols,
int nRows,
double* matrix,
const int* colorMatrix );
38 static void yDerivativeMatrix(
int nCols,
int nRows,
double* matrix,
const int* colorMatrix );
40 void calculateControlPoints(
int nCols,
int nRows,
int currentRow,
int currentCol,
int* redMatrix,
int* greenMatrix,
int* blueMatrix,
41 int* alphaMatrix,
double* xDerivativeMatrixRed,
double* xDerivativeMatrixGreen,
double* xDerivativeMatrixBlue,
42 double* xDerivativeMatrixAlpha,
double* yDerivativeMatrixRed,
double* yDerivativeMatrixGreen,
double* yDerivativeMatrixBlue,
43 double* yDerivativeMatrixAlpha );
46 QRgb curveInterpolation( QRgb pt1, QRgb pt2,
double t,
double d1red,
double d1green,
double d1blue,
double d1alpha,
double d2red,
double d2green,
47 double d2blue,
double d2alpha );
49 static inline double calcBernsteinPolyN3(
int i,
double t );
50 static inline int lowerN3(
int i );
53 static inline QRgb createPremultipliedColor(
const int r,
const int g,
const int b,
const int a );
58 double cRed00;
double cRed10;
double cRed20;
double cRed30;
double cRed01;
double cRed11;
double cRed21;
double cRed31;
59 double cRed02;
double cRed12;
double cRed22;
double cRed32;
double cRed03;
double cRed13;
double cRed23;
double cRed33;
61 double cGreen00;
double cGreen10;
double cGreen20;
double cGreen30;
double cGreen01;
double cGreen11;
double cGreen21;
double cGreen31;
62 double cGreen02;
double cGreen12;
double cGreen22;
double cGreen32;
double cGreen03;
double cGreen13;
double cGreen23;
double cGreen33;
64 double cBlue00;
double cBlue10;
double cBlue20;
double cBlue30;
double cBlue01;
double cBlue11;
double cBlue21;
double cBlue31;
65 double cBlue02;
double cBlue12;
double cBlue22;
double cBlue32;
double cBlue03;
double cBlue13;
double cBlue23;
double cBlue33;
67 double cAlpha00;
double cAlpha10;
double cAlpha20;
double cAlpha30;
double cAlpha01;
double cAlpha11;
double cAlpha21;
double cAlpha31;
68 double cAlpha02;
double cAlpha12;
double cAlpha22;
double cAlpha32;
double cAlpha03;
double cAlpha13;
double cAlpha23;
double cAlpha33;
73 #endif // QGSCUBICRASTERRESAMPLER_H