v2.0.0
Loading...
Searching...
No Matches
rtsensorinterpolationmatworker.h
Go to the documentation of this file.
1//=============================================================================================================
34
35#ifndef BRAINVIEW_RTSENSORINTERPOLATIONMATWORKER_H
36#define BRAINVIEW_RTSENSORINTERPOLATIONMATWORKER_H
37
38//=============================================================================================================
39// INCLUDES
40//=============================================================================================================
41
43
44#include <fiff/fiff_evoked.h>
46
47#include <QObject>
48#include <QMutex>
49#include <QSharedPointer>
50#include <QVector>
51#include <QString>
52#include <QMap>
53#include <Eigen/Core>
54
55#include <memory>
56
57//=============================================================================================================
58// FORWARD DECLARATIONS
59//=============================================================================================================
60
61class BrainSurface;
62
63//=============================================================================================================
64// DEFINE NAMESPACE
65//=============================================================================================================
66
67namespace DISP3DRHILIB {
68
69//=============================================================================================================
88{
89 Q_OBJECT
90
91public:
92 //=========================================================================================================
98 explicit RtSensorInterpolationMatWorker(QObject *parent = nullptr);
99
100 //=========================================================================================================
106 void setEvoked(const FIFFLIB::FiffEvoked &evoked);
107
108 //=========================================================================================================
115 void setTransform(const FIFFLIB::FiffCoordTrans &trans, bool applySensorTrans);
116
117 //=========================================================================================================
124 void setMegFieldMapOnHead(bool onHead);
125
126 //=========================================================================================================
136 void setMegSurface(const QString &surfaceKey,
137 const Eigen::MatrixX3f &vertices,
138 const Eigen::MatrixX3f &normals,
139 const Eigen::MatrixX3i &triangles);
140
141 //=========================================================================================================
148 void setEegSurface(const QString &surfaceKey,
149 const Eigen::MatrixX3f &vertices);
150
151 //=========================================================================================================
157 void setBadChannels(const QStringList &bads);
158
159public slots:
160 //=========================================================================================================
167 void computeMapping();
168
169signals:
170 //=========================================================================================================
178 void newMegMappingAvailable(const QString &surfaceKey,
179 QSharedPointer<Eigen::MatrixXf> mappingMat,
180 const QVector<int> &pick);
181
182 //=========================================================================================================
190 void newEegMappingAvailable(const QString &surfaceKey,
191 QSharedPointer<Eigen::MatrixXf> mappingMat,
192 const QVector<int> &pick);
193
194private:
195 mutable QMutex m_mutex;
196
197 FIFFLIB::FiffEvoked m_evoked;
198 bool m_hasEvoked = false;
199
200 FIFFLIB::FiffCoordTrans m_headToMriTrans;
201 bool m_applySensorTrans = true;
202
203 bool m_megOnHead = false;
204
205 // MEG target surface
206 QString m_megSurfaceKey;
207 Eigen::MatrixX3f m_megVertices;
208 Eigen::MatrixX3f m_megNormals;
209 Eigen::MatrixX3i m_megTriangles;
210 bool m_hasMegSurface = false;
211
212 // EEG target surface
213 QString m_eegSurfaceKey;
214 Eigen::MatrixX3f m_eegVertices;
215 bool m_hasEegSurface = false;
216
217 QStringList m_bads;
218};
219
220} // namespace DISP3DRHILIB
221
222#endif // BRAINVIEW_RTSENSORINTERPOLATIONMATWORKER_H
FiffEvoked class declaration.
FiffCoordTrans class declaration.
disp3D_rhi library export/import macros.
#define DISP3DRHISHARED_EXPORT
3-D brain visualisation using the Qt RHI rendering backend.
Renderable cortical surface mesh with per-vertex color, curvature data, and GPU buffer management.
void newMegMappingAvailable(const QString &surfaceKey, QSharedPointer< Eigen::MatrixXf > mappingMat, const QVector< int > &pick)
void newEegMappingAvailable(const QString &surfaceKey, QSharedPointer< Eigen::MatrixXf > mappingMat, const QVector< int > &pick)
void setMegSurface(const QString &surfaceKey, const Eigen::MatrixX3f &vertices, const Eigen::MatrixX3f &normals, const Eigen::MatrixX3i &triangles)
void setTransform(const FIFFLIB::FiffCoordTrans &trans, bool applySensorTrans)
void setEegSurface(const QString &surfaceKey, const Eigen::MatrixX3f &vertices)
Coordinate transformation description.