v2.0.0
Loading...
Searching...
No Matches
compute_fwd.h
Go to the documentation of this file.
1//=============================================================================================================
37
38#ifndef COMPUTE_FWD_H
39#define COMPUTE_FWD_H
40
41//=============================================================================================================
42// INCLUDES
43//=============================================================================================================
44
45#include "../fwd_global.h"
47
49#include <fiff/fiff_types.h>
50#include <fiff/fiff_info_base.h>
51
52#include "../fwd_coil_set.h"
54#include "../fwd_bem_model.h"
55
58
59//=============================================================================================================
60// STL INCLUDES
61//=============================================================================================================
62
63#include <vector>
64#include <memory>
65
66//=============================================================================================================
67// QT INCLUDES
68//=============================================================================================================
69
70#include <QSharedDataPointer>
71#include <QSharedPointer>
72#include <QString>
73
74//=============================================================================================================
75// FORWARD DECLARATIONS
76//=============================================================================================================
77
78namespace FIFFLIB {
79 class FiffNamedMatrix;
80}
81
82namespace MNELIB {
84}
85
86//=============================================================================================================
87// DEFINE NAMESPACE FWDLIB
88//=============================================================================================================
89
90namespace FWDLIB
91{
92
93//=============================================================================================================
105{
106public:
107 //=========================================================================================================
114 explicit ComputeFwd(std::shared_ptr<ComputeFwdSettings> pSettings);
115
116 //=========================================================================================================
120 virtual ~ComputeFwd();
121
122 //=========================================================================================================
128 std::unique_ptr<MNELIB::MNEForwardSolution> calculateFwd();
129
130 //=========================================================================================================
140
141private:
142 //=========================================================================================================
148 void initFwd();
149
150 //=========================================================================================================
155 void populateMetadata(MNELIB::MNEForwardSolution& fwd);
156
157 //=========================================================================================================
158 // Computation state
159 //=========================================================================================================
160
161 std::vector<MNELIB::MNESourceSpace::UPtr> m_spaces;
162 int m_iNSource = 0;
163 FwdCoilSet::UPtr m_templates;
164 FwdCoilSet::UPtr m_megcoils;
165 FwdCoilSet::UPtr m_compcoils;
166 FwdCoilSet::UPtr m_eegels;
168 FwdEegSphereModelSet::UPtr m_eegModels;
169 FwdEegSphereModel::UPtr m_eegModel;
170 FwdBemModel::UPtr m_bemModel;
171
172 QList<FIFFLIB::FiffChInfo> m_listMegChs;
173 QList<FIFFLIB::FiffChInfo> m_listEegChs;
174 QList<FIFFLIB::FiffChInfo> m_listCompChs;
175 int m_iNChan = 0;
176
177 FIFFLIB::FiffId m_mri_id;
178 FIFFLIB::FiffId m_meas_id;
179 FIFFLIB::FiffCoordTrans m_mri_head_t;
180 FIFFLIB::FiffCoordTrans m_meg_head_t;
181
182 QSharedPointer<FIFFLIB::FiffInfoBase> m_pInfoBase;
183 std::shared_ptr<ComputeFwdSettings> m_pSettings;
184
185 QSharedDataPointer<FIFFLIB::FiffNamedMatrix> m_meg_forward;
186 QSharedDataPointer<FIFFLIB::FiffNamedMatrix> m_meg_forward_grad;
187 QSharedDataPointer<FIFFLIB::FiffNamedMatrix> m_eeg_forward;
188 QSharedDataPointer<FIFFLIB::FiffNamedMatrix> m_eeg_forward_grad;
189
190 QString m_qPath;
191};
192
193//=============================================================================================================
194// INLINE DEFINITIONS
195//=============================================================================================================
196
197} // namespace FWDLIB
198
199#endif // COMPUTE_FWD_H
FiffInfoBase class declaration.
Old fiff_type declarations - replace them.
FiffCoordTrans class declaration.
MNECTFCompDataSet class declaration.
MNESourceSpace class declaration.
FwdEegSphereModelSet class declaration.
ComputeFwdSettings 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).
FIFF file I/O and data structures (raw, epochs, evoked, covariance, forward).
Forward modelling (BEM, MEG/EEG lead fields).
Definition compute_fwd.h:91
Coordinate transformation description.
Universally unique identifier.
Definition fiff_id.h:68
std::unique_ptr< MNELIB::MNEForwardSolution > calculateFwd()
bool updateHeadPos(const FIFFLIB::FiffCoordTrans &transDevHead, MNELIB::MNEForwardSolution &fwd)
ComputeFwd(std::shared_ptr< ComputeFwdSettings > pSettings)
std::unique_ptr< FwdBemModel > UPtr
std::unique_ptr< FwdCoilSet > UPtr
std::unique_ptr< FwdEegSphereModel > UPtr
std::unique_ptr< FwdEegSphereModelSet > UPtr
std::unique_ptr< MNECTFCompDataSet > UPtr