35#ifndef INTERPOLATION_H
36#define INTERPOLATION_H
50#include <QSharedPointer>
58#include <Eigen/Sparse>
67#define FLOAT_INFINITY std::numeric_limits<float>::infinity()
81 typedef QSharedPointer<Interpolation>
SPtr;
82 typedef QSharedPointer<const Interpolation>
ConstSPtr;
90static QSharedPointer<Eigen::SparseMatrix<float> >
createInterpolationMat(
const Eigen::VectorXi &vecProjectedSensors,
91 const QSharedPointer<Eigen::MatrixXd> matDistanceTable,
92 double (*interpolationFunction) (
double),
94 const Eigen::VectorXi &vecExcludeIndex = Eigen::VectorXi());
100 static Eigen::VectorXf
interpolateSignal(
const QSharedPointer<Eigen::SparseMatrix<float> > matInterpolationMatrix,
101 const QSharedPointer<Eigen::VectorXf> &vecMeasurementData);
107 static Eigen::VectorXf
interpolateSignal(
const Eigen::SparseMatrix<float> &matInterpolationMatrix,
108 const Eigen::VectorXf &vecMeasurementData);
114 static double linear(
const double dIn);
120 static double gaussian(
const double dIn);
126 static double square(
const double dIn);
132 static double cubic(
const double dIn);
disp3D_rhi library export/import macros.
#define DISP3DRHISHARED_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.
static double square(const double dIn)
square Negative parabola interpolation function with y-offset of 1.
QSharedPointer< Interpolation > SPtr