27#ifndef INTERPOLATION_H
28#define INTERPOLATION_H
42#include <QSharedPointer>
50#include <Eigen/Sparse>
59#define FLOAT_INFINITY std::numeric_limits<float>::infinity()
73 typedef QSharedPointer<Interpolation>
SPtr;
74 typedef QSharedPointer<const Interpolation>
ConstSPtr;
82static QSharedPointer<Eigen::SparseMatrix<float> >
createInterpolationMat(
const Eigen::VectorXi &vecProjectedSensors,
83 const QSharedPointer<Eigen::MatrixXd> matDistanceTable,
84 double (*interpolationFunction) (
double),
86 const Eigen::VectorXi &vecExcludeIndex = Eigen::VectorXi());
92 static Eigen::VectorXf
interpolateSignal(
const QSharedPointer<Eigen::SparseMatrix<float> > matInterpolationMatrix,
93 const QSharedPointer<Eigen::VectorXf> &vecMeasurementData);
99 static Eigen::VectorXf
interpolateSignal(
const Eigen::SparseMatrix<float> &matInterpolationMatrix,
100 const Eigen::VectorXf &vecMeasurementData);
106 static double linear(
const double dIn);
112 static double gaussian(
const double dIn);
118 static double square(
const double dIn);
124 static double cubic(
const double dIn);
Library export/import macros and namespace marker for the disp3D library.
#define DISP3DSHARED_EXPORT
3-D brain visualisation using the Qt RHI rendering backend.
QSharedPointer< const Interpolation > ConstSPtr
static Eigen::VectorXf interpolateSignal(const Eigen::SparseMatrix< float > &matInterpolationMatrix, const Eigen::VectorXf &vecMeasurementData)
interpolateSignal Interpolates sensor data using the weight matrix (reference version).
static double gaussian(const double dIn)
gaussian Gaussian interpolation function (sigma=1).
static Eigen::VectorXf interpolateSignal(const QSharedPointer< Eigen::SparseMatrix< float > > matInterpolationMatrix, const QSharedPointer< Eigen::VectorXf > &vecMeasurementData)
interpolateSignal Interpolates sensor data using the weight matrix (shared pointer version).
static double linear(const double dIn)
linear Identity interpolation function.
static double cubic(const double dIn)
cubic Cubic hyperbola interpolation function.
static QSharedPointer< Eigen::SparseMatrix< float > > createInterpolationMat(const Eigen::VectorXi &vecProjectedSensors, const QSharedPointer< Eigen::MatrixXd > matDistanceTable, double(*interpolationFunction)(double), const double dCancelDist=FLOAT_INFINITY, const Eigen::VectorXi &vecExcludeIndex=Eigen::VectorXi())
createInterpolationMat Calculates the weight matrix for interpolation.
QSharedPointer< Interpolation > SPtr
static double square(const double dIn)
square Negative parabola interpolation function with y-offset of 1.