v2.0.0
Loading...
Searching...
No Matches
rtsensorinterpolationmatworker.h
Go to the documentation of this file.
1//=============================================================================================================
19
20#ifndef BRAINVIEW_RTSENSORINTERPOLATIONMATWORKER_H
21#define BRAINVIEW_RTSENSORINTERPOLATIONMATWORKER_H
22
23//=============================================================================================================
24// INCLUDES
25//=============================================================================================================
26
27#include "../disp3D_global.h"
28
29#include <fiff/fiff_evoked.h>
31
32#include <QObject>
33#include <QMutex>
34#include <QVector>
35#include <QString>
36#include <QMap>
37#include <Eigen/Core>
38
39#include <memory>
40
41//=============================================================================================================
42// DEFINE NAMESPACE
43//=============================================================================================================
44
45namespace DISP3DLIB
46{
47
48//=============================================================================================================
67{
68 Q_OBJECT
69
70public:
71 //=========================================================================================================
77 explicit RtSensorInterpolationMatWorker(QObject* parent = nullptr);
78
79 //=========================================================================================================
85 void setEvoked(const FIFFLIB::FiffEvoked& evoked);
86
87 //=========================================================================================================
94 void setTransform(const FIFFLIB::FiffCoordTrans& trans, bool applySensorTrans);
95
96 //=========================================================================================================
103 void setMegFieldMapOnHead(bool onHead);
104
105 //=========================================================================================================
115 void setMegSurface(const QString& surfaceKey,
116 const Eigen::MatrixX3f& vertices,
117 const Eigen::MatrixX3f& normals,
118 const Eigen::MatrixX3i& triangles);
119
120 //=========================================================================================================
127 void setEegSurface(const QString& surfaceKey,
128 const Eigen::MatrixX3f& vertices);
129
130 //=========================================================================================================
136 void setBadChannels(const QStringList& bads);
137
138public slots:
139 //=========================================================================================================
146 void computeMapping();
147
148signals:
149 //=========================================================================================================
157 void newMegMappingAvailable(const QString& surfaceKey,
158 std::shared_ptr<Eigen::MatrixXf> mappingMat,
159 const QVector<int>& pick);
160
161 //=========================================================================================================
169 void newEegMappingAvailable(const QString& surfaceKey,
170 std::shared_ptr<Eigen::MatrixXf> mappingMat,
171 const QVector<int>& pick);
172
173private:
174 mutable QMutex m_mutex;
175
176 FIFFLIB::FiffEvoked m_evoked;
177 bool m_hasEvoked = false;
178
179 FIFFLIB::FiffCoordTrans m_headToMriTrans;
180 bool m_applySensorTrans = true;
181
182 bool m_megOnHead = false;
183
184 // MEG target surface
185 QString m_megSurfaceKey;
186 Eigen::MatrixX3f m_megVertices;
187 Eigen::MatrixX3f m_megNormals;
188 Eigen::MatrixX3i m_megTriangles;
189 bool m_hasMegSurface = false;
190
191 // EEG target surface
192 QString m_eegSurfaceKey;
193 Eigen::MatrixX3f m_eegVertices;
194 bool m_hasEegSurface = false;
195
196 QStringList m_bads;
197};
198
199} // namespace DISP3DLIB
200
201#endif // BRAINVIEW_RTSENSORINTERPOLATIONMATWORKER_H
Single averaged evoked response: time axis, samples, baseline, channel info and processing history.
4x4 affine FIFF coordinate transform (FIFF_COORD_TRANS) annotated with source/destination coordinate-...
Library export/import macros and namespace marker for the disp3D library.
#define DISP3DSHARED_EXPORT
3-D brain visualisation using the Qt RHI rendering backend.
void setEvoked(const FIFFLIB::FiffEvoked &evoked)
void newEegMappingAvailable(const QString &surfaceKey, std::shared_ptr< 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 newMegMappingAvailable(const QString &surfaceKey, std::shared_ptr< Eigen::MatrixXf > mappingMat, const QVector< int > &pick)
void setEegSurface(const QString &surfaceKey, const Eigen::MatrixX3f &vertices)
Labelled 4x4 FIFF affine: source frame, destination frame, rotation, translation and cached inverse.
Single averaged evoked response: time axis, data, baseline, channel info and averaging metadata.
Definition fiff_evoked.h:77