27#ifndef INTERPOLATION_H
28#define INTERPOLATION_H
42#include <QSharedPointer>
50#include <Eigen/Sparse>
60#define FLOAT_INFINITY std::numeric_limits<float>::infinity()
75 typedef QSharedPointer<Interpolation>
SPtr;
76 typedef QSharedPointer<const Interpolation>
ConstSPtr;
91 static QSharedPointer<Eigen::SparseMatrix<float>>
createInterpolationMat(
const Eigen::VectorXi& vecProjectedSensors,
92 const QSharedPointer<Eigen::MatrixXd> matDistanceTable,
93 double (*interpolationFunction)(
double),
95 const Eigen::VectorXi& vecExcludeIndex = Eigen::VectorXi());
105 static Eigen::VectorXf
interpolateSignal(
const QSharedPointer<Eigen::SparseMatrix<float>> matInterpolationMatrix,
106 const QSharedPointer<Eigen::VectorXf>& vecMeasurementData);
116 static Eigen::VectorXf
interpolateSignal(
const Eigen::SparseMatrix<float>& matInterpolationMatrix,
117 const Eigen::VectorXf& vecMeasurementData);
126 static double linear(
const double dIn);
135 static double gaussian(
const double dIn);
144 static double square(
const double dIn);
153 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.