v2.0.0
Loading...
Searching...
No Matches
fwd_coil_set.h
Go to the documentation of this file.
1//=============================================================================================================
29
30#ifndef FWD_COIL_SET_H
31#define FWD_COIL_SET_H
32
33//=============================================================================================================
34// INCLUDES
35//=============================================================================================================
36
37#include "fwd_global.h"
38#include "fwd_coil.h"
39#include <fiff/fiff_types.h>
40
41//=============================================================================================================
42// EIGEN INCLUDES
43//=============================================================================================================
44
45#include <Eigen/Core>
46
47//=============================================================================================================
48// QT INCLUDES
49//=============================================================================================================
50
51#include <QSharedPointer>
52
53#include <memory>
54#include <vector>
55
56//=============================================================================================================
57// DEFINE NAMESPACE FWDLIB
58//=============================================================================================================
59
60namespace FWDLIB
61{
62class FwdBemSolution;
63//=============================================================================================================
70{
71public:
72 typedef QSharedPointer<FwdCoilSet> SPtr;
73 typedef QSharedPointer<const FwdCoilSet> ConstSPtr;
74 typedef std::unique_ptr<FwdCoilSet> UPtr;
75
76 //=========================================================================================================
80 FwdCoilSet();
81
82 //=========================================================================================================
87
88 //=========================================================================================================
100
101 //=========================================================================================================
113 FwdCoilSet::UPtr create_meg_coils(const QList<FIFFLIB::FiffChInfo>& chs,
114 int nch,
115 int acc,
117
118 //=========================================================================================================
129 static FwdCoilSet::UPtr create_eeg_els(const QList<FIFFLIB::FiffChInfo>& chs,
130 int nch,
132
133 //=========================================================================================================
141 static FwdCoilSet::UPtr read_coil_defs(const QString& name);
142
143 //=========================================================================================================
152
153 //=========================================================================================================
161 bool is_planar_coil_type(int type) const;
162
163 //=========================================================================================================
171 bool is_axial_coil_type(int type) const;
172
173 //=========================================================================================================
181 bool is_magnetometer_coil_type(int type) const;
182
183 //=========================================================================================================
191 bool is_eeg_electrode_type(int type) const;
192
193private:
194 //=========================================================================================================
208 FwdCoil* fwd_add_coil_to_set(int type, int coil_class, int acc, int np, float size, float base, const QString& desc);
209
210public:
211 std::vector<FwdCoil::UPtr> coils;
213 std::unique_ptr<FwdBemSolution> user_data;
214
216 inline int ncoil() const { return static_cast<int>(coils.size()); }
217};
218
219//=============================================================================================================
220// INLINE DEFINITIONS
221//=============================================================================================================
222} // NAMESPACE FWDLIB
223
224#endif // FWD_COIL_SET_H
Symbol-visibility macro and build-info entry points for the FWDLIB (MEG/EEG forward-modelling) librar...
#define FWDSHARED_EXPORT
Definition fwd_global.h:44
Single MEG sensor coil or EEG electrode described by a set of weighted integration points in its own ...
Primitive scalar typedefs and forward-compatible aliases backing the FIFF type system.
Forward modelling — BEM solver, spherical models, sensor/coil definitions and the lead-field assembly...
Definition compute_fwd.h:83
Per-channel FIFF descriptor: identifiers, kind, calibration, coil type, channel-frame coil position a...
Labelled 4x4 FIFF affine: source frame, destination frame, rotation, translation and cached inverse.
Channel-specific projection that contracts a BEM node-potential vector down to one entry per MEG coil...
Single MEG sensor coil or EEG electrode — stores the coil-local frame and the (r_mag,...
Definition fwd_coil.h:88
std::unique_ptr< FwdCoil > UPtr
Definition fwd_coil.h:90
static FwdCoilSet::UPtr read_coil_defs(const QString &name)
bool is_axial_coil_type(int type) const
std::unique_ptr< FwdBemSolution > user_data
bool is_magnetometer_coil_type(int type) const
QSharedPointer< const FwdCoilSet > ConstSPtr
bool is_planar_coil_type(int type) const
FwdCoil::UPtr create_meg_coil(const FIFFLIB::FiffChInfo &ch, int acc, const FIFFLIB::FiffCoordTrans &t=FIFFLIB::FiffCoordTrans())
bool is_eeg_electrode_type(int type) const
FwdCoilSet::UPtr create_meg_coils(const QList< FIFFLIB::FiffChInfo > &chs, int nch, int acc, const FIFFLIB::FiffCoordTrans &t=FIFFLIB::FiffCoordTrans())
QSharedPointer< FwdCoilSet > SPtr
static FwdCoilSet::UPtr create_eeg_els(const QList< FIFFLIB::FiffChInfo > &chs, int nch, const FIFFLIB::FiffCoordTrans &t=FIFFLIB::FiffCoordTrans())
std::unique_ptr< FwdCoilSet > UPtr
std::vector< FwdCoil::UPtr > coils
FwdCoilSet::UPtr dup_coil_set(const FIFFLIB::FiffCoordTrans &t=FIFFLIB::FiffCoordTrans()) const