7#ifndef __KIS_NU_BSPLINE_2D_H
8#define __KIS_NU_BSPLINE_2D_H
10#include <kritaimage_export.h>
12#include <QScopedPointer>
22class KRITAIMAGE_EXPORT KisNUBSpline2D
30 template <
class FunctionOp>
33 const int xSize = m_xSamples.size();
34 const int ySize = m_ySamples.size();
38 for (
int x = 0; x < xSize; x++) {
39 double fx = m_xSamples[x];
41 for (
int y = 0; y < ySize; y++) {
42 double fy = m_ySamples[y];
44 values[x * ySize + y] =
v;
48 initializeSplineImpl(values);
51 float value(
float x,
float y)
const;
53 QPointF topLeft()
const;
54 QPointF bottomRight()
const;
64 const QScopedPointer<Private>
m_d;
float value(const T *src, size_t ch)
const QVector< double > m_xSamples
const QVector< double > m_ySamples
void initializeSpline(const FunctionOp &op)
const QScopedPointer< Private > m_d