35 #ifndef DISP3DLIB_INTERPOLATION_H
36 #define DISP3DLIB_INTERPOLATION_H
42 #include "../../disp3D_global.h"
50 #include <QSharedPointer>
58 #include <Eigen/Sparse>
70 #define FLOAT_INFINITY std::numeric_limits<float>::infinity()
92 typedef QSharedPointer<Interpolation>
SPtr;
93 typedef QSharedPointer<const Interpolation>
ConstSPtr;
118 static QSharedPointer<Eigen::SparseMatrix<float> > createInterpolationMat(
const QVector<int> &vecProjectedSensors,
119 const QSharedPointer<Eigen::MatrixXd> matDistanceTable,
120 double (*interpolationFunction) (
double),
121 const double dCancelDist = FLOAT_INFINITY,
122 const QVector<int> &vecExcludeIndex = QVector<int>());
136 static Eigen::VectorXf interpolateSignal(
const QSharedPointer<Eigen::SparseMatrix<float> > matInterpolationMatrix,
137 const QSharedPointer<Eigen::VectorXf> &vecMeasurementData);
151 static Eigen::VectorXf interpolateSignal(
const Eigen::SparseMatrix<float> &matInterpolationMatrix,
152 const Eigen::VectorXf &vecMeasurementData);
162 static double linear(
const double dIn);
172 static double gaussian(
const double dIn);
182 static double square(
const double dIn);
192 static double cubic(
const double dIn);
204 #endif // DISP3DLIB_INTERPOLATION_H