57#include <QSharedPointer>
66#include <Eigen/Sparse>
74#define FLOAT_INFINITY std::numeric_limits<float>::infinity()
87 typedef QSharedPointer<GeometryInfo>
SPtr;
88 typedef QSharedPointer<const GeometryInfo>
ConstSPtr;
96 static QSharedPointer<Eigen::MatrixXd>
scdc(
const Eigen::MatrixX3f &matVertices,
97 const std::vector<Eigen::VectorXi> &vecNeighborVertices,
98 Eigen::VectorXi &vecVertSubset,
117 const Eigen::MatrixX3f &matVertices,
118 const std::vector<Eigen::VectorXi> &vecNeighborVertices,
119 const Eigen::VectorXi &vecVertSubset,
120 double (*interpolationFunction)(
double),
122 std::function<
void(
int,
int)> progressCallback =
nullptr);
128 static Eigen::VectorXi
projectSensors(
const Eigen::MatrixX3f &matVertices,
129 const Eigen::MatrixX3f &matSensorPositions);
135 static Eigen::VectorXi
filterBadChannels(QSharedPointer<Eigen::MatrixXd> matDistanceTable,
140 static inline double squared(
double dBase);
142 static Eigen::VectorXi
nearestNeighbor(
const Eigen::MatrixX3f &matVertices,
143 const Eigen::MatrixX3f &matSensorPositions,
147 static void iterativeDijkstra(QSharedPointer<Eigen::MatrixXd> matOutputDistMatrix,
148 const Eigen::MatrixX3f &matVertices,
149 const std::vector<Eigen::VectorXi> &vecNeighborVertices,
150 const Eigen::VectorXi &vecVertSubset,
153 double dCancelDistance);
162 return dBase * dBase;
disp3D library export/import macros.
#define DISP3DSHARED_EXPORT
FiffEvoked class declaration.
3-D brain visualisation using the Qt RHI rendering backend.
static Eigen::VectorXi nearestNeighbor(const Eigen::MatrixX3f &matVertices, const Eigen::MatrixX3f &matSensorPositions, qint32 iBegin, qint32 iEnd)
QSharedPointer< GeometryInfo > SPtr
static QSharedPointer< Eigen::SparseMatrix< float > > scdcInterpolationMat(const Eigen::MatrixX3f &matVertices, const std::vector< Eigen::VectorXi > &vecNeighborVertices, const Eigen::VectorXi &vecVertSubset, double(*interpolationFunction)(double), double dCancelDist, std::function< void(int, int)> progressCallback=nullptr)
scdcInterpolationMat Computes geodesic distances (SCDC) and builds the sparse interpolation matrix in...
QSharedPointer< const GeometryInfo > ConstSPtr
static Eigen::VectorXi filterBadChannels(QSharedPointer< Eigen::MatrixXd > matDistanceTable, const FIFFLIB::FiffInfo &fiffInfo, qint32 iSensorType)
filterBadChannels Filters bad channels from distance table.
static void iterativeDijkstra(QSharedPointer< Eigen::MatrixXd > matOutputDistMatrix, const Eigen::MatrixX3f &matVertices, const std::vector< Eigen::VectorXi > &vecNeighborVertices, const Eigen::VectorXi &vecVertSubset, qint32 iBegin, qint32 iEnd, double dCancelDistance)
static double squared(double dBase)
static Eigen::VectorXi projectSensors(const Eigen::MatrixX3f &matVertices, const Eigen::MatrixX3f &matSensorPositions)
projectSensors Calculates the nearest neighbor vertex to each sensor.
static QSharedPointer< Eigen::MatrixXd > scdc(const Eigen::MatrixX3f &matVertices, const std::vector< Eigen::VectorXi > &vecNeighborVertices, Eigen::VectorXi &vecVertSubset, double dCancelDist=FLOAT_INFINITY)
scdc Calculates surface constrained distances on a mesh.
FIFF measurement file information.