28 #ifndef CSplineInterpolator1D_H
29 #define CSplineInterpolator1D_H
55 std::map<
double,
double> m_x2y;
61 template <class VECTOR>
63 const VECTOR &initial_x,
64 const VECTOR &initial_y,
65 bool wrap2pi = false ) : m_wrap2pi(wrap2pi)
67 setXY(initial_x, initial_y);
82 template <
class VECTOR>
83 void setXY(
const VECTOR &x,
const VECTOR &y,
bool clearPreviousContent =
true )
86 if (clearPreviousContent) m_x2y.clear();
88 const size_t n =
size_t(x.size());
89 for (
size_t i=0;i<n;i++)
95 void appendXY(
double x,
double y );
105 double &query(
double x,
double &y,
bool &out_valid )
const;
111 template <
class VECTOR1,
class VECTOR2>
112 bool queryVector(
const VECTOR1 &x, VECTOR2 &out_y )
const
114 const size_t n = size_t(x.size());
116 bool valid, anyValid=
false;
117 for (
size_t i =0;i<n;i++)
119 query( x[i], out_y[i], valid );
120 if (valid) anyValid=
true;