v2.0.0
Loading...
Searching...
No Matches
rthpis.h
Go to the documentation of this file.
1//=============================================================================================================
34
35#ifndef RTHPIS_RTPROCESSING_H
36#define RTHPIS_RTPROCESSING_H
37
38//=============================================================================================================
39// INCLUDES
40//=============================================================================================================
41
42#include "rtprocessing_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 INVERSELIB {
70 class SensorSet;
71 class HPIFit;
72 struct HpiFitResult;
74}
75
76//=============================================================================================================
77// DEFINE NAMESPACE RTPROCESSINGLIB
78//=============================================================================================================
79
80namespace RTPROCESSINGLIB
81{
82
83//=============================================================================================================
90{
91 Q_OBJECT
92
93public:
94
95 //=========================================================================================================
101 explicit RtHpiWorker(const INVERSELIB::SensorSet sensorSet);
102
103 //=========================================================================================================
112 void doWork(const Eigen::MatrixXd& matData,
113 const Eigen::MatrixXd& matProjectors,
114 const INVERSELIB::HpiModelParameters& hpiModelParameters,
115 const Eigen::MatrixXd& matCoilsHead);
116
117protected:
118 //=========================================================================================================
119 QSharedPointer<INVERSELIB::HPIFit> m_pHpiFit;
120
121signals:
122 void resultReady(const INVERSELIB::HpiFitResult &fitResult);
123};
124
125//=============================================================================================================
131class RTPROCESINGSHARED_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 INVERSELIB::SensorSet sensorSet,
147 QObject *parent = 0);
148
149 //=========================================================================================================
153 ~RtHpi();
154
155 //=========================================================================================================
161 void append(const Eigen::MatrixXd &data);
162
163 //=========================================================================================================
169 void setModelParameters(INVERSELIB::HpiModelParameters 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 INVERSELIB::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 INVERSELIB::HpiModelParameters& hpiModelParameters,
217 const Eigen::MatrixXd& matCoilsHead);
218};
219
220//=============================================================================================================
221// INLINE DEFINITIONS
222//=============================================================================================================
223} // NAMESPACE
224
225#endif // RTHPIS_RTPROCESSING_H
realtime library export/import macros.
#define RTPROCESINGSHARED_EXPORT
SensorSet class declaration.
SignalModel class declaration.
FIFF file I/O and data structures (raw, epochs, evoked, covariance, forward).
Real-time signal processing (filtering, averaging, HPI fitting, noise reduction).
Inverse source estimation (MNE, dSPM, sLORETA, dipole fitting).
FIFF measurement file information.
Definition fiff_info.h:85
Complete HPI fit output: per-coil dipole parameters, head-to-device transform, fit error,...
Definition hpifit.h:116
HPI Fit algorithms.
Definition hpifit.h:139
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.
Definition sensorset.h:83
void doWork(const Eigen::MatrixXd &matData, const Eigen::MatrixXd &matProjectors, const INVERSELIB::HpiModelParameters &hpiModelParameters, const Eigen::MatrixXd &matCoilsHead)
Definition rthpis.cpp:73
void resultReady(const INVERSELIB::HpiFitResult &fitResult)
QSharedPointer< INVERSELIB::HPIFit > m_pHpiFit
Definition rthpis.h:119
RtHpiWorker(const INVERSELIB::SensorSet sensorSet)
Definition rthpis.cpp:68
QSharedPointer< const RtHpi > ConstSPtr
Definition rthpis.h:137
QSharedPointer< RtHpi > SPtr
Definition rthpis.h:136
Eigen::MatrixXd m_matCoilsHead
Definition rthpis.h:207
void setHpiDigitizer(const Eigen::MatrixXd &matCoilsHead)
Definition rthpis.cpp:161
void setModelParameters(INVERSELIB::HpiModelParameters hpiModelParameters)
Definition rthpis.cpp:147
void operate(const Eigen::MatrixXd &matData, const Eigen::MatrixXd &matProjectors, const INVERSELIB::HpiModelParameters &hpiModelParameters, const Eigen::MatrixXd &matCoilsHead)
void append(const Eigen::MatrixXd &data)
Definition rthpis.cpp:133
void handleResults(const INVERSELIB::HpiFitResult &fitResult)
Definition rthpis.cpp:168
RtHpi(const INVERSELIB::SensorSet sensorSet, QObject *parent=0)
Definition rthpis.cpp:100
void setProjectionMatrix(const Eigen::MatrixXd &matProjectors)
Definition rthpis.cpp:154
INVERSELIB::HpiModelParameters m_modelParameters
Definition rthpis.h:210
Eigen::MatrixXd m_matProjectors
Definition rthpis.h:208
INVERSELIB::SensorSet m_sensorSet
Definition rthpis.h:209
void newHpiFitResultAvailable(const INVERSELIB::HpiFitResult &fitResult)