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// FORWARD DECLARATIONS
43//=============================================================================================================
44
45class BrainSurface;
46
47//=============================================================================================================
48// DEFINE NAMESPACE
49//=============================================================================================================
50
51namespace DISP3DLIB {
52
53//=============================================================================================================
72{
73 Q_OBJECT
74
75public:
76 //=========================================================================================================
82 explicit RtSensorInterpolationMatWorker(QObject *parent = nullptr);
83
84 //=========================================================================================================
90 void setEvoked(const FIFFLIB::FiffEvoked &evoked);
91
92 //=========================================================================================================
99 void setTransform(const FIFFLIB::FiffCoordTrans &trans, bool applySensorTrans);
100
101 //=========================================================================================================
108 void setMegFieldMapOnHead(bool onHead);
109
110 //=========================================================================================================
120 void setMegSurface(const QString &surfaceKey,
121 const Eigen::MatrixX3f &vertices,
122 const Eigen::MatrixX3f &normals,
123 const Eigen::MatrixX3i &triangles);
124
125 //=========================================================================================================
132 void setEegSurface(const QString &surfaceKey,
133 const Eigen::MatrixX3f &vertices);
134
135 //=========================================================================================================
141 void setBadChannels(const QStringList &bads);
142
143public slots:
144 //=========================================================================================================
151 void computeMapping();
152
153signals:
154 //=========================================================================================================
162 void newMegMappingAvailable(const QString &surfaceKey,
163 std::shared_ptr<Eigen::MatrixXf> mappingMat,
164 const QVector<int> &pick);
165
166 //=========================================================================================================
174 void newEegMappingAvailable(const QString &surfaceKey,
175 std::shared_ptr<Eigen::MatrixXf> mappingMat,
176 const QVector<int> &pick);
177
178private:
179 mutable QMutex m_mutex;
180
181 FIFFLIB::FiffEvoked m_evoked;
182 bool m_hasEvoked = false;
183
184 FIFFLIB::FiffCoordTrans m_headToMriTrans;
185 bool m_applySensorTrans = true;
186
187 bool m_megOnHead = false;
188
189 // MEG target surface
190 QString m_megSurfaceKey;
191 Eigen::MatrixX3f m_megVertices;
192 Eigen::MatrixX3f m_megNormals;
193 Eigen::MatrixX3i m_megTriangles;
194 bool m_hasMegSurface = false;
195
196 // EEG target surface
197 QString m_eegSurfaceKey;
198 Eigen::MatrixX3f m_eegVertices;
199 bool m_hasEegSurface = false;
200
201 QStringList m_bads;
202};
203
204} // namespace DISP3DLIB
205
206#endif // BRAINVIEW_RTSENSORINTERPOLATIONMATWORKER_H
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.
4x4 affine FIFF coordinate transform (FIFF_COORD_TRANS) annotated with source/destination coordinate-...
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 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:75