20 #if !defined(__MITSUBA_CORE_SPLINE_H_)
21 #define __MITSUBA_CORE_SPLINE_H_
23 #include <mitsuba/mitsuba.h>
59 size_t size,
Float min,
Float max,
bool extrapolate =
false);
86 const Float *values,
size_t size,
bool extrapolate =
false);
134 const Float *nodes,
const Float *values,
size_t size);
214 const Size2 &size,
const Point2 &min,
const Point2 &max,
bool extrapolate =
false);
245 const Float *values,
const Size2 &size,
bool extrapolate =
false);
274 const Size3 &size,
const Point3 &min,
const Point3 &max,
bool extrapolate =
false);
306 const Float *values,
const Size3 &size,
bool extrapolate =
false);
Float evalCubicInterp1DN(Float x, const Float *nodes, const Float *values, size_t size, bool extrapolate=false)
Evaluate a cubic spline interpolant of a nonuniformly sampled 1D function.
Float evalCubicInterp2DN(const Point2 &p, const Float **nodes, const Float *values, const Size2 &size, bool extrapolate=false)
Evaluate a cubic spline interpolant of a nonuniformly sampled 2D function.
Float evalCubicInterp3DN(const Point3 &p, const Float **nodes, const Float *values, const Size3 &size, bool extrapolate=false)
Evaluate a cubic spline interpolant of a nonuniformly sampled 3D function.
#define MTS_EXPORT_CORE
Definition: getopt.h:29
Float evalCubicInterp1D(Float x, const Float *values, size_t size, Float min, Float max, bool extrapolate=false)
Evaluate a cubic spline interpolant of a uniformly sampled 1D function.
Float integrateCubicInterp1D(size_t idx, const Float *values, size_t size, Float min, Float max)
Computes the definite integral over a segment of a uniformly sampled 1D Catmull-Rom spline interpolan...
Float evalCubicInterp2D(const Point2 &p, const Float *values, const Size2 &size, const Point2 &min, const Point2 &max, bool extrapolate=false)
Evaluate a cubic spline interpolant of a uniformly sampled 2D function.
Float integrateCubicInterp1DN(size_t idx, const Float *nodes, const Float *values, size_t size)
Computes the definite integral over a segment of a nonuniformly sampled 1D Catmull-Rom spline interpo...
Float sampleCubicInterp1DN(size_t idx, const Float *nodes, const Float *values, size_t size, Float sample, Float *fval=NULL)
Importance sample a segment of a nonuniformly sampled 1D Catmull-Rom spline interpolant.
Float sampleCubicInterp1D(size_t idx, const Float *values, size_t size, Float min, Float max, Float sample, Float *fval=NULL)
Importance sample a segment of a uniformly sampled 1D Catmull-Rom spline interpolant.
Float evalCubicInterp3D(const Point3 &p, const Float *values, const Size3 &size, const Point3 &min, const Point3 &max, bool extrapolate=false)
Evaluate a cubic spline interpolant of a uniformly sampled 3D function.