54#include <QSharedPointer>
63#include <Eigen/Sparse>
71#define FLOAT_INFINITY std::numeric_limits<float>::infinity()
84 typedef QSharedPointer<GeometryInfo>
SPtr;
85 typedef QSharedPointer<const GeometryInfo>
ConstSPtr;
93 static QSharedPointer<Eigen::MatrixXd>
scdc(
const Eigen::MatrixX3f &matVertices,
94 const std::vector<Eigen::VectorXi> &vecNeighborVertices,
95 Eigen::VectorXi &vecVertSubset,
115 const Eigen::MatrixX3f &matVertices,
116 const std::vector<Eigen::VectorXi> &vecNeighborVertices,
117 const Eigen::VectorXi &vecVertSubset,
118 double (*interpolationFunction)(
double),
120 std::function<
void(
int,
int)> progressCallback =
nullptr,
121 const std::atomic<bool> *cancelledFlag =
nullptr);
127 static Eigen::VectorXi
projectSensors(
const Eigen::MatrixX3f &matVertices,
128 const Eigen::MatrixX3f &matSensorPositions);
134 static Eigen::VectorXi
filterBadChannels(QSharedPointer<Eigen::MatrixXd> matDistanceTable,
139 static inline double squared(
double dBase);
141 static Eigen::VectorXi
nearestNeighbor(
const Eigen::MatrixX3f &matVertices,
142 const Eigen::MatrixX3f &matSensorPositions,
146 static void iterativeDijkstra(QSharedPointer<Eigen::MatrixXd> matOutputDistMatrix,
147 const Eigen::MatrixX3f &matVertices,
148 const std::vector<Eigen::VectorXi> &vecNeighborVertices,
149 const Eigen::VectorXi &vecVertSubset,
152 double dCancelDistance);
161 return dBase * dBase;
Library export/import macros and namespace marker for the disp3D library.
#define DISP3DSHARED_EXPORT
Single averaged evoked response: time axis, samples, baseline, channel info and processing history.
3-D brain visualisation using the Qt RHI rendering backend.
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, const std::atomic< bool > *cancelledFlag=nullptr)
scdcInterpolationMat Computes geodesic distances (SCDC) and builds the sparse interpolation matrix in...
static Eigen::VectorXi nearestNeighbor(const Eigen::MatrixX3f &matVertices, const Eigen::MatrixX3f &matSensorPositions, qint32 iBegin, qint32 iEnd)
QSharedPointer< GeometryInfo > SPtr
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.
Full FIFF measurement info: per-channel descriptors, sampling and filter setup, projectors,...