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
42#include "../disp3D_global.h"
43
44#include <fiff/fiff_evoked.h>
46
47#include <QObject>
48#include <QMutex>
49#include <QVector>
50#include <QString>
51#include <QMap>
52#include <Eigen/Core>
53
54#include <memory>
55
56//=============================================================================================================
57// FORWARD DECLARATIONS
58//=============================================================================================================
59
60class BrainSurface;
61
62//=============================================================================================================
63// DEFINE NAMESPACE
64//=============================================================================================================
65
66namespace DISP3DLIB {
67
68//=============================================================================================================
87{
88 Q_OBJECT
89
90public:
91 //=========================================================================================================
97 explicit RtSensorInterpolationMatWorker(QObject *parent = nullptr);
98
99 //=========================================================================================================
105 void setEvoked(const FIFFLIB::FiffEvoked &evoked);
106
107 //=========================================================================================================
114 void setTransform(const FIFFLIB::FiffCoordTrans &trans, bool applySensorTrans);
115
116 //=========================================================================================================
123 void setMegFieldMapOnHead(bool onHead);
124
125 //=========================================================================================================
135 void setMegSurface(const QString &surfaceKey,
136 const Eigen::MatrixX3f &vertices,
137 const Eigen::MatrixX3f &normals,
138 const Eigen::MatrixX3i &triangles);
139
140 //=========================================================================================================
147 void setEegSurface(const QString &surfaceKey,
148 const Eigen::MatrixX3f &vertices);
149
150 //=========================================================================================================
156 void setBadChannels(const QStringList &bads);
157
158public slots:
159 //=========================================================================================================
166 void computeMapping();
167
168signals:
169 //=========================================================================================================
177 void newMegMappingAvailable(const QString &surfaceKey,
178 std::shared_ptr<Eigen::MatrixXf> mappingMat,
179 const QVector<int> &pick);
180
181 //=========================================================================================================
189 void newEegMappingAvailable(const QString &surfaceKey,
190 std::shared_ptr<Eigen::MatrixXf> mappingMat,
191 const QVector<int> &pick);
192
193private:
194 mutable QMutex m_mutex;
195
196 FIFFLIB::FiffEvoked m_evoked;
197 bool m_hasEvoked = false;
198
199 FIFFLIB::FiffCoordTrans m_headToMriTrans;
200 bool m_applySensorTrans = true;
201
202 bool m_megOnHead = false;
203
204 // MEG target surface
205 QString m_megSurfaceKey;
206 Eigen::MatrixX3f m_megVertices;
207 Eigen::MatrixX3f m_megNormals;
208 Eigen::MatrixX3i m_megTriangles;
209 bool m_hasMegSurface = false;
210
211 // EEG target surface
212 QString m_eegSurfaceKey;
213 Eigen::MatrixX3f m_eegVertices;
214 bool m_hasEegSurface = false;
215
216 QStringList m_bads;
217};
218
219} // namespace DISP3DLIB
220
221#endif // BRAINVIEW_RTSENSORINTERPOLATIONMATWORKER_H
FiffEvoked class declaration.
FiffCoordTrans class declaration.
disp3D library export/import macros.
#define DISP3DSHARED_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 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)
Coordinate transformation description.