1 #ifndef _utl_SplineInterpolatorOffline_h_
2 #define _utl_SplineInterpolatorOffline_h_
4 #include <utl/UniformBSpline.h>
5 #include <utl/SplineFunction.h>
6 #include <utl/SplineSolver.h>
9 #include <boost/multi_array.hpp>
11 #include <utl/AugerException.h>
27 using namespace ::Spline::Uniform;
28 using namespace ::Spline;
30 class Interpolator1D {
36 const std::vector<double>& values,
59 const boost::multi_array<double,2>& values,
63 double operator()(
const double x,
const double y)
const;
65 double GetStart(
const unsigned char dimension)
const
66 {
return fSpline.GetStart(dimension); }
68 double GetStop(
const unsigned char dimension)
const
69 {
return fSpline.GetStop(dimension); }
88 const boost::multi_array<double,3>& values,
93 double operator()(
const double x,
const double y,
const double z)
const;
95 double GetStart(
const unsigned char dimension)
const
96 {
return fSpline.GetStart(dimension); }
98 double GetStop(
const unsigned char dimension)
const
99 {
return fSpline.GetStop(dimension); }
102 mutable double fX[3];
114 const boost::multi_array<double,2>& fValue,
126 std::vector< std::vector<double> >
fData;
139 const boost::multi_array<double,3>& values,
143 void operator()(std::vector<double>&
result,
const double x,
const double y)
const;
145 double GetStart(
const unsigned char dimension)
const
146 {
return fSpline.GetStart(dimension); }
148 double GetStop(
const unsigned char dimension)
const
149 {
return fSpline.GetStop(dimension); }
152 mutable double fX[2];
153 std::vector< std::vector<double> >
fData;
168 const boost::multi_array<double,4>& values,
173 void operator()(std::vector<double>&
result,
const double x,
const double y,
const double z)
const;
175 double GetStart(
const unsigned char dimension)
const
176 {
return fSpline.GetStart(dimension); }
178 double GetStop(
const unsigned char dimension)
const
179 {
return fSpline.GetStop(dimension); }
182 mutable double fX[3];
183 std::vector< std::vector<double> >
fData;
double GetStart(const unsigned char dimension) const
std::vector< std::vector< double > > fData
Spline::Function< 3, KnotVector, BasisFunction > fSpline
Spline::Function< 2, KnotVector, BasisFunction > fSpline
std::vector< double > fData
double GetStart(const unsigned char dimension) const
double GetStop(const unsigned char dimension) const
std::vector< std::vector< double > > fData
Spline::Function< 2, KnotVector, BasisFunction > fSpline
void operator()(std::vector< double > &result, const double x, const double y, const double z) const
Spline::Function< 3, KnotVector, BasisFunction > fSpline
double GetStart(const unsigned char dimension) const
std::vector< std::vector< double > > fData
double operator()(const double x, const double y, const double z) const
double GetStop(const unsigned char dimension) const
Spline::Function< 1, KnotVector, BasisFunction > fSpline
std::vector< double > fData
void operator()(std::vector< double > &result, const double x, const double y) const
double GetStart(const unsigned char dimension) const
void operator()(std::vector< double > &result, const double x) const
double GetStop(const unsigned char dimension) const
double GetStop(const unsigned char dimension) const
Spline::Function< 1, KnotVector, BasisFunction > fSpline
double operator()(const double x) const
std::vector< double > fData
double operator()(const double x, const double y) const