v2.0.0
Loading...
Searching...
No Matches
geometryinfo.h
Go to the documentation of this file.
1//=============================================================================================================
34
35#ifndef GEOMETRYINFO_H
36#define GEOMETRYINFO_H
37
38//=============================================================================================================
39// INCLUDES
40//=============================================================================================================
41
43
44#include <fiff/fiff_evoked.h>
45
46//=============================================================================================================
47// STL INCLUDES
48//=============================================================================================================
49
50#include <limits>
51
52//=============================================================================================================
53// QT INCLUDES
54//=============================================================================================================
55
56#include <QSharedPointer>
57#include <QVector>
58#include <vector>
59
60//=============================================================================================================
61// EIGEN INCLUDES
62//=============================================================================================================
63
64#include <Eigen/Core>
65
66//=============================================================================================================
67// DEFINE NAMESPACE
68//=============================================================================================================
69
70namespace DISP3DRHILIB {
71
72#define FLOAT_INFINITY std::numeric_limits<float>::infinity()
73
74//=============================================================================================================
80
82{
83
84public:
85 typedef QSharedPointer<GeometryInfo> SPtr;
86 typedef QSharedPointer<const GeometryInfo> ConstSPtr;
87
88 GeometryInfo() = delete;
89
90 //=========================================================================================================
94 static QSharedPointer<Eigen::MatrixXd> scdc(const Eigen::MatrixX3f &matVertices,
95 const std::vector<Eigen::VectorXi> &vecNeighborVertices,
96 Eigen::VectorXi &vecVertSubset,
97 double dCancelDist = FLOAT_INFINITY);
98
99 //=========================================================================================================
103 static Eigen::VectorXi projectSensors(const Eigen::MatrixX3f &matVertices,
104 const Eigen::MatrixX3f &matSensorPositions);
105
106 //=========================================================================================================
110 static Eigen::VectorXi filterBadChannels(QSharedPointer<Eigen::MatrixXd> matDistanceTable,
111 const FIFFLIB::FiffInfo& fiffInfo,
112 qint32 iSensorType);
113
114protected:
115 static inline double squared(double dBase);
116
117 static Eigen::VectorXi nearestNeighbor(const Eigen::MatrixX3f &matVertices,
118 const Eigen::MatrixX3f &matSensorPositions,
119 qint32 iBegin,
120 qint32 iEnd);
121
122 static void iterativeDijkstra(QSharedPointer<Eigen::MatrixXd> matOutputDistMatrix,
123 const Eigen::MatrixX3f &matVertices,
124 const std::vector<Eigen::VectorXi> &vecNeighborVertices,
125 const Eigen::VectorXi &vecVertSubset,
126 qint32 iBegin,
127 qint32 iEnd,
128 double dCancelDistance);
129};
130
131//=============================================================================================================
132// INLINE DEFINITIONS
133//=============================================================================================================
134
135double GeometryInfo::squared(double dBase)
136{
137 return dBase * dBase;
138}
139
140} // namespace DISP3DRHILIB
141
142#endif // GEOMETRYINFO_H
FiffEvoked class declaration.
disp3D_rhi library export/import macros.
#define DISP3DRHISHARED_EXPORT
#define FLOAT_INFINITY
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 Eigen::VectorXi filterBadChannels(QSharedPointer< Eigen::MatrixXd > matDistanceTable, const FIFFLIB::FiffInfo &fiffInfo, qint32 iSensorType)
filterBadChannels Filters bad channels from distance table.
QSharedPointer< const GeometryInfo > ConstSPtr
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.
Definition fiff_info.h:85