v2.0.0
Loading...
Searching...
No Matches
compute_fwd.h
Go to the documentation of this file.
1//=============================================================================================================
37
38#ifndef COMPUTEFWD_H
39#define COMPUTEFWD_H
40
41//=============================================================================================================
42// INCLUDES
43//=============================================================================================================
44
45#include "../fwd_global.h"
47
49#include "../fwd_coil_set.h"
52#include "../fwd_bem_model.h"
53
55#include <mne/mne_nearest.h>
58
60
61#include <vector>
62#include <memory>
63
64#include <fiff/fiff_types.h>
65
66//=============================================================================================================
67// EIGEN INCLUDES
68//=============================================================================================================
69
70#include <Eigen/Core>
71
72//=============================================================================================================
73// QT INCLUDES
74//=============================================================================================================
75
76#include <QSharedPointer>
77#include <QString>
78
79#include <QCoreApplication>
80#include <QFile>
81#include <QDir>
82
83//=============================================================================================================
84// FORWARD DECLARATIONS
85//=============================================================================================================
86namespace MNELIB {
88}
89
90//=============================================================================================================
91// DEFINE NAMESPACE FWDLIB
92//=============================================================================================================
93
94namespace FWDLIB
95{
96
97//=============================================================================================================
104{
105public:
106 typedef QSharedPointer<ComputeFwd> SPtr;
107 typedef QSharedPointer<const ComputeFwd> ConstSPtr;
108
109 //=========================================================================================================
114 explicit ComputeFwd(ComputeFwdSettings::SPtr pSettings);
115
116 //=========================================================================================================
120 virtual ~ComputeFwd();
121
122 //=========================================================================================================
126 void calculateFwd();
127
128 //=========================================================================================================
133 void updateHeadPos(const FIFFLIB::FiffCoordTrans& transDevHead);
134
135 //=========================================================================================================
142 void storeFwd(const QString& sSolName = "default");
143
144 // ToDo: make MNEForwardSolution the main output for the solution
145 // QSharedPointer<MNELIB::MNEForwardSolution> fwdSolution; /**< MNE Forward solution that contains all results. */
146
147 QSharedDataPointer<FIFFLIB::FiffNamedMatrix> sol;
148 QSharedDataPointer<FIFFLIB::FiffNamedMatrix> sol_grad;
149
150 QSharedDataPointer<FIFFLIB::FiffNamedMatrix> m_meg_forward;
151 QSharedDataPointer<FIFFLIB::FiffNamedMatrix> m_meg_forward_grad;
152 QSharedDataPointer<FIFFLIB::FiffNamedMatrix> m_eeg_forward;
153 QSharedDataPointer<FIFFLIB::FiffNamedMatrix> m_eeg_forward_grad;
154
155 QString qPath;
156 QFile file;
157
158private:
159 //=========================================================================================================
163 void initFwd();
164
165 std::vector<std::unique_ptr<MNELIB::MNESourceSpace>> m_spaces;
166 int m_iNSource;
167 FwdCoilSet* m_templates;
168 FwdCoilSet* m_megcoils;
169 FwdCoilSet* m_compcoils;
170 FwdCoilSet* m_eegels;
171 std::unique_ptr<MNELIB::MNECTFCompDataSet> m_compData;
172 FwdEegSphereModelSet* m_eegModels;
173 FwdEegSphereModel* m_eegModel;
174 FwdBemModel *m_bemModel;
175 Eigen::Vector3f *m_r0;
176
177 QList<FIFFLIB::FiffChInfo> m_listMegChs;
178 QList<FIFFLIB::FiffChInfo> m_listEegChs;
179 QList<FIFFLIB::FiffChInfo> m_listCompChs;
180 int m_iNChan;
181
182 FIFFLIB::fiffId m_mri_id;
183 FIFFLIB::FiffId m_meas_id;
184 FIFFLIB::FiffCoordTrans m_mri_head_t;
185 FIFFLIB::FiffCoordTrans m_meg_head_t;
186
187 QSharedPointer<FIFFLIB::FiffInfoBase> m_pInfoBase;
188
189 ComputeFwdSettings::SPtr m_pSettings;
190
191 //=========================================================================================================
205 int mne_read_meg_comp_eeg_ch_info_41(FIFFLIB::FiffInfoBase::SPtr pFiffInfoBase,
206 QList<FIFFLIB::FiffChInfo>& listMegCh,
207 int& iNMeg,
208 QList<FIFFLIB::FiffChInfo>& listMegComp,
209 int& iNMegCmp,
210 QList<FIFFLIB::FiffChInfo>& listEegCh,
211 int& iNEeg,
212 FIFFLIB::FiffCoordTrans& transDevHead,
213 FIFFLIB::FiffId& id);
214
215};
216
217//=============================================================================================================
218// INLINE DEFINITIONS
219//=============================================================================================================
220} //NAMESPACE
221
222#endif // COMPUTEFWDSETTINGS_H
Old fiff_type declarations - replace them.
FiffSparseMatrix class declaration.
FiffCoordTrans class declaration.
MNECTFCompDataSet class declaration.
MNEForwardSolution class declaration, which provides the forward solution including the source space ...
MNENamedMatrix class declaration.
MNENearest class declaration.
MNESourceSpace class declaration.
FwdEegSphereModelSet class declaration.
Compute Forward Setting class declaration.
forward library export/import macros.
#define FWDSHARED_EXPORT
Definition fwd_global.h:53
FwdCoilSet class declaration.
FwdBemModel class declaration.
Core MNE data structures (source spaces, source estimates, hemispheres).
FiffId * fiffId
Backward-compatible pointer typedef for the old fiffId pointer.
Definition fiff_types.h:130
Forward modelling (BEM, MEG/EEG lead fields).
Definition compute_fwd.h:95
Coordinate transformation description.
Universally unique identifier.
Definition fiff_id.h:67
QSharedPointer< FiffInfoBase > SPtr
QSharedPointer< ComputeFwd > SPtr
QSharedDataPointer< FIFFLIB::FiffNamedMatrix > m_eeg_forward
QSharedDataPointer< FIFFLIB::FiffNamedMatrix > sol
void storeFwd(const QString &sSolName="default")
QSharedDataPointer< FIFFLIB::FiffNamedMatrix > m_meg_forward_grad
QSharedDataPointer< FIFFLIB::FiffNamedMatrix > m_meg_forward
QSharedPointer< const ComputeFwd > ConstSPtr
QSharedDataPointer< FIFFLIB::FiffNamedMatrix > sol_grad
QSharedDataPointer< FIFFLIB::FiffNamedMatrix > m_eeg_forward_grad
void updateHeadPos(const FIFFLIB::FiffCoordTrans &transDevHead)
ComputeFwd(ComputeFwdSettings::SPtr pSettings)
QSharedPointer< ComputeFwdSettings > SPtr
Holds the BEM model definition.
Collection of FwdCoil objects representing a full MEG or EEG sensor array.
Multi-layer spherical head model for EEG forward computation.
Collection of FwdEegSphereModel objects for multi-model EEG forward solutions.