47 m_d->minX = xSamples.first();
48 m_d->maxX = xSamples.last();
50 m_d->minY = ySamples.first();
51 m_d->maxY = ySamples.last();
79 const_cast<float*
>(values.constData()));
90 x -= x * std::numeric_limits<float>::epsilon();
94 y -= y * std::numeric_limits<float>::epsilon();
108 return QPointF(
m_d->minX,
m_d->minY);
113 return QPointF(
m_d->maxX,
m_d->maxY);
void destroy_Bspline(void *spline)
#define KIS_ASSERT_RECOVER_NOOP(cond)
bc_code convertBorderType(BorderCondition v)
NUBspline_2d_s * create_NUBspline_2d_s(NUgrid *x_grid, NUgrid *y_grid, BCtype_s xBC, BCtype_s yBC, float *data)
NUgrid * create_general_grid(double *points, int num_points)
void eval_NUBspline_2d_s(NUBspline_2d_s *restrict spline, double x, double y, float *restrict val)
void destroy_grid(NUgrid *grid)
const QVector< double > m_xSamples
KisNUBSpline2D(const QVector< double > &xSamples, BorderCondition bcX, const QVector< double > &ySamples, BorderCondition bcY)
const QVector< double > m_ySamples
BorderCondition borderConditionY() const
const QScopedPointer< Private > m_d
float value(float x, float y) const
BorderCondition borderConditionX() const
QPointF bottomRight() const
void initializeSplineImpl(const QVector< float > &values)