v2.0.0
Loading...
Searching...
No Matches
rt_hpis.h
Go to the documentation of this file.
1//=============================================================================================================
34
35#ifndef RT_HPIS_RTPROCESSING_H
36#define RT_HPIS_RTPROCESSING_H
37
38//=============================================================================================================
39// INCLUDES
40//=============================================================================================================
41
42#include "../dsp_global.h"
45
46//=============================================================================================================
47// EIGEN INCLUDES
48//=============================================================================================================
49
50#include <Eigen/Core>
51
52//=============================================================================================================
53// QT INCLUDES
54//=============================================================================================================
55
56#include <QThread>
57#include <QMutex>
58#include <QSharedPointer>
59#include <QVector>
60
61//=============================================================================================================
62// FORWARD DECLARATIONS
63//=============================================================================================================
64
65namespace FIFFLIB {
66 class FiffInfo;
67}
68
69namespace INVLIB {
70 class InvSensorSet;
71 class InvHpiFit;
72 struct HpiFitResult;
74}
75
76//=============================================================================================================
77// DEFINE NAMESPACE RTPROCESSINGLIB
78//=============================================================================================================
79
80namespace RTPROCESSINGLIB
81{
82
83//=============================================================================================================
89class DSPSHARED_EXPORT RtHpiWorker : public QObject
90{
91 Q_OBJECT
92
93public:
94
95 //=========================================================================================================
101 explicit RtHpiWorker(const INVLIB::InvSensorSet sensorSet);
102
103 //=========================================================================================================
112 void doWork(const Eigen::MatrixXd& matData,
113 const Eigen::MatrixXd& matProjectors,
114 const INVLIB::InvHpiModelParameters& hpiModelParameters,
115 const Eigen::MatrixXd& matCoilsHead);
116
117protected:
118 //=========================================================================================================
119 QSharedPointer<INVLIB::InvHpiFit> m_pHpiFit;
120
121signals:
122 void resultReady(const INVLIB::HpiFitResult &fitResult);
123};
124
125//=============================================================================================================
131class DSPSHARED_EXPORT RtHpi : public QObject
132{
133 Q_OBJECT
134
135public:
136 typedef QSharedPointer<RtHpi> SPtr;
137 typedef QSharedPointer<const RtHpi> ConstSPtr;
138
139 //=========================================================================================================
146 explicit RtHpi(const INVLIB::InvSensorSet sensorSet,
147 QObject *parent = 0);
148
149 //=========================================================================================================
153 ~RtHpi();
154
155 //=========================================================================================================
161 void append(const Eigen::MatrixXd &data);
162
163 //=========================================================================================================
169 void setModelParameters(INVLIB::InvHpiModelParameters hpiModelParameters);
170
171 //=========================================================================================================
177 void setProjectionMatrix(const Eigen::MatrixXd& matProjectors);
178
179 //=========================================================================================================
185 void setHpiDigitizer(const Eigen::MatrixXd& matCoilsHead);
186
187 //=========================================================================================================
191 void restart();
192
193 //=========================================================================================================
197 void stop();
198
199protected:
200 //=========================================================================================================
204 void handleResults(const INVLIB::HpiFitResult &fitResult);
205
207 Eigen::MatrixXd m_matCoilsHead;
208 Eigen::MatrixXd m_matProjectors;
211
212signals:
214 void operate(const Eigen::MatrixXd& matData,
215 const Eigen::MatrixXd& matProjectors,
216 const INVLIB::InvHpiModelParameters& hpiModelParameters,
217 const Eigen::MatrixXd& matCoilsHead);
218};
219
220//=============================================================================================================
221// INLINE DEFINITIONS
222//=============================================================================================================
223} // NAMESPACE
224
225#endif // RT_HPIS_RTPROCESSING_H
InvSensorSet class declaration.
InvSignalModel class declaration.
dsp library export/import macros.
#define DSPSHARED_EXPORT
Definition dsp_global.h:56
FIFF file I/O and data structures (raw, epochs, evoked, covariance, forward).
Inverse source estimation (MNE, dSPM, sLORETA, dipole fitting).
RtHpiWorker(const INVLIB::InvSensorSet sensorSet)
Definition rt_hpis.cpp:68
void doWork(const Eigen::MatrixXd &matData, const Eigen::MatrixXd &matProjectors, const INVLIB::InvHpiModelParameters &hpiModelParameters, const Eigen::MatrixXd &matCoilsHead)
Definition rt_hpis.cpp:73
void resultReady(const INVLIB::HpiFitResult &fitResult)
QSharedPointer< INVLIB::InvHpiFit > m_pHpiFit
Definition rt_hpis.h:119
INVLIB::InvSensorSet m_sensorSet
Definition rt_hpis.h:209
QSharedPointer< const RtHpi > ConstSPtr
Definition rt_hpis.h:137
void newHpiFitResultAvailable(const INVLIB::HpiFitResult &fitResult)
INVLIB::InvHpiModelParameters m_modelParameters
Definition rt_hpis.h:210
QSharedPointer< RtHpi > SPtr
Definition rt_hpis.h:136
Eigen::MatrixXd m_matCoilsHead
Definition rt_hpis.h:207
void setHpiDigitizer(const Eigen::MatrixXd &matCoilsHead)
Definition rt_hpis.cpp:161
void append(const Eigen::MatrixXd &data)
Definition rt_hpis.cpp:133
RtHpi(const INVLIB::InvSensorSet sensorSet, QObject *parent=0)
Definition rt_hpis.cpp:100
void setProjectionMatrix(const Eigen::MatrixXd &matProjectors)
Definition rt_hpis.cpp:154
Eigen::MatrixXd m_matProjectors
Definition rt_hpis.h:208
void setModelParameters(INVLIB::InvHpiModelParameters hpiModelParameters)
Definition rt_hpis.cpp:147
void handleResults(const INVLIB::HpiFitResult &fitResult)
Definition rt_hpis.cpp:168
void operate(const Eigen::MatrixXd &matData, const Eigen::MatrixXd &matProjectors, const INVLIB::InvHpiModelParameters &hpiModelParameters, const Eigen::MatrixXd &matCoilsHead)
FIFF measurement file information.
Definition fiff_info.h:86
Complete HPI fit output: per-coil dipole parameters, head-to-device transform, fit error,...
HPI Fit algorithms.
Configuration parameters for the HPI signal model (line frequency, coil frequencies,...
Stores MEG sensor geometry (positions, orientations, weights, coil count) for a single sensor type.